Thursday, March 13, 2014

Falling Ball Game

I released simple html5 game called Falling Ball. The player uses arrows to move the ball left, right and to make it jump. You get one point for every hit platform and if the ball touches screen border, any of them, then the ball dies.



It works in Firefox, Opera and Chrome. Microsoft Explorer shows it in weird colors and does not play sounds, but it still is playable.

Inspiration

The game was inspired by game a week challenge and related blog posts by Adriel Wallick and Thomas Palef. Thomas Palef made surprisingly enjoyable action/platform games and Adriel Wallick seemed to experiment with all kinds of games.

Thomas Palefs lessmilk games were especially inspiring, since he made games I enjoyed a lot and he was not experienced game developer. They were his first.

The Goal

I do not plan to become game developer and I already have projects I'm involved in, so game a week does not sound plausible. However, if they can put together a game every week, I should be able to make a game within a week once in a while.

My goal was to make html5 game within few days spending on it as little time as possible. No matter how wrong everything will go and how bad or unfinished it would be, the game was supposed to be finished and released within a week.

However, it had to have all "real game" elements. I wanted it to have sounds, be somewhat polished and somewhat juicified. Everything else was supposed to be in one game a month challenge spirit. Anything goes and any cheating is allowed.

Development

It was more fun then expected. I did not tried to do proper engineering nor to write unit tests. I did no planning and had no game vision before I started. Instead, I tried to see what is easy to do with the framework I picked up and what kind of assets are available on OpenGameArt.

The nature of the game changed drastically and multiple times during the development. It started as dark platformer, then I attempted to do rhythm game, made some other iterations and ended up with happy action game.

I used phaser.io v1.1.3. It was easy to learn and work with. The hardest thing was to choose the right phaser version. Latest 1.1.6 has deal breaking bug - platforms were flying away after being hit by ball. Upcoming 1.2 was just before release, but not there yet. Documentation was not yet fully done and there were only few examples available.

The version 1.1.3 I picked up is used by tutorials and examples, so it was much easier to learn.

Time Spent

The game core is extremely simple, just a few lines of code. It took almost no time to get something running. It is everything else that took most time.

A lot of it was spend just playing, tweaking constants and seeing whether the game feels right. Then there were many tiny things such as splitting game into levels of right length and giving them names, making you died/you won replay screens as little annoying as possible, counting score and storing it etc.

Having an easy way to edit levels helped a lot. They need to be tweaked and tested a lot. The amount of time needed to do minor level change directly influences the outcome.

Finally, digging through creative commons assets was another huge time sink. I spend maybe 30%-40% of time doing that. Fortunately, it was quite relaxing and enjoyable.

On Game Design

Turns out that making a game requires you to play it a lot. You become good at it, so it is important to remember how each level felt when you played it for the first time.

Pictures and sounds make a big difference. The final version of my game have both background music and background image. I tried to save space by removing either of them and the game became way more boring. That was especially surprising in the case of background picture. I thought it is only an optional gimmick. It is not, the game is much less fun without it.

Overall, juicification is more important then I expected. Too much of it and the player will get distracted and frustrated. Not enough of it and the game is boring.

Conclusions

Anyway, I have a real game now. Which is improvement over html5 Sokoban which was only almost there.

0 comments:

Post a Comment