Snaky Squares Game Design & Gameplay Breakdown
I haven’t been posting on my GMT Dev Blog for a while, been busy finishing off Snaky Squares and so now it’s released (today!), I thought I’d take some time out to write a post about some of the gameplay and game design choices in what at first glance would seem a simple game to most. Hopefully will be interesting to anyone that loves games and those getting into game development.
This isn’t a definitive breakdown of Snaky Squares or even Snake, just a quick write up of some of the more interesting elements, those I happen to be able to make Gif animations of too!
Snake or Snaky?
So Snaky Squares is distantly similar to the classic Snake game found on the first computers and later made more famous by Nokia with them having Snake on just about every phone they made. The classic snake was a 2D blocky game, the snake was made of blocks and didn’t really move but jump jerkily from grid position to grid position, you controlled the snakes direction with four keys or number buttons on the phone, as you collected a dot another appeared on the screen, the screen was static.
Snaky Squares is a smooth moving snake on a 3D platform, to keep a similar gameplay element you can only turn at the edge of the square tiles, and being on a touch device one finger touch controls the direction of Snaky. This is where comparisons end, there are many more elements to Snaky Squares that are unique. Snaky Squares is 3D, levels are made of multiple platforms, there are ladders (arrows) that let you climb up to higher platforms, you can fall off the edge of platforms to your death or to lower platforms, moving walls and other obstacles, power ups, modern sound effects, music and multiple maps to play. Let’s look at some of the elements that make up Snaky Squares!
One Finger Touch Controls
The control system in a game can either make the player love or hate the game, slow to respond controls that make the player feel they lost a life can put players off.
One finger touch controls are very popular in mobile games, not only because they suit the use of the device but because casual game players can easily start playing and then go on to learn more advanced techniques and improve their skill (which is also a user reward). So, Snaky Squares controls are one finger tap on the screen. Snaky can only turn in four directions and so having the player tap to the left or right of Snaky’s head to turn makes perfect sense and is easy to explain in a tutorial, though most players won’t need the tutorial.
Advanced Controls – Taps Are Recorded In a Buffer
Snaky can only turn on the edge of a tile and depending on the movement speed at the time (Snaky speeds up as you collect more dots), the player can tap the screen two or three times before the first tap is executed and a turn is made. In the case of the user tapping twice, Snaky should turn twice, three taps turn three times. So to handle these multiple taps they are recorded in a buffer and played back as the last tap/turn is executed. This means the player can tap twice behind the snakes head to turn around 180 degrees. It also means, if say, the snake is in the top right corner of a platform and you tap 20 times in the bottom right corner, Snaky will zig-zag to that corner. This buffer system is great for the feel and responsiveness of the controls but also adds the possibility of hard levels where the player must zig-zag between some blocks. Another problem this solves is Snaky being played on slow devices or if the game stutters (like the phone does something else in the background unrelated to the game), the drop in frame rate shouldn’t effect the game as the touches are buffered.
Having said all this about taps, I should also point out that the same buffer is used for older style key and joypad input. Snaky Squares supports gameing contollers on the iOS version (I will add it to the Android version soon I promise!), you can use the digital pad or the analogue stick. The inputs still need to be buffered to give the player responsive controls that also execute all the player input without missing one.
Up and Down
2D is so boring, 3D gives you many more possibilities (and development related headaches). 3D allows the addition of going up and down. In order to keep the controls as one finger and not wanting to clutter the screen with joystick like buttons, I opted for in game objects to make you jump – the yellow arrows. Going down is much simpler, gravity lets you fall. Though in one level to travel a long gap between platforms I used arrows.
Buttons and Monetization
I should point out I did submit to adding buttons to the screen for the use of the power items. The power items add a fair bit of gameplay to Snaky Squares and also part of the monetization. I don’t want to get deep into either of these areas right now but just to say quickly: you earn powers by watching video ads at the end of the level, they are desirable as they add to the gameplay, help the player get past hard parts of the game, and help the player break their high score. I don’t know for sure the monetization is balanced right and if it will work (if the desire to earn these items is high enough), only time will tell and then I might blog about if things worked out at a later date. This is a pretty simple monetization model, not tested in the field and is generally a risk but I’m a one man developer and time constraints mean it’s a risk I must take.
Death By Blocks
Another new gameplay element, though a rather simple one are walls. Now Snake had a wall too of sorts, the screen edge. Snaky Squares takes it a bit further with walls being used as simple obstacles you need to guide Snaky around, allowing for some nice gameplay forcing the player to control Snaky in easy wide areas or in harder levels where the gap is small.
And then we have moving walls, many more level design and gamplay enhancing possibilities. With moving walls and the players tail being able to grow hundreds of units long, the decision to make walls bounce off the tail was a simple one. The player can use their tail to allow them to get close to and defend themselves from moving walls.
Fancy Menus and Other Hidden Bits
One major difference between developing games from the 60’s to 90’s and today, is that you have to spend half your time adding front end and back end features. Just look at Snake on a Nokia, a start game button, the game and a game over screen, all it saved was your high score. Literally half the development time for Snaky Squares includes:
- The fancy interface (select level, the shop, options, etc);
- Saving and loading high scores, submitting scores to online leaderboards, syncing scores on the cloud and between your phone/tablet/Apple TV (iOS only, soon on Android sorry!);
- All the code to buy items from the shop and enable them in the game;
- Sound effects;
- Support slow and fast devices (on the very slowest, shadows turn off, the floating lights, shaders are changed, materials and normal maps changed and removed);
- Sharing features!
- Reward adverts systems;
- Achievements (setting up the store pages is the most tedious, each achievement needs a description, a picture, tested, localised); and
- Support for other languages (I did just seven but that is still a hell of a lot of work, don’t forget the store pages iOS and Android multiplied by seven! Seven sets of screenshots too).
OK, that’s enough complaining. End of the day the market is bigger and users expect the features, it’s a necessary evil.
And There’s More!
I’ve just touched on a few of the elements in Snaky Squares and what makes it tick. There are many many game design elements I could write about, but you know, it takes time and I’m not sure anyone is going to read it!
I’m no game dev expert, not even mid quality level mobile games, but I like to share and hope you found this write-up interesting.
Play Snaky Squares
Available now on iOS iTunes App Store and Android Google Play Store.