Sponsored By

Creating Emily's Adventure

The philosophy behind creating an Arcade 2D platformer in Unity3D

Yuriy Nikshych, Blogger

September 3, 2014

6 Min Read

1_512

It all started with a question – How can we create a new 2d arcade game, something that will challengeplayersand that will be competitive with the countless other titles released to the iTunes, Android, Amazon, Mac and Windows stores?  Is this even possible for a small team of Indy developers when there are the likes of Ubisoft to compete with? At first the challenge seemed daunting, impossible even, considering that bucket loads of games are released every day and that only a small percentile ever reach the top. We needed to be different.

2_512

 

We were in need of a name - I’m sure anyone can come up with a “good” name, but we needed something that would resonate with end users and help us get downloads. Much as I dislike long drawn out discussions, we had a brainstorming session to try to find the ideal one – candidates included Jumping Julie, Jumping Jean, Arcade Ashley, Adventure Ann, Tiny Tina, Super Linda, Scrolling Mary, 8 Bit Sara, Punch Girl! , Punch Girl Free!, IAP Girl, Adventure Girl 2. Eventually we settled on the current name, and we think it was a good choice, even though one could deliberate these things forever, it’s important not to get too bogged down in these things.

The name was probably one of the last things we did create for this game – indeed, by that point the levels and game mechanics have already been completed. The characters and a lot of the art was finished ages ago, but with the hectic world of game development being the way it is, we never got around to making it for various reasons, mainly other projects being in the way.  When the stars finally did align though, it was time to begin developing.

1_1

For our game engine (indeed, game creation environment) we chose Unity3D, which we were very familiar with by that point, since we have already created dozens of games in it for iOS, Windows Store, Android and Mac. Prior to using it I personally used Ogre3D as a game engine, while Melior Games used Cocos2D- upon joining Melior Games it was soon decided to switch to Unity3D, in which by that time I have already created several games. We never looked back.

While the benefits of any game engine over another may be discussed for ages (and indeed are discussed in countless forum threads), we thought Unity was right for us since it just “works” out of the box, and has an Asset Store that allows us to get additional resources, such as special effects and device-specific plugins.

Creating the game mechanics was easy enough: for most of our projects we use 2D Toolkit, which is a plugin for Unity3D by Unikron Software – while Unity3D did recently introduce its own 2D framework, we are hesitant to make that leap, since it is still pretty new, and 2D Toolkit has been tried and tested by us over the years, and we know it inside-out.  Creating the levels in it was especially comfortable and enjoyable, owing to its recently introduced TileMap editor. In fact, it was so user friendly that our lead artist was able to create the levels directly in Unity3D  - it truly is an accomplishment when both the artist and programmer converge on using the same tool.

The animations – we are not fans of using sprite animations (image sequences). Instead, we use Fbx’s. While the Fbx format was originally meant for 3D models, we are able to use it for our 2D animations by having a “flat” 3D model that uses the Z coordinate for layer sorting purposes. This helps us avoid a lot of memory issues, since instead of needing to have an image of every frame of a character, we only need to have a single “Atlas” image file (sprite collection image), which contains things like legs, heads, arms, etc. The full process is described in detail here.

3_512

After all of the “fun” stuff like art, animation and game programming has been completed, a much less talked about phase has to take place: the porting to various platforms.  Depending on what game we are making, this may involve things like integrating advertisements, analytics, in app purchases, scoreboards and achievements. Each platform like iOS, Android, Windows, Mac has these implemented differently. Luckily for us, we don’t have to spend company time (which amounts to company funds) developing these integrations, since others have already completed this work, and we merely needed to buy their plugins from the Asset Store.  Deserving of mention is the plugin developer Prime31 – we shudder to think how much time and headaches it would have taken to develop the countless plugins that we have bought from that developer – he/they are true hero’s! The money spent buying the Prime31 plugins was a small fraction of what would have been required, in terms of time, to develop them in-house, not to mention that each plugin requires regular fixes and updates – it would have been a full time job all by itself.

4_512

 Having created the game and thoroughly tested it, it was time to begin publishing and promoting it. Many forego the promotion part, but that would be akin to a band recoding a music album and then merely uploading it to their website and calling it a day. To be fair, the online stores like iTunes and Amazon do offer more of a chance, but you are much more likely to get drowned out by the other countless submissions of that day – it really is a lottery. One has to decide whether to release a lot of smaller projects at a higher frequency, thus increasing the possibility that one of them might become popular – sort of like turtles laying many eggs, with only several turtles usually reaching adulthood, or whether to create a higher scale project to which more time and money would be devoted – naturally, more funds would be devoted to the promotion of such a project.  Unfortunately in today’s world releasing a great game is no guarantee of success, and neither is releasing and marketing a great game any guarantee either – it’s a lottery, and the best one can do is to stack the odds in one’s favor as much as one can.

5

Available for Google Play Store

Read more about:

Blogs
Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like