Former 2K Australia level designer Cory Spooner talks about the creation of his mobile racing game Swing Racers with Unreal Engine.
Former 2K Australia level designer Cory Spooner talks about the creation of his mobile racing game Swing Racers with Unreal Engine. While going indie proved to be difficult the developer is happy with the release of his new project, that took nearly 3 years to make. In our exclusive interview he talks about Unity and UE3, figuring pout the perfect control scheme for his game and finding new ways to market the game online.
About Cory Spooner
Before working at 2K Australia I worked at Sidhe Interactive (now mostly known as PikPok) in my home country, New Zealand. There I was a designer on Jackass: The Game (PSP, PS2) and Speed Racer (Wii, PS2), and I built a bunch of levels for the Xbox 360 version of Gripshift. Gripshift was a great little game and probably didn’t get the attention it deserved.
Before working there, I was the “Lead Console Level Designer” at Perception in Sydney, working on Stargate SG1: The Alliance (never released).
Before those, I did a lot of levels for the Unreal Tournament series as a hobby since 2000 (something like 60+ levels). Some were on the Editors Choice Edition of UT2004 with the Jailbreak mod. Pumping out UT levels is one of my favourite past times and if I get enough freedom in future I’d like to do some for UT4.
I only left professional AAA development in February this year, but have been working on my own mobile projects for 3 years or so. Mobile is the obvious choice for the solo developer due to the lower average quality bar and scope. AAA dev has it’s charms (not least of which is getting to work with a lot of extremely talented people, and learning the processes required to ship a full title), but I’ve come to the stage where I have a whole heap of ideas that I’d really like to try and mobile is the only realistic path for now. There’s also the whole “being part of a production line” thing with AAA – you get really burned out creatively and it’s tough to pluck up the motivation to do anything of your own.
Working With Mobile Games
Promo is obviously very tough for the indie mobile dev, yes. Supporting the wide array of Android devices is tough too (not to mention, a market where people don’t like to pay for anything). I’ve stuck to iOS only for the time being, based on the experiences of other developers I know. UI sucked a lot of time. Another thing about mobile is that things like your icon and screenshots are a BIG deal, and can really affect sales. These are not really my strong point so they also took a long time. Finally, being able to maintain enthusiasm for the same project over a very long time is hard. But I could write an essay about that alone!
UE3 was an easy choice for me as the time as I’d been using Unreal for ~15 years and am generally regarded as the “Unreal Guru” at the studios I’ve worked. Since I was using it at work, I was able to do everything very fast and it didn’t seem worth trying to learn anything else. That said, I did learn Unrealscript in order to do the project properly, but that wasn’t too painful and quite fun.
A big advantage of UE3 is that, out of the box, you can literally click one button in the editor and your level is playing on your iPad or iPhone (without a Mac), in about 45 seconds. Most UE3 features (within reason) worked on mobile and having a lot of optimization experience meant that I knew from the outset what to use, and what not to use. UE3 also comes with a long history of shipped titles, so a lot of the little bugs you might take for granted have been ironed out over time, and that’s a bigger deal than it might seem.
I did use Unity for a few months professionally and it was okay, but I found in general that any time you wanted anything at all, you had to go and see a programmer, and the editor lacked a lot of the “small” features that I’d gotten used to in Unreal over the years – the kind of things that you only get from having a seasoned engine in use for a long time. Some things like the particle editor also lacked the suite of options that Unreal had.
However, I guess being the “seasoned” engine like that can mean that it comes with a lot of baggage / stuff that is unnecessary for the average game which can mean performance isn’t as good or the game size is a bit large. I can also understand how learning UE3 would be tough for someone starting out.
UE4 is a different story though – I haven’t used it a lot yet, but it seems a lot more beginner-friendly than UE3 and very powerful in both features and prototyping speed. Still it’s hard for me to be objective here, regarding my background. Anyway the more game tech we have – the better.
Figuring Out Controls for a Mobile Game
The control scheme for my current game came to me in a dream, oddly enough. I had this dream about pulling little cars around with a rubber band and it felt really fun. I was able to prototype it very quickly in UE3 using kismet. However once I played it on an actual device, I realised we humans have hands, and they get in the way! So it took several prototypes to get the camera doing the right thing for this method of steering to work (I actually ended up going back to my first prototype). I let a bunch of people tried it and they liked the idea, and I felt that I had created something unique which is not easy in the flooded mobile market, so I continued. Kismet in UE3 is fairly decent for prototyping but a bit slow in performance compared to a proper Unrealscript implementation.
Optimizing the Game
Optimization for consoles has been my job for a long time, so right from the start when I design something, I can design the game to suit its target platform from the beginning. Some might think this hampers true design freedom but I say it’s sensible design unless you want to waste a lot of time and money. The only couple of features that I cut (replay cameras and being able to race against your friend’s ghost) weren’t so much for optimisation reasons, but because they would be a lot of work and barely get used (not good “bang for buck”).
Talking about things to be aware of when developing on mobile with UE3.. Most things I can think of are general mobile considerations (like limiting translucency, keeping texture sizes down and audio samples small for game size reasons). One of the things with UE3 specifically that I can think of though is UI – you have a choice of using scaleform or just coding the UI in Unrealscript/canvas. I went for the latter because I had read that scaleform didn’t perform well on mobile and I would have had to learn action script. However, going the other route, positioning even small things took forever, and manually coding fades and animation… Urgh. I feel like a third of the project time or more was spent working on a mediocre UI. Lucky UE4 has already started to remedy this with their Unreal Motion Graphics.
As an indie dev I will do whatever I can – hitting up friends in high places, sending the game out to review sites, getting articles and interviews, everywhere that will have me. Being present in forums everywhere people are asking about games in your category, spamming social media and encouraging ratings, I’ll consider advertising, giveaways, and an attempt at viral promotion, perhaps. I’ll also try to get exposure locally, as a NZ/Aus developer.