We sat down with Joseph to get to know him and his creative process. This is what he said:
There’s no denying that mobile gaming has taken off in a big way. Whether free to play or paid; ad-supported or by in-app purchases; casual or hardcore, or somewhere in between – opportunities abound out there.
The question is: how do you get it done? How do you get your game to stand out in what is increasingly a crowded marketplace, saturated by, frankly, a number of “me too” products? For directors, it can be easy to get carried away by personal excitement over a project that becomes your baby, blind to its shortcomings. For those on the sales and marketing end, it’s likewise easy to get lost in comparing your projections for KPI to other releases and losing sight of what’s going to get you there: a great game.
In my experience as a mobile game developer, one thing that sets great and successful mobile game offerings apart from the merely decent is not just the gameplay mechanics, a slickly integrated and rewarding monetization model, or strong design. Don’t get me wrong – those things are a basic expectation. But what makes you stand out is a certain level of polish.
Here’s a bit from a yet-to-be released Unity mobile game I’ve been collaborating on. An innovative concept here is the combination and interaction of a battle scene in a full 3D environment with a 2D block puzzler. A challenge with this is the interaction: the gameplay has to give the impression of integration between the two halves. One of the creators wanted to make it so that when an enemy is damaged, particles flow from its body to the tile UI and replenish the tiles there. It fell to me to create both the particle effects and the system for making them move.
These effects have to be overlayed onto the screen and make sense coming from a perspective camera, and landing onto an orthographic camera. There is little capacity for keyframe animation, because the source and destination are both indeterminate until runtime. After landing, it’s not enough to immediately destroy the system either – there should be a believable “splash.”
To deal with this, I made the animation parametric: rather than lerping through a float that is managed in code (which the Unity documentation recommends, and is pretty common practice), I provide public animation curves to control the easing and the horizontal animation of the system via lerping. This is why it curves smoothly in the video before landing. I also included a “depth fudge” parameter, to compensate for the transition from perspective to orthographic camera. This makes the particle seem to come from further away when it is released from the enemy. Once the feature was made, the interface for the effect artist was quite simple:
Unity is a great choice of environment for this kind of thing because it balances ready-to-use features and flexible extensibility. It’s a tool for getting stuff done, if you have the right people driving.
One common bottleneck for production is asset creation. Once your system is generally in place, a good portion of the work is in fleshing out the visuals and gameplay content. A lot of this is down to designers, artists, animators… but the built-in toolset of Unity is certainly more developer-oriented. Fortunately, Unity exposes its editor to script as well, so developers are handed the tools to deal with this. This is a problem – and an opportunity for a big efficiency boost – that often goes unnoticed; developers tend to not think about the visual creative process, and artists tend to not ask how custom tools could improve their workflow.
Here is a situation I run into often – and for which I’ve developed a tech fix. Say one of your artists has made this nifty particle effect:
Producer says, “Great, now we need the wind, water, light, and dark versions.” However, in Unity there is no easy way to edit multiple colors at one time. So you have to go through each Shuriken system, click each color swatch, and change it to the appropriate value each time. Sounds like a simple change, but consider what the artist has to do to get there. The above character has four attacks and a total of 58 particle systems. Not every color and gradient swatch is used, but let’s say an average of 4 color instances are used on each particle system. Changing them involved a click to open and 1-3 drags to adjust the color.
So let’s say:
4 more characters * 58 particle systems x 4 colors x (2 drags + 1 click) = 2784 user interactions!
This is not a great use of artists’ time (or your project’s budget). So what if they had a tool like this:
With this I’ve managed to automate the process down to this:
4 more characters * 1 drag into the tool * (2 drags + 2 clicks to to adjust color, + 1 click to execute) = 20 user interactions to get you to this:
That will get you to something usable, and free up your artists to spend their time doing that thing that will set your game apart – the polish. Ultimately, game development is itself like a really good game: a series of problems to be solved. This kind of problem solving is what makes working in games and with Unity so satisfying to me. I’d love to talk with you about how I can help you make your game into something really special, so please, get in touch.
Want to get in touch with Joseph? Let us know and we’ll make the introduction.