While I have owned and used Construct 2 on and off for a while to make my own little games and projects in my free time, I havent really embarked on anything big. I've wanted to help what I consider a great HTML 5 engine, but I've been unsure how to become part of this community and what I could bring. I am however brimming over with ideas, so I thought about making a series of prototypes. Construct 2 due to its nature is a fantastic prototyping tool and has a great ability to give life to new ideas quickly. Hopefully by sharing my ideas and thoughts into how to quickly build new creative pillars I can inspire someone, and more than likely learn something myself.
These would not be intended as tutorials due to their somewhat rough nature, and I am no artist so in game sprites will be a mix of placeholder shapes or mostly taken from places such as open game art.org, or from other free bundles and open source sprites. A lot of these will be uploaded via dropbox or on the scirra arcade for ease of access. While I do intend to make some games for desktop, many of these will be primarily mobile games, and so lets start with something relatively simple, perhaps the granddaddy of mobile gaming, if you owned a nokia anyway...snake
The premise of the original snake is simple, making it work in a game is slightly less so.
Here is a very basic version of the original game I cobbled together : https://dl.dropboxusercontent.com/u/245987915/BasicSnake/index.html
To play, click (or on a mobile device, tap) the left side of the screen to turn snake anticlockwise, and the right side of the screen to turn snake clockwise.
Heres a quick rundown of what makes my version of snake run in Construct 2. I have an event that activates once every few ticks. The amount of ticks it takes can be varied by a global variable. The whole games mechanics run off this timer. I have a head object which moves in the direction it faces every time the event activates, a food object which is moved every time the head object touches it, a body object which spawns in the place where the head was every time it moves, and has a lifetime dependant on how much food the head has eaten, and a bonus object which spawns after a certain amount of food is eaten, and only stays active for a short time. There is also a behaviour to allow the head to 'warp' across the screen when it goes of the edge of the playing field. The objective is to gain as many points as possible, earned by eating food and bonuses, without crashing into yourself.
BASIC SNAKE HD
Lets spruce it up a little! Heres the same game, but with art assets and sounds implemented, and with some animations, which luckily for me, can be found in the construct 2 freebundle.
We're going to turn this game into a sort of 'Snake in Space' with the player as a ship, the food as miniature suns, and an alien ship for the bonus that you can plough through. Looks pretty good, and is very easy to add thanks to construct 2. Usually I would add these after all the functionality of the game is in place, but in this case I decided to put this step here just to show how easy adding art assets is.
Heres what the original game looks like with the improved art assets : https://dl.dropboxusercontent.com/u/245987915/BasicSnakeHD/index.html
BASIC SNAKE HD + "ROCKS"
So we have a working version of snake, but how can we add complexity to this golden oldie? You could add highscores, friend lists and other similar social things but the game itself is still quite basic, and game mechanics are what I want to mostly explore here. The game could go on quite a long time and get dull because the game is quite easy, and theres lots of space. Lets keep it simple, but add a layer of difficulty by giving the player something to dodge. Lets throw rocks at them! I have also tweaked the amount of points you get from bonus pickups to be equal to the time left on them, to encourage some speed.
Some playtesting shows that rocks can pop up out of nowhere from the side and kill the player easily. It does seem a little unfair to spawn a rock with no warning, so lets have a timer pop up, similar to our bonus timer, whenever a rock is about to hit the screen. That should give the player time to react.
While an element of frustration has been removed with this early warning system, now its very easy to get out of the way of the rock because we can see it coming ahead of time. Perhaps we could have more rocks, lets have it so that the rock can come from any of three directions, and give them all different timers that are randomised after each spawn! That should keep the player on their toes!
The difficulty spike seems a little abrupt though. First no rocks, then rocks are coming from all directions. We can make the difficulty curve a little better by only randomising rock spawn times after they have spawned the first time. Lets make rocks spawn from the right after 100 timer ticks, rocks spawn from the left after 300 timer ticks, and add rocks spawning from below after 500 timer ticks. This should make for a nice easy ride to begin with, and should end with the player getting rocks fired at them from all directions, but with warning so they can react. We can adjust these numbers as appropriate if we feel the game is getting to hard or too easy.
Here is the final version of snake + rocks : https://dl.dropboxusercontent.com/u/245987915/BasicSnakeHD%2B/index.html
BASIC SNAKE HD + DESKTOP "ROCKS + SHIPS + MISSILES"
So we've got a nice little mobile game here that we've whipped up in a few days, simple aim, simple controls, slight difficulty curve.
Im not going to add any further at this point, but for further consideration, you could easily add some more complexity that you couldnt necessarily add to the mobile game, and turn it into a desktop game. It would be easy to add keyboard controls for turning the ship, and a further control to fire a weapon. You could make the game significantly harder. The player could need to shoot down the rocks instead of allowing them to crash into the tail. There could be a hard mode where score is doubled but there are also enemy ships that attempt to shoot or crash into you.
The game is still quite bare and missing a lot of polish, I havent added any stat tracking, like high scores and things like that, which I might in fact add over the next few days.
Hopefully if this and the following episodes that I already plan to make capture some peoples attention this will become a long term thing, but for now, I'd just like to give something back to the community and the developers.
This is just one basic addition to a game thats been around for a long time to add a bit more complexity, but in future episodes I hope to build several prototypes from one idea. That said, sometimes it just takes one idea added to an already existing one to make something great. You never know until you create it.
I wanted to throw this out quite quick to get an idea of the reception this sort of thing would get, so this post is quite unpolished. I'll happily welcome any comments or suggestions. I initally plan to upload something once every 2 weeks, and I'm already working on the next set of prototypes.
Thanks for reading!
Develop games in your browser. Powerful, performant & highly capable.
nice game! but because of the frame thing! and the asteroids moving as same as snake! gives me the impression game is lagging even if its not! try making asteroids moving smoothly then every 1 sec! and if you change instead of any click try left mouse going moving left and right mouse down moving right! so youl have left and right movement! not only left! but this thing wont work on android unless you do a swipe detection! i already had a snake with swipe for mobile platforms! the bad part is i cannot upload to scirra arcade the capx with this account! keep it up! looks great!