While a lot of this year's Unite conference focused on technology-related aspects of the Unity engine, there were many talks from developers on their experiences developing games with small teams using Unity. In this article, I'll go over some of the great insights that Unity developers from across the world have to offer, along with a few technical tips I picked up along the way.
Credit to Bluecadet for the preview image.
In Ziba Scott's post-mortem of his game Girls Like Robots, he walked the room through the great successes and costly mistakes Popcannibal suffered on the path to creating a successful Adult Swim game.
He first highlighted the importance of being unafraid to share game designs with people around you. Initially, the idea of sharing his early designs for Girls Like Robots seemed dangerous. Scott recalled that, even though there was a fear that sharing his designs would lead to the theft of his ideas, the opposite happened. When he asked for feedback, the people around him would actually help improve on his designs by pointing out some of the complexities and inconsistencies he couldn't see himself.
Along these same lines, he suggested that the lack of pre-production hurt the overall perception of the game by the people working on it. More of the game existed in Ziba's mind than outside for the team to be inspired by. He suggested that if he had externalized more of his plans for the game, it would have led to a better shared vision between all team members and a more tangible concept for the team to support and be motivated by. He mused that just a little concept art would have gone a long way to help keep the team excited about the end goal.
Putting your designs out for everyone to pick apart can be very scary, but doing so forces the design to stand on its own merit. Not only do you get valuable feedback from differing viewpoints, but the act of putting your game out for scrutiny has the side effect of forcing you to examine your own design decisions. Just remember that, while external feedback is important, you, as the designer, make the final decision.
Richard Garriott has a long and interesting history in the game development industry. As the creator of the Ultima series and producer of City of Heroes and Tabula Rasa, he has quite a large amount of experience creating large, persistent virtual game worlds (in fact, he's the guy who coined the term MMO in 1997). His latest endeavour, Shroud of the Avatar: Forsaken Virtues, is being built using Unity, which Garriott claims will allow him to make a 'Ultima-scale' game in just 18 months.
In his keynote, Garriott provided some insight into what his 30+ years of RPG and MMO experience has taught him about creating compelling game worlds. At the core, he suggested that any game world needs to have a some 'truthiness' to it (to borrow a term from Stephen Colbert). This truthiness seemed to encompass three main concepts:
- A simplified truth: This includes any numerology or graphical symbols that help give a mathematical or scientific foundation to the virtual world.
- Social relevance: Events that are personally relevant to the player and today's society help show the game through a more realistic lens and makes it easier for the player to believe in it.
- Cultural evidence: A 'visual language' to describe objects in the game world forces decisions to be made based on the story, history, and culture, making the world seem more cohesive, consistent, and complete.
Combined, these concepts help to increase the perceived depth of the game world.
After the success of Guns of Icarus, the team at Muse Games were approached to develop an online version. High off their first success and excited about renewed interest from funders, a 130-page game design document was written up. While their game grew in scope from Guns of Icarus, their team size did not. After nine months of very hard work, they found themselves barely meeting their goals.
It was at this point that Kerher decided that something had to change. He needed a way to iterate more with the same number of people. In his talk, Kerher suggested that Agile is the way to accomplish this, and heralded Guns of Icarus Online as proof that his approach can yield very positive results.
One component of the Agile methodology is to have a functional piece of software at the end of each development cycle. To meet this requirement, Kerher made sure all development tasks were broken down into tasks that could be completed within a two- to three-week time period. These smaller tasks allowed for smaller parts of the design to be iterated on in a shorter period of time. Designs that didn't work or didn't make sense were caught very early. Kerher argued that, because there are so many potential solutions for a 'fun' mechanic, the only way to tease out the optimal mechanics is to experiment.
Write code so that the programmer doesn't need to be there.
Gerald Orban & Lance Mueller, Blackbird Interactive
Gerald Orban and Lance Mueller of Blackbird Interactive had a problem: while writing their GUI-heavy game Homeworld: Shipbreakers, they found themselves spending more and more time tweaking values and debugging systems for the artists than they were writing new code. In their talk, they go over the iterative process that led them to the flexible, artist-friendly GUI system that they now use in production.
Early on in the development process, Orban understood that the GUI in Homeworld: Shipbreakers was vitally important to gameplay. Even more so than most RTS games, Homeworld had multiple layers of data that would appear, disappear, combine, and separate depending on zoom level and what was on the screen. With hundreds of icons being rendered simultaneously, the first necessity was to organize all of this data into different layers, very similar to how Google Maps separates public transit, places, and traffic information.
The first iteration was pixel shaded, provided no WYSIWYG, and required a programmer to be there to make additions or modifications. While the layering of data helped segment things visually, there were no hooks in the editor to make any changes, so changes to colors and icons had to be made by the developer through code.
The second and third iterations were made marginally better by exposing the GUI objects to be manipulated in the scene. While this allowed artists to transform GUI elements, they still wanted more control over the individual look and feel.
Finally, after the eighth iteration, they started hooking into Unity's editor scripting functionality. This lets the artists manipulate the GUI more effectively, and allows them to debug their own problems by first ensuring that there isn't a problem with the configuration of that particular GUI element.
One thing that David Helgason emphasized in his keynote was that things are moving very fast now - so fast that making games very quickly is overtaking the three-year development cycle that has dominated the game development industry in years past. 'First to market' and 'quick to market' are becoming more important as more casual platforms emerge, driving developers toward quicker iterations. Quicker iterations means smaller shippable games, in a shorter time frame.
He further enforced this idea by elaborating on what he termed an 'entertainment half-life'. Essentially, creations in different mediums last different lengths of time before they become forgotten or irrelevant. Older music tends to stick around longer than older movies. Older movies tend to stick around longer than traditional games. And mobile games tend to have the shortest half-life of all mediums. To extrapolate, this means that, for mobile games, the timeframe to make money is much shorter relative to other mediums.
Whether this is good for the industry is not entirely clear. As the shorter timeframe is driving down development time, the complexity of games may also decrease. Instead of thoughtfully designing games, the industry may take on a "see what sticks" mentality. On the other hand, because the investment is so low, a failure has less of an impact which puts more freedom in the hands of designers to design outside of the box.
Don't Obsess about [marketing] tactics.
Darren Williams, Marketing Director, Unity Technologies
Williams started out his talk by saying what a lot of indie game developers feel: marketing sucks. Just thinking about where to advertise, how to incentivize, CPI/CPA goals, and the cost in time and money just to get your game noticed is enough to make an indie developer yearn for a publisher's intervention. Williams went on to list some mistakes that game companies make and how even an independent developer can learn to enjoy marketing.
One mistake game companies make (or think they need to make) is to focus on marketing tactics. Williams talked about the powerful marketing solutions that exist now, but these solutions take money. Instead, he suggested focusing on more organic growth by targeting specific audience types, of which he suggests there are four: Innovator, Early Adopter, Mass Market, and Laggard.
Innovators are typically very tech aware and have massive influence on the audience types above them. By promoting your game in communities where Innovators live, you're laying the foundations for a community.
Once your game alpha is in the hands of Innovators, its time to start building a pre-release community. As Innovators learn about your game, they will want a website or forum to return to where they can find really specific technical details and updates. As time goes on, Williams suggested to start releasing higher level, less technical updates as Early Adopters start arriving.
With a community behind your game, it's just a matter of preparing for a launch date. Williams did not directly go into how to take a game from the Innovator/Early Adopter audience types to the Mass Market, but mentioned that having an organic pre-release community is incredibly beneficial when trying to get support for things like Steam Greenlight and Kickstarter.
Technical Development Tips
Memory and Garbage Collection
One aspect of game development that Unity developers don't spend a lot of time worrying about is managing memory. This is because Unity's scripting engine implements a garbage collector that auto-magically takes care of cleaning up those pesky objects that are no longer referenced by the scene. While this garbage collector makes memory management straightforward for the developer, there are multiple gotchas and optimizations that can help squeeze the most performance out of your scripts.
The first thing to understand about Unity's garbage collector is that is uses mark and sweep to traverse trees of references to find unused objects. As objects make references to other objects, these trees grow in size and take longer to traverse. To keep the size of these trees small, developers suggest using PODs where possible. Because PODs can't reference objects, it keeps reference trees much smaller. An simple example of this would be to reference the index in an array instead of the object in the array.
The second tip to improve garbage collection speed developers suggested was to use a structures and arrays where possible instead of classes or a List. Both structures and arrays are allocated in contiguous memory, which improves access speed and makes scanning of these references easier for the garbage collector.
Finally, the best assumption is to assume nothing. Sometimes there is an expectation that because a piece of code looks cleaner that it's more efficient. An example of this is when adding two
Vector3 structs together. Normally, this would be done using the
+ operator (
v1 + v2, or
v1 += v2), which ends up allocating a temporary
Vector3 to hold the value before assigning it back to
v1. Less memory is allocated by just adding
z components directly to
While Unite 2013 didn't have a cohesive theme, the underlying message in every talk was clear: "Go forth and make games." Make them quickly, and make them fun, and make them for everyone. As the technology to make games becomes simpler, the barrier to entry for independent developers drops and has a democratizing effect on the industry. Shorter development iterations shifts power from large companies back to individual creators and, because of this, publishers will be turning to independents for the next generation of games.
If you're interested in watching videos from the Unite conference, you can find this and previous years' talks at Unity's Unite Archive.