Article Blog Image

Back to the Future

GameDev

When I undertook to recreate some of my favourite classic games from the 8-bit era during my RetroRemakes challenge, I found myself drawn back to the joy of creating simple games on those early computers. There’s something about the fun of creating something on such a simple system, with so many limitations that would be considered crazy today. I dusted off, recapped and replenished my old systems from storage, 3 ZX Spectrums, an Atari ST,...

Article Blog Image

Something a bit Bigger

GameDev

While contemplating something new to start now that the RetroRemakes challenge is finished, it occurred to me that pretty much all of my personal projects of late have been very short-term challenges. From building a Spectrum game per month for 12 months, to taking part in time-limited game jams, they’ve all had the same underlying premise, do something fast and loose. It’s time to do something that requires a bit more dedication and commitment and...

Article Blog Image

RetroRemakes Challenge : Wrap Up

RetroRemakes

Wow! I can’t believe I’m actually at this point, there were definitely times over the last year when I thought “What did I do this for again?!?!”. Some months were more challenging than others, mainly due to a lack of available time and real-world distractions.

For all the trials and tribulations, it’s been a fun journey for sure, and I honestly feel like I’ve learned some along the way. Where possible, I’ve tried to explore...

Article Blog Image

RetroRemakes Challenge : Month 12 Update 1

RetroRemakes

The last game of this year-long series, Eric and the Floaters, circa 1982, by Hudsonsoft and published by Sinclair Research, one of the reasons I chose it as the final game.

It’s a simple game, based loosely on Bomberman (or is it the other way around, not clear). Move your character, Eric, around a simple maze, avoiding the “Floaters”, not sure about that name, they are balloons, why not call them balloons, floaters, not a...

Article Blog Image

RetroRemakes Challenge : Month 11 Update 3

RetroRemakes

Some progress this week on the gameplay. I decided on a Kenney.nl set of low-poly 3D assets for the vehicles, I like the look, and the collection has a garbage truck as well as all the other vehicles I needed for this project, so it seemed to make sense. As with all the assets in this project, they are pre-rendered in Blender, using the same techniques described in the previous posts. I have rendered the...

Article Blog Image

RetroRemakes Challenge : Month 11 Update 2

RetroRemakes

Found some time this weekend to progress Trashman a bit. Not going as fast as I’d like, but progress all the same.

As this is going to be a content-heavy build, I decided to dedicate some time to improving the workflow and pipeline for creating the 2D renders in Blender. I figured that once the game is in place and operational, I’d want to take advantage of the pre-rendered nature of the assets to make...

Article Blog Image

RetroRemakes Challenge : Month 11 Update 1

RetroRemakes

The game for the penultimate month is a fun little arcade game from Malcolm Evans, published by New Generation Software in 1984, “Trashman”. Malcolm has some great titles under his belt, including the fantastic “Knot in 3D”, a favourite from back in the day, in fact, surprised that one didn’t occur to me for the shortlist, never mind, and “https://spectrumcomputing.co.uk/entry/2641/ZX-Spectrum/Jonah_Barringtons_Squash”. However, he is probably most famous for the amazing “3D Monster...

Article Blog Image

RetroRemakes Challenge : Month 10 Update 2

RetroRemakes

Only managed to find small bits of time this month to work on Chuckie Egg. It’s been fun, but very little time to put together posts about the progress, so this is a second post just at the point of completing the project.

As I touched on in the last post, I found a good solution to identifying different elements in the game map, by creating different TileSet nodes that exist on different collision layers....

Article Blog Image

RetroRemakes Challenge : Month 10 Update 1

RetroRemakes

After a bit of a break at the end of last month, I’ve started (slowly) on the 10th instalment of the RetroRemakes Challenge. I revisited my game list, again, and realised that I had no platformers in there, which was a bit of an oversight, especially given how popular that genre was on the Speccy. This month was supposed to be “Split Personalities”, but when I looked closer, I realised it had a lot in...

Article Blog Image

RetroRemakes Challenge : Month 9 Update 4

RetroRemakes

Finally got round to adding some graphics to replace the placeholder polygons for the player ship, limpet gun, fuel pod and power plant. All thanks to Kenny, his artwork packs include some very useful “parts” images, that make it really easy to mix and match bits to create different things, so I could mix parts from ships, enemies, rockets etc. to create the limpet gun, fuel pod and power plant. Also added another cool...

Article Blog Image

RetroRemakes Challenge : Month 9 Update 3

RetroRemakes

While a lot has changed, it’s mostly under the hood at the moment, finalising gameplay features and the ability to define the different planets, so that I can soon add the other four planets and get this complete. This update is really just a quick one, to show off the planet destruction sequence I’ve been tinkering with, quite pleased with the way it turned out. As with all these things, especially particle systems, I could...

Article Blog Image

RetroRemakes Challenge : Month 9 Update 2

RetroRemakes

Lots of progress in the last couple of days, some of which is under the hood, in preparation for multiple planets.

The short video below highlights some of the new changes. The shield is functional, had a lot of fun writing the shader for that, it’s basically a square polygon, with a custom shader creating the pulsing shield effect, might spend a little more time tweaking that, but it’s more or less what I was...

Article Blog Image

RetroRemakes Challenge : Month 9 Update 1

RetroRemakes

This month was between two games, I even actually started prototyping the other one before settling on Thrust by Firebird, circa 1986, I’m not going to say what the other game was, as I may return to it in the coming months.

Thrust was a budget title, originally selling at £1.99 on cassette, on their “Silver” range. Although the Spectrum Computing listing shows Gravitar as an influence, I suspect it was more influenced...

Article Blog Image

RetroRemakes Challenge : Month 8 Update 1

RetroRemakes

I originally had a different game planned for this month, but as the plans for the festivities began, it occurred to me that it might be a good idea to try to do something with a Christmas theme. I researched as much as I could, and engaged the help of a Spectrum focused Facebook group, to see what options where available. Not a great deal as it turns out. There are some interesting looking ones,...

Article Blog Image

RetroRemakes Challenge : Month 7 Update 2

RetroRemakes

Didn’t manage to find anywhere near as much time this month for the challenge as in previous months, so not a great one, but enough to meet the criteria, a released, playable version of the original game. I did do, in total, 5 timelapse videos of an hour each of development work, each one compressed down to about 15 minutes running at 4x. I’ve linked 2 through 5 below (1 is on the previous blog...

Article Blog Image

RetroRemakes Challenge : Month 7 Update 1

RetroRemakes

Last month was a real challenge, which once more ended up with me just about getting the playable-ish version out in the nick of time. Thankfully, this month, 7, is shaping up to be a lot easier. Mined Out, a Sinclair BASIC game by Ian Andrew, pre Incentive Software, published by Quicksilva, and rumoured to be an influence on the classic Windows Minesweeper no less.

I’ve decided to take a different approach to document this...

Article Blog Image

RetroRemakes Challenge : Month 6 Update 4

RetroRemakes

Another update from the Driller project. While working on the game this week, I’ve noticed one thing, I still have to import the original Freescape database quite regularly, be that due to a change in the Python script that interprets the original binary database from the Spectrum, or a change to the Godot script that then imports that JSON and builds the Godot scenes. As I want to, at some point, start making some customisations...

Article Blog Image

RetroRemakes Challenge : Month 6 Update 3

RetroRemakes

Another update on the progress of the Driller remake. I’ve made significant changes to the way the original Freescape database is loaded and processed in Godot now, applying materials properly, and adjusting things to take into account differences in the way Freescape worked, and how modern systems work.

Collision volumes, based on the actual mesh geometry, are automatically added to each object as it is imported, these are used to both prevent the player from...

Article Blog Image

RetroRemakes Challenge : Month 6 Update 2

RetroRemakes

Hot on the heels of the last update, wanted to show just how quickly I’m progressing on this one, must be because it excites me so much.

I’ve decided to take a slightly different approach to the updates and posts about this month’s project, and try my hand at making more of the video aspect. The video below includes a lot more detail about how I’m building out this game, the tricks and techniques I’m...

Article Blog Image

RetroRemakes Challenge : Month 6 Update 1

RetroRemakes

I’ve been looking forward to this one since I started this challenge. This game is without a doubt the game that had the most influence on my career, bar none. Driller, by Incentive Software, circa 1987, was the game that was underway when I started working at Incentive in late 1986. I recall clearly the day I visited Minerva House in Tadley, Berkshire, famous for its proximity to the Atomic Weapons Research Establishment...

Article Blog Image

RetroRemakes Challenge : Month 5 Release

RetroRemakes

I’ve just released the month 5 challenge, Deathchase by Micromega. I found some time to add a tank as per the original, it remains at a fixed distance, and is quite hard to hit, as you have to time your rocket launch to take into account the distance to the target, but I feel that is in keeping with the original. I didn’t add a helicopter as I ran out of time and didn’t feel...

Article Blog Image

RetroRemakes Challenge : Month 5 Update 7

RetroRemakes

Last push now, almost done. Over the last couple of days I’ve added some polish, with sounds, SFX, and flow elements, such as a leaderboard and main menu. The leaderboard is, as usual, from my growing library of standard components and tools, so is common among all the RetroRemakes games, albeit with a different skin on each one.

Sounds, sourced from Freesound.org, include a cool futuristic engine sound from “wmquincy101” who I presume has...

Article Blog Image

RetroRemakes Challenge : Month 5 Update 6

RetroRemakes

Finally got round to spending a little (very little 😁) time in Blender on a simple low-poly enemy model. Had some fun creating a very simplistic biker and rigged character, that I’ll hopefully be able to reuse, it’s pretty generic. You never see them up close, so this is more than adequate for the use case.

When I imported the model, I realised the current enemy was about 4m tall, oops, so had to extensively...

Article Blog Image

RetroRemakes Challenge : Month 5 Update 5

RetroRemakes

More positive progress this month, things coming together quite nicely so far, hoping to be able to deliver well ahead of schedule this month, which’ll be nice, after the last minute rush last month.

True to the original game, I’ve now introduced day and night patrols, which toggle after each successful patrol, which basically consists of destroying the two enemy bikes. The night patrol has a different environment, with a moon and very dark sky,...

Article Blog Image

RetroRemakes Challenge : Month 5 Update 4

RetroRemakes

Progress continues, not as fast as I’d like, but progress all the same. Spent some time in Blender modelling a simple bike for the main character, quite pleased with how it looks, sticking with the low-poly style of the trees, with flat shading, as I like that style for this game (and it’s easier 😜).

I’ve started tweaking the gameplay a bit too, there is now an accelerate and brake option, so you can speed...

Article Blog Image

RetroRemakes Challenge : Month 5 Update 3

RetroRemakes

Progress is pretty good on this one, it’s fun working entirely in 3D, it’s where I’m probably most comfortable.

After last month’s complexity, it’s relaxing to get back to something simpler and that requires less replication accuracy. I feel this game in particular is more about the fun gameplay than the accurate reproduction, so I’m aiming more to keep the general feel and intent of the game, while building something that I feel is fun...

Article Blog Image

RetroRemakes Challenge : Month 5 Update 2

RetroRemakes

After the rush last month to get in under the wire, I’m trying to be a little more diligent, committing at least a short amount of time each day where I can to keep things moving forward.

I’ve spent some time tweaking the way the controls work, added some subtle(?) camera tilt, a placeholder bike mesh, which also tilts as a bike would, and changed from the previous purely linear left/right movement to a proper...

Article Blog Image

RetroRemakes Challenge : Month 5 Update 1

RetroRemakes

Having pushed my luck on the last one, Splat, delivering with literally less than 2 minutes to spare, I’ve decided to shuffle the remaining months around a bit to give me some respite. The next one was going to be a very challenging remake, it’s not been removed, just pushed to a later date when I hopefully will be less time-challenged.

So, jumping up the schedule this month is a classic Speccy game, Deathchase...

Article Blog Image

RetroRemakes Challenge : Month 4 Update 5

RetroRemakes

As is so often the case, best laid plans and all that, time has been precariously short this month again for my work on Splat. I’ve had some amazing help from Ian Andrew, providing full BASIC listings, map sketches, etc. from his archives, which has meant that this game is far more true to the original than the previous ones.

In the previous games, I’ve basically played the original game a bit, with some POKEs...

Article Blog Image

RetroRemakes Challenge : Month 4 Update 4

RetroRemakes

Last time I explained that I implemented a really simple map movement into the game, as a placeholder, roughly emulating the original random movement. Since then I’ve been in touch with Ian Andrew, the original designer and co-coder of Splat!. Thankfully, Ian is incredibly diligent at storing and retaining assets from various prior projects and ventures, including Incentive Software and Splat!. He even has all the BASIC code for the game, printed out...

Article Blog Image

RetroRemakes Challenge : Month 4 Update 3

RetroRemakes

Quick update this time round, thanks to the approach used so far, adding collision detection and movement to match the original, for now, was incredibly simple.

Each non-space tile in the TileSet for the map was given a simple square collision shape, this makes everything except white space collidable, which means for now you can’t walk through grass etc. to collect, but you’ll see in a moment why it’s easy change that behaviour....

Article Blog Image

RetroRemakes Challenge : Month 4 Update 2

RetroRemakes

Last time I explained how I got the map into Godot from the image provided by https://maps.speccy.cz. Since then I’ve spent some time experimenting with different ways of representing the view of the original game. In Splat! there is a window onto the play area, 24x14 cells, which is surrounded by a brick wall, which is the barrier against which Zippy (the protagonist) gets squished when out of luck. There are a number of...

Article Blog Image

RetroRemakes Challenge : Month 4 Update 1

RetroRemakes

Going back to 2D for the next challenge, Splat! by Incentive Software, circa 1983 (seems a lot happened in 1983 on the Spectrum!).

This is a favourite of mine, for many reasons, including the fact that it too was a product of Incentive Software, who I mentioned in an earlier post was my first employer. I clearly recall playing all the Incentive games from their back catalog when I started work there, Mined Out,...

Article Blog Image

RetroRemakes Challenge : Month 3 Update 2

RetroRemakes

In the last post, I mentioned that I would be implementing a simple computer controlled player for the first time in this series for High Noon, which is both a player vs player and player vs computer game. In reality, the AI for the computer controlled player in this game is so simple it could be implemented as a relatively straightforward piece of GDScript code, and I did consider that, but, never one to miss...

Article Blog Image

RetroRemakes Challenge : Month 3 Update 1

RetroRemakes

First update of the third remake, month 3, July, brings High Noon from Work Force (UK). A relatively simple, game based on the classic “Boot Hill” arcade game.

For this game, I’ve decided to explore a bit of 3D in Godot. While the Speccy original High Noon is pure 2D, the arcade game on which it is roughly based had some semi-3D elements. It had a Space Invaders style screen reflector, with the monitor...

Article Blog Image

RetroRemakes Challenge : Month 2 Day 23

RetroRemakes

Most of the remaining work for this, relatively simple game, will be creation of assets, namely the hazards. In the original game, the hazards were pretty arbitrary, or at least that’s how it looks to me, happy to be corrected if anyone has any information about the original designers. I’ve decided to sort of stick with that, while adding a little bit of “reason” on the top. I’m going to make all the hazards toys,...

Article Blog Image

RetroRemakes Challenge : Month 2 Day 3

RetroRemakes

As mentioned in the previous post on this remake, once the rendering of the platforms and gaps were dealt with, the remaining part of the basic mechanic was the collision detection and response.

Having created code to draw individual rectangles for the parts of the platform not influenced by one of the moving gaps, it seems logical to use the same code to dynamically create collision shapes in the same way. That indeed would...

Article Blog Image

RetroRemakes Challenge : Month 2 Day 12

RetroRemakes

Just a quick update this time, this game is progressing really fast due its simplicity.

This time round I implemented the very simple “hazards” or baddies. They are really dumb, just appear at random based on the level, one new hazard per level after level 0, and move right to left and go up the platforms as they go. I’ve created only a single, static image for the enemy at this point, in Blender, of...

Article Blog Image

RetroRemakes Challenge : Month 2 Day 1

RetroRemakes

Moving on from the success of the previous remake, Confuzion, wanted to hit the ground running on the second one Jumping Jack by Imagine Software, circa 1983.

While on the surface, this looks like a very simple game to create, there are a couple of things that make it ideally suited to the very particular hardware of the ZX Spectrum, and not so much suited to modern hardware and software. In particular, the way...

Article Blog Image

RetroRemakes Challenge : Month 1 Day 30

RetroRemakes

After the last post on day 26 I was pretty much ready to release, feeling pretty good and 5 days ahead of the deadline. Then, a curve ball. Two of the beta testers had commented how much more fun it would be if there was a high score to chase. I hadn’t considered this given the restricted timeframe, but thought, what the heck, I’ve got a couple of days, let’s take a look.

I...

Article Blog Image

RetroRemakes Challenge : Month 1 Day 26

RetroRemakes

Day 26: I’ve spent a little time adding a couple of tile variations, just to make it a little more interesting. Ideally I’d like to have at least 8 variations, one for each “level” of the building, but time won’t allow that so will be reusing the three I have, wire mesh, wood, and glass. Also added a simple concrete background behind the movable part of the board, to give something to see through the...

Article Blog Image

RetroRemakes Challenge : Month 1 Day 20

RetroRemakes

Day20: Been away from the project for a bit, busy with real life stuff. Finally got some time today to return to it. Spent some time refactoring the code in various places, mainly around the board, tile and spark. Generally following good OO practices, reducing leakage, moving logic into the right classes, so things need to know as little as possible about other elements in the scene, and take care of what they are responsible...

Article Blog Image

RetroRemakes Challenge : Month 1 Day 12

RetroRemakes

Day12: I’ve been spending what time I can spare on the game polishing various parts to make the whole thing a lot more complete.

Level building animation has been added, so the level doesn’t just appear anymore, but animates nicely into place. Same for level failed, when the spark fuse runs out, the board disappears in a fun way too.

I’ve also been tweaking the graphics, creating some nicer tile bases, and including a couple...

Article Blog Image

RetroRemakes Challenge : Month 1 Day 7

RetroRemakes

Day7: a lot of work behind the scenes cleaning up some of the rushed code that is inevitable when building something this fast and loose.

  1. Create custom Godot Resource classes to hold information about individual tiles. This allows me to create tile types as on-disk resources with exposed variables that can be edited in the Godot UI for convenience. Then a startup routine at initialisation time scans a specific resources folder and loads all...
Article Blog Image

RetroRemakes Challenge : Month 1 Day 3

RetroRemakes

Day2/3: managed to get the spark logic working, this will also be applied to water droplets when I get to those.

Not sure how it was handled in the original game, I noticed that the spark doesn’t follow the curved line in the crossover tile perfectly, so I’m guessing it’s a grid, with special case for when a corner is reached. IIRC much of this sort of thing was handled back in the day by...

Article Blog Image

RetroRemakes Challenge : Month 1 Day 1

RetroRemakes

Ok, I’ve committed to this now, no going back. I have chosen a game that both holds a lot of memories for me, has a significant place in my personal career history, and is (I hope) doable in the timeframe, which should help me to get some library code and assets in place that will make some of the harder games to come a little more feasible.

Incentive Software were my first employer, back...

Article Blog Image

RetroRemakes Challenge

RetroRemakes

Photo By Bill Bertram - Own work, CC BY-SA 2.5, Link

A short while ago I began planning for a game creation challenge I’d set myself, I planned to create a game a month for 12 months. I have been working on game ideas for the challenge, and then had an epiphany. In honour of the 40 year anniversary of our most favourite little computer that could, I’m changing things up a bit. I...

Article Blog Image

Giselle2 - Architecture - Part 1

Giselle2

There are three main aspects of the core architecture, the variant type used for data flow, the node types used for defining the operations applied on the data flowing through the system, and the rendering sub-system. It could be argued that the scripting language binding is also part of the architecture, as it’s going to be a key part of the system that will allow far more power out of the system than otherwise possible,...

Article Blog Image

Giselle2 - The Revival

Giselle2

Firstly, a bit of background. For as long as I can remember, I’ve been interested in the idea of procedural content generation, creating large amounts of detail from small seeds of information. This fascination was originally driven by my other passion, computer graphics and animation. My first introduction to procedural content generation was through the AL system from Stephen F. May, which I found out was influenced by the menv system developed at Pixar for...

Article Blog Image

Is the mBaaS Business Model Broken?

Infrastructure

Having spent a great deal of time integrating backend services into my recent game, Fruit Spritzer, in this case only very rudimentary ones, authentication and social leaderboard, I learned a number of things, but this one thing stood out above all else. The landscape for mBaaS providers is incredibly fickle. Let me explain my thinking.

A bit of background first, my game is built in PhaserJS for web, and (now anyway, another story) Godot for...

Article Blog Image

Don't Throw it Away Just Yet

Programming

As techies, we all desire the latest and greatest hardware, the most recent and powerful MacBook Pro, the best of the best gaming laptop/desktop, but as developers, we should be mindful of the target audience and aware that not everyone is going to have, or want, such cutting edge equipment.

Clearly it’s more fun to develop on a high powered MacBook or Windows equivalent, things go faster, compile times are shorter, turnaround is instantaneous, etc....

Article Blog Image

Programming Games Just for Fun

GameDev

As I spend more time exploring the potential of permanent, professional freelancing, I have been realising there is a pattern to the sort of projects that I’m drawn to depending on my mood. It didn’t take a great deal of time to work out why, it’s because I really enjoy writing simple, casual game code, in any platform, framework or language.

There’s just something about making a game, no matter how simple the game, or...

Home