Game Over, Man!

Apologies for the quote from Aliens (warning link has mature language)!

So, over the last few weeks, I have been working on rationalizing the data tables in the game.

When I started this remake, I made a list of jobs that were (SMART) objectives. This approach comes from my project management roles in a previous life! It actually does work quite well when you break the game into small, manageable chunks and then set a realistic timescale for them. Doing projects in this way means you get those little “Yes!” moments when you achieve completion of a task.

Additionally, I also broke the project down so that I could define the storage tables for the data required for each task. This allowed me to complete bits without breaking others – again, small “Yes!” moments.

As a final touch, I also added the game over screens to the game so here’s the “Trials and tribulations” of the static drawing and then shader system that was eventually required.

The original Game Over screen in Paradroid shows a static/noise animation when your connection is terminated with the host droid. This was followed by a message from the 999 droid saying “Transmission Terminated” and you then got to enter your name against the highest score of the day, or the lowest score of the day, if you’d not had a great game between!

When you watch the video:

  • The character frames animate by moving down a pixel or two downwards, my guess is about 4 frames to each one, and there are 4 different types of character.
  • Also, to make it worse, the blocks of animation are then changed randomly.

Below is a video of the frames animating in Tiled. Note that you can’t randomly change tiles with Tiled so the video just shows the downward motion of the 4 different types of character.

Horrible, isn’t it?

I really wasn’t happy with the way things were going, so I started to toy with other ways to create the static animation.

The static/noise animation, I assume, was supposed to be like in the old days of television, when you only had 3 channels, and, either the broadcast stopped, or your coat hanger wasn’t turned in the correct direction, causing static. Only people over the age of 30 will likely know what I mean here.

I tried to recreate the static by drawing black and white pixels across the screen looping around and down the screen but this resulted in strangely shaped blocks appearing and the effect wasn’t very random either. So, next, I tried randomly plotting black and white pixels on the screen. While this, in theory, should have worked, the randomness of the dots wasn’t as random as I had hoped and I would get large areas of one colour making it look totally wrong. After this I started reading up on why the numbers being generated all seemed the same and there is a theory on this here. Andrew himself used to use the sound chip on the C64 to get his random numbers but I don’t really have that option here. GMS does have an internal command to ensure that that the random number generator is supposed to be completely random but I came up with another plan.

I decided to try out shaders next, as I’ve heard a lot about them and GMS has support for them within the language. Luckily there are also a lot of great websites that go into great detail about how you work with them that helped me out.

Below is a video of the end result: