dinsdag 11 november 2014

Implementation: The road so far

In this blogpost we will look back at the implementation of our digital prototype and how it evolved to what it is today. Now that DinoTopHat has set its first steps into the world with our release through social media, it seemed like a good idea to already have a little recap of where we came from, where we are now and where we want to go with DinoTopHat. That's why we will go over the implementation in this blogpost.

In the first session we decided to look at the Libgdx development framework for the implementation of our game. Since none of us had any experience developing games with Libgdx, we started out by learning how to work with it. One of the first things we did after installing it, was implementing a little game described one of the Libgdx tutorials. This game was about catching falling raindrops with a bucket. A screenshot of this game is posted below.
Tutorial Game
This gave us a good view on how to develop games with Libgdx. This game was furthermore easily adjusted to a very early version of a digital prototype for our own game. We needed to change some sprites, introduce the lanes, alter the controls and the first protoype was finished. That way we quickly had a game that visually resembled our first concept art we posted on this blog. Our only goal of making this version was simply to get the hang of Libgdx and maybe to see if the controls we intended to use were feasible. We can't post an actual screenshot of that version, because we no longer have the code.
The first concept art
In one of the next sessions we started building and evaluating the paper prototype for our casual game. This way we decided which other screens we wanted to put in the game and which features we would be adding to our first official digital prototype. So we set out to implement all features we had in mind and a week later our first official digital prototype was finished. The most important features we added were (with screenshots below):

  • A Home Menu with buttons to play, view the higscores and mute the game.
  • A Highscores screen displaying the five best scores on your device.
  • Jungle themed music by SilverPoyozo.
  • Big dinos and palm trees.
  • Increasing speed and spawn rate.
  • Custom sprites, backgrounds and button textures.
  • A simple tutorial intended to explain the controls.
  • A Game Over screen displaying the current score, highest score and a retry button.
  • The player died if he let a small dino escape or if he got hit by a big dino or a tree.
Home Menu
Highscores Screen
Tutorial Screen
Play Screen
Game Over Screen
Since then we have further improved our digital prototype in several ways, into the casual game we have today. Not only the gameplay itself was changed, but also the code behind it. We refactored our code to be much more object-oriented, extendable and readable. This problem arose because we were still building our first digital prototype on the code we got from the Raindrop Libgdx tutorial. This was something we needed to fix as soon as possible, before it would become a bigger problem later on in the development process. Features we added since our first official digital prototype are:
  • Updated sprites.
  • Eat and Death sound effects.
  • Improved IO for storing highscores.
  • Better gameplay balance and hitboxes.
  • Score multiplier system:
    • Eating many small dinos in a row increases the multiplier.
    • Missing a small dino resets the multiplier to the base multiplier.
    • Surviving long increases the base multiplier.
    • eg.: Eating a small dino while having a multiplier of 3 gives you +3 score instead of +1.
  • Slightly improved tutorial.
  • Multiple control schemes.
Control Selection
Improved Tutorial Screen
New Play Screen
This is the version of the game we used to gather results from our first test subjects and also the version we released through social media. DinoTopHat has already come far, but still has a long road ahead of it, but that's a story for a different blogpost. 

Stay tuned for more!

Geen opmerkingen:

Een reactie posten