Final progress report - so many features!

Well, it's been a long run, but our game is finally close to being finished! Before I continue and talk about what we have achieved in the time since the last blogpost I want to offer the apologies of our group for missing our biweekly blogpost this week. We were just too preoccupied with getting the promotional material ready and finishing our game that we completely forgot about it. Luckily though, we remembered in time before the final deadline tomorrow afternoon.

With that out of the way we can take a look at what we've achieved in these last two weeks. Well, first and foremost, we've added three more bosses!

Meet the bosses - click for full!

On the far left is our first boss, the Worm Boss, with updated looks and a new homing fireball attack. To his immediate right is the Scarab Boss who has a shield it can restore over time and has a myriad of complicated attacks that increase in complexity when his health gets below a certain level.
Another place to the right is the Butterfly Boss, who can switch colors, which causes it to be immune to and even enables it to recover health from all bullets of that color, with the trade-off that all bullets it fires itself that are of that color can't do any damage either. It has very powerful attacks to counterbalance this though, and some can only be avoided by putting yourself in the path of the bullets that won't deal any damage.
Finally on the far right is the Bee Boss. Although its attacks aren't very powerful compared to the other bosses' attacks it makes up for it with minions that constantly buzz around the screen and a kamikaze-attack where it will attempt to crash into your ship directly, instantly killing you. The sprites of the minions are reaching the completion stage, but unfortunately they weren't ready yet as of this blogpost being written.

Another major thing we've added is particles. What this basically means is that we can create all sorts of neat effects, such as explosion animations for the enemies that are never exactly the same twice, trails for some kinds of bullets such as the Fireball the worm boss fires. We haven't used them too extensively though, in fear of the players confusing them with small bullets or bullets that actually leave a trail of other bullets behind as they go. Nevertheless, the explosion when an enemy dies has been long overdue so even just for that it was definitely worth it to add them.

Also, the shop and the upgrades are finally fully functional! You may have noticed the brown thing circling around the ship in the screenshots – this is one of the drones, and the large, blue bullets on the screen are explosive bullets it fires that can be detonated by pressing the Z key. We've added several other drones, each with unique characteristics and attacks. And the best thing of all is that upgrading them finally works without a hitch. See below for a screenshot of the completed shop.

Note the ridiculously high scrap count for testing purposes

We've also added many small things, including but not limited to:
A shield bar for the player to keep track of how much shield power he has left
A small number appearing above an enemy when it is killed, indicating how much points that earned the player
A display on the side of the playing field indicating all the upgrades the player has activated
Music and sound effects
Three new enemies that have been ready for some time but weren't actually implemented until recently
A functional title menu

Oh, before I forget it, the dynamic difficulty has finally been implemented! The algorithm for it, that had been ready before we even had a moving ship, had to be rewritten completely because it simply didn't work, but eventually we got it to run just fine. What this means is that, in the final version, you can basically play the game at any difficulty level you want without having to make manual adjustments – the game will determine how skilled you are and constantly adjust its difficulty level to fit your skill level. This also means that the game will remain challenging even as you get better at it.

For the tech-savvy among you, the old algorithm kept track of the 50 previous difficulty levels and used this data to calculate how consistent the player was playing. For example, if the previous difficulty levels vary between 0.69 and 0.71 you're playing pretty consistently, while if they vary between 0.2 and 0.8 you're not playing very consistently at all. The algorithm would then adjust the rate of change to the difficulty level to how consistent you are playing - if you're playing very consistently then obviously it has almost nailed how good you are and should thus refrain from making huge changes to the difficulty level, whereas if you are not playing very consistently at all it'll have to make big changes in order to get close to your actual skill level faster. The idea was nice, but it failed in practice because the way it calculated the consistency and used it to adjust the rate of difficulty increase/decrease was completely botched. Eventually it turned out that it was easier to switch to a different algorithm altogether than to try and fix this system. So, here's what we came up with for the new algorithm:

The difficulty level constantly but slowly increases every second. However, the longer you play perfectly (which currently means 'without getting hit') the faster the difficulty level will increase. When you ultimately get hit because the game is getting too hard for you the difficulty immediately drops by a set amount (say, 10%) and the rate of increase halves. Now the difficulty is slightly below your actual difficulty level since the rate of increase will never reach as ridiculously high as 10% per second, but the rate of increase is much lower than the last time the difficulty was at that point. Now the difficulty will increase at a slower rate until it again hits the point where it gets too hard for the player, lowers the difficulty and halves the rate of increase again. This process then continues, continuously trying to find at which difficulty level the game is too hard for you and then diving a bit below that and starting the slow increase again. This way the player will be constantly challenged (since the highest difficulty setting possible is basically impossible) while still not being too challenged. It may sound a bit wonky, but in practice this works really well - in fact, this is an adaption of an algorithm that is used in networking to determine how much data can be sent until the transmission line gets congested with data.

With that bit of technobabble I'd like to conclude this final blogpost. We hope that those of you who read this found it to be interesting (or at least amusing) and we hope to see you at the symposium on the 31st of January from 13:30 to 15:30, with the award ceremony for best game afterwards from 15:30 to 16:30.

On behalf of the entire Thunderstruck team, we hope to see you there!

Post-Holiday Progress

Greetings to all of you who read this post! I hope you all had a wonderful time with your friends, family and beloved during christmas and that this new year will offer you many enjoyable adventures.

But enough with these seasonal greetings. Being here probably means that you are intending to read about our latest developments with Space Hawk, so that's exactly what I'm going to try and deliver.

As has been mentioned in our last post, we had plans for the addition of a shop to give the player the ability to upgrade his or her ship and add extra fire power with the use of drones. To be able to afford these upgrades, the player is required to shoot down enemy ships to collect scrap as a means of currency. As I'm writing this post, this scrap has been implemented and a multitude of drones is up and running as well. Still being worked on are the ability to upgrade the player's ship and the shop itself for the players to spend all their hard earned scrap at.

The game does now save the player's progress in a XML file, meaning that when the game is shut down and started at a later time, the player's upgrades, score, scrap and campaign progress will be reloaded and continued from.

As part of making the moments between the individual levels more enjoyable we have made some progress on a world map to be shown between Worlds. (WIP)


To be clear: we plan to have Space Hawk's campaign consist of multiple worlds, each consisting of multiple levels. We plan to let the world map (in combination with some intermissions between certain levels) add some sort of a story between all the shooting and to provide the player with a sense of fulfillment when/if he/she completes the game.

During boss battles, the player's model is now being scaled down to emphasize the sheer difference in size between the player and the boss, and to make it easier for the player to dodge the boss's bullets. This way the boss battles can be made more difficult than the average wave without making it (completely) impossible for the player to dodge the incoming bullets.
The mechanics behind the boss itself have also been upgraded. Now the bosses have a health bar, have the ability to consist of multiple stages and have their own specific behavior. For instance, this next Super Worm boss (WIP) consists of a head which shoots three bullets and several body parts which each shoot a single bullet. Though this might already sound quite minacious (or not), it is when the player kills one of the worm's body parts that the true fun begins.



For when this happens, the body parts behind the destroyed part will form a new worm, increasing the amount of bullets being shot at the player, while the parts in front of the destroyed part will continue trying to shoot the player, thus intensifying the battle as it continues.
With these kind of bosses in mind, we hope to encourage the player to come up with tactics on how to fight their boss battles and to make each boss stand out from the others.


Other things we plan to be working on in the coming week are things that will make Space Hawk's gameplay more enjoyable. With that I mean the following: more levels to play, more diverse enemies to encounter, more bullet patterns to be shot with, more bosses to battle, more music to enjoy listening to, more sound effects to hear the enemy ships be destroyed, more sprites to make the game even more beautiful, the upgrades to improve the player's stats, the shop to acquire said upgrades and drones, dynamic difficulty to make the game enjoyable for newbies and veterans alike, a tutorial world for those wishing to learn how to play the game first, and last but not least: the main menu.

In other words: lot's of fun (in combination with stress) for us to be had in the coming week, but it will help us getting closer and closer to the point where those who want to play Space Hawk, can play Space Hawk in the way intended.

Once again best of wishes for this new year of opportunities, and until next time!