Bug Hunting: Post mortem

And finally, with more than a week of delay, i decided to write something on the blog about my last game.  I wouldn’t really call it laziness, Because than implies that i just lollygagged  instead of doing something more constructive. Truth is, between study, trying Ludum dare games, and experimenting with new engines, i easily run out of energies. And it’s almost the case even right now, but i spared some hours on these days to complete this taks.

I like to write on my Blog. It wouldn’t seem like it, but it’s true. I find that writing notes, updates and discoveries of my experience as an indie, is something of relevant importance. In first place i am writing down my story as i walk and tremble in excitement for all the new things i witness. Then there’s the fact that i can carefully collect my thoughts on my last work, To understand what i did right, what i did awfully, what i learned from these facts, and To discover what’s the next step.

So, let’s talk about Bug Hunting.

http://www.ludumdare.com/compo/ludum-dare-26/?action=preview&uid=18332

SS1

It’s a dynamic shooting game , where you need fast reflexes to destroy the black square of DOOM, while avoiding hordes of enemies. But Meh, i am not really good with descriptions, so i suggest you to try it, and it will be pretty self explanatory.

Even this time, HTML5 with the createjs library was my choice. For a 48 hours developing cycle, i didn’t want to stress myself trying to make sense of a new platform.

This was my first attempt to a game with a moving camera. Finding and implementing a solution was a bit time consuming, but rewarding. Thinking about it right now, i am not completely satisfied by the implementation, since it was hardcoded to a relative extent, but it works well anyway, and now i pretty much know how to do it right.

While working on the approach of the ship with the game boundaries, i found out that making the player bounce around was pretty fun. I mean, it’s not something that i saw often on similar games, and it was kind of refreshing.

Then it was the turn of the enemies. As always, i was doing a mess with trigonometry , so i spend an akward interval of time to figure out how to make a seeking AI for the enemy. I also spent a bit of time on tweaking the max speed and the acceleration of the enemies. After finding a good equilibrium, i decided to polish a bit the graphics. I was working with some hand made pgn images, and at first i did not really care for symmetry. Then i thought, “Since the entities are all going to be groups of simple shapes, why don’t i draw them directly with the canvas element?”. I am really proud of this choice. The loading time was now petty, and the game was now smoother , even with a lot of entities ingame.

(Guys, bear with me if i seem excited even by the little things. At this point of my “career”  , i am ecstatic by every little thing i think i do right, and it’s such a good feeling xD)

Ok, at this point i had somewhat of a playable game prototype. There were still a lot of things to do, but i conceded myself some minutes of simply avoiding enemies, parkouring with the stage borders. I liked how things were going.

Next on the list were bullets. Not that hard to do, this time. What i found hard was (sigh) collision.

This time i had to confront a new problem.  Not to identify when a collision occurs (i went with the radius collision system, and i tweaked the collision radius of the entities until i was satisfied by the results). Rather HOW to react. i first started experimenting with single object collisions ( first the core, then the obstacles), and i had some sporadic problems of the ship being stuck. The situation worsened when i spawned multiple obstacles on the same area. Since the problem wasn’t trivial, and i didn’t have time to research or invent some algorithm tailored for my problem ( i was at the morning of the second day ), i decided to leave out collision responses from the code. I also programmed the ship in a way that it couldn’t shoot when with obstacles below, so that it could reach the core only from outside the blob.

The rest of the day was spent on making the game more appealing:

-swapping the placeholder graphics with something reasonably polished;

-UI (Ugh, i hate that thing);

-level generator and scoring system;

while doing this, i was also developing a static shooting kind of enemy. Turns out there were some strange problems that i wasn’t able to solve with the remaining time, so i trashed the work after some time.

And after doing some trivial modifications, i uploaded the game online, and there you have it, Bug Hunting is a game! the next day, after filling my health bar in bed, i tweaked  a bit the parameters of the level generators, since the game was unplayable, and i must have been on drugs ( damn you, need of sleep!!).

the game did receive some good critics, and i took note of all things that could have been done better.

Even this time, i didn’t put effort on making any sound or music. And big error again, since they would add a lot more to the game. I can’t justify myself with the lack of time. I could spare an hour or 2 making something. All i needed was planning ahead that part of development.

Players were conflicted between the ones that liked the controls and the ones that didn’t really enjoy them. I will need to form a better opinion on this, after some testing.

Player enjoyed the frenzy of the game. Meaning i somewhat hit the right ratio of completing  the goal versus staying alive. it was noted though that a more rewarding goal would have been better. In fact a lot of players told me that they didn’t really have any incentive on completing a level, since they could score big just killing the bugs.

And it’s true. The only reward you obtain clearing a level is increasing a score multiplier, and i didn’t even advertise this thing 😛

What i learned here is important. An appealing game is a game where the player is rewarded for his/her accomplishments. Now that i know it in practice, i am a better game designer xD

It’s worth to note though that the players generally liked to play the game even without completing a level. And that’s something i can confirm. the fast movements of the ship, in synergy with fast reflexes to avoid and shoot down the enemies, is something that i found very entertaining. I can say that this game is so far the one that i liked to develop and to play the most. And since the game concept in in my opinion interesting enough, i decided to make a complete game out of it 😀 it will require some months, but i believe i can make my first commercial game out of this. I will target Desktop and Tablet market, since they are the more adapt for this kind of game-play . I still don’t know if i will work alone or with some other peoples. time will tell what is the best choice 😛 wish me luck guys, i will need it 😉

Meanwhile i will continue to join monthly some game jams, when time permits. This month i have my sensors toward the First Legendary fishing Jam, hosted by Sophie Houlden (WooT!). give it a look, guys. it will be epic xD

http://jam.legendaryfisher.com/forum/index.php

Finally, i want to wish good luck to all LD26 participants for the voting phase . i don’t really expect that my game will take me really far, but i don’t really care anyway. i had a lot of fun this time, and the theme was amazing xD

Stay tuned for updates, guys, and see you next time 😉