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 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 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 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...

Article Blog Image

Is the Web Killing the Desktop?

Development

There was a time, not so long ago, when the web was just that, the “World Wide Web”. Times have changed, at an incredible pace, driven by improvements in the availability of high speed networks, and consequently, in the capabilities of web browsers and the breadth and depth of standardised web API’s.

This change was initially driven by the demand for higher quality web browsing experience, but developers soon realised they could do more with...

Article Blog Image

Don't Learn a Language

Programming

In my role as a technology leader, I’m occassionally asked by people looking to develop their career and move into software engineering:

What is the best language for me to learn?

My response is always the same, and has been for many years:

Don't learn a language, learn to program.

This probably requires some explanation to anyone who is not familiar with software engineering practices. Dedicating time to learning a specific...

Home