Wayne Gretzky said, “You miss 100% of the shots you don’t take”. Well, I’m 46, and I’m tired of just aiming. So I’m taking the shot. And I will keep taking the shot, until I’m great at shooting.

I was awake at 6:30 in time for Fajr, the dawn prayer. After the prayer, I went to my desk and got started. On a Sunday. That’s what it takes if you want to get something done. No excuses. Make hay while the sun shines. No matter how grey I think the skies are, I know that there is still sun there. So I’m making hay. If I don’t do this now, I will never do it, so I am doing it.

Right now, I’ve committed to recreating the Chimera font, so I’m literally redrawing it using BitfontMaker2.

Chimera font

When I was 16, I’d draw fonts for practice on graph paper during Chemistry lessons. (I failed Chemistry, despite being really good at it to begin with). 30 years later, and I’m drawing pixel fonts by hand again. Is that crazy? On a Sunday morning with the world asleep, is that madness? 

I could probably find some productivity solution, or do some crazy script to get everything across more automatically, but that just distracts me from ding the work and pretty soon, the whole day has gone and I’ve actually done nothing. Sooner or later you just have to do the work. I suppose it’s a bit like the generation ship problem. You know, do you send out a generation ship in the hope that the eventual descendants some way down the line will meet up with an alien civilisation, or do you wait until technology has sufficiently advanced before sending people to far away spaces far more quickly than the primitive tech you used in that generation ship you were thinking of sending a few centuries ago, and which is still ambling along in the bus lane of space somewhere? Well, I’ve decided to take the generation ship.

My dad made me read the Somerset Maugham story on the ant and the grasshopper when I was 6 years old. I’m not sure why, but I spent far too much time as a grasshopper. That’s why I don’t have any savings or a pension. So now I’m an ant, and God willing, I’m not too late.

Chimera: The Home Straight for the Remake

Screen Shot 2012 11 06 at 21 35 57

I hope you enjoyed that little blast from the past. I’ve found the process thus far hugely enjoyable. It’s been therapy.

My day job is demanding and rewarding in equal measure and leaves almost no time for a 46-year old has-been wannabe programmer to make a game, no matter how simple. Well that’s the conventional wisdom. And I say stuff the conventional wisdom. I made the time. I’ve managed to fit in plenty of other stuff too. It’s been a truly extraordinary year. I’ve become reasonably competent at table tennis and lost a load of weight too. It can all be done if you are prepared to focus. That’s the only difference between this year and many years gone by, that I managed to develop focus and let slide that which does not matter. 

So enough of that, what next for Chimera now that a playable version of the game exists? (It can be completed by the way, with all the original rooms and puzzles in place, that’s my definition of a first playable.)

Here’s a partial list:

  • Music
  • Sound effects
  • Disabled enemy animation
  • Player death animation
  • Text system (remember the “event handler” scrolling text? This new system, TBD, will replace that)
  • Energy / Coolant display in bar format
  • Trophies and On-line Leaderboards (OK, that’s a lie)
  • Score handling and display
  • Inventory displayed a bit more neatly
  • Title screen
  • Credits screen
  • Victory sequence
  • Mouse control
  • Co-operative on-line multiplayer (OK, that too, is a lie)
  • Control settings screen
  • Terminal handling with text display
  • Tuning – graphic touches and gameplay tweaks

So not an awful lot to go really – doing the above takes me to beta I think. I will skip alpha. Alpha is meant to be an internal test anyway, and let’s face it, I’m the internal test.

Here’s my deliver schedule:

Sunday 11th November:  2nd Playable

Sunday 18th November: Beta

Sunday 25th November: 1.0

I’ll leave you with some feedback from Twitter and ADN


Screen Shot 2012 11 06 at 21 37 02Screen Shot 2012 11 06 at 21 37 16Screen Shot 2012 11 06 at 21 37 40Screen Shot 2012 11 06 at 21 37 51Screen Shot 2012 11 06 at 21 39 08Screen Shot 2012 11 06 at 21 38 04Screen Shot 2012 11 06 at 21 38 19Screen Shot 2012 11 06 at 21 39 24Screen Shot 2012 11 06 at 21 38 27Screen Shot 2012 11 06 at 21 38 34Screen Shot 2012 11 06 at 21 38 45Screen Shot 2012 11 06 at 21 38 59Screen Shot 2012 11 06 at 21 36 50


Screen Shot 2012 11 06 at 21 44 38

Screen Shot 2012 11 06 at 21 43 46

Screen Shot 2012 11 06 at 21 44 09

First Playable

Screen Shot 2012 11 04 at 21 53 37Screen Shot 2012 11 04 at 21 54 18

Screen Shot 2012 11 04 at 21 55 04

Screen Shot 2012 11 04 at 21 55 37

Screen Shot 2012 11 04 at 21 56 11

At long last, here is a playable (some might call it a pre-alpha, or something modern like that) of Chimera, the game I made in the early part of 1985, when everything changed for me.

For now, there is a link to the use-at-your-own-risk Mac version near the bottom of the post. There’s no installer or anything fancy, so you had better know what you’re doing.

A PC version (without the trademark “Chimera” and “aaarrggh” scream sadly due to a bug) will be made available here shortly too.

I wrote this in C++, with low-level duties provided by the excellent Cinder library. No GameMaker or Unity, I wanted to write in C++ and that’s probably because I’m a stubborn old git. I used my MacBook Air and a Dell laptop. My day job is exceptionally demanding and rewarding, so this took me a long time, working mainly on weekends, with some morning or evening duty.

The graphics are straight from the original, having been unearthed for me by @sokurah, an amazing digital archaeologist if ever there was one. I took the graphics sheet, cut the masks and images, recoloured them and multiplied them by 4 in each axis. The scream and the chimera sample were also unearthed by @sokurah. I edited them to remove some glitches and they went straight in. For some reason, I can’t get them working on the PC version yet, which might be a Cinder issue.

The room data was taken straight from a paper listing I still had of the original data, which I typed in by hand. It was an old listing, so I had to do a fair amount of manual editing to get everything right again, but also wrote a little map editor to make the fixing easier. 

The puzzles are as per the original, inserted by hand.

Major changes from the ZX Spectrum original include:

  • Interactive objects get their own colours
  • Spaceman animation is independent of movement
  • Animation and movement are not hardwired to one another anymore and the player doesn’t have to move a block at a time
  • All movement is directional using the cursor keys
  • I implemented the brilliant collision push system used in Knight Lore to make manoeuvring around blocks and exits easier
  • A screen shake has been added, you might or might not get to see that
  • The spaceman is always in yellow
  • I’ve renamed “bread” and “water” to “energy” and “coolant”

Some notes:

You place a spaceman on the Chimera ghost-ship. You have to destroy it and escape. To do that, you have to solve a series of stupid puzzles, whose logic defies me and will probably defy you too. 

For the first puzzle, you need to find the spanner to disable electric fences before combining the spanner with a bolt to form a warhead. Take the warhead to a blue missile room and arm it by swapping it for the bread. (Don’t ask…)

Once you have armed all the warheads, get the hell off the ship before it self-destructs, heading for the green room.

Remember, this is not even an alpha really, it’s a first playable and no doubt has many bugs. If you want me to keep on working on this, I really could use your feedback and would be grateful. It’s rough around the edges and is still missing a huge amount of polish. The terminals don’t work, there is no real UI or front end. It will all come together.


Cursor keys to move

Space bar to pick up or use

Once you die, and you will probably die often (if you grab something you shouldn’t, or your energy or coolant runs out, or the ship blows up) you will need to load the game again by pressing the ‘L’ key – make it lower-case, I typed it upper case so you didn’t confuse it with a ‘1’, but you’re probably confused already…

You can cheat, really easily in fact, but I’m not going to tell you how. I would prefer it if you didn’t use WASD, but you will anyway, out of reflex, and you will realise what one of the cheats is. Don’t press ‘t’ to get the torch as a cheat either. I’d rather you just found it. Or press ‘m’ to immediately get a missile, because that’s just cheating.

Anyway, please, please, please let me have your feedback. This game will not make much sense to you. I don’t care. It means more to me than you could possibly imagine, and it will only get better. I aim to have a finished version of this remake by the end of the month.

Link to Mac version:

 Link to PC version:

(Thanks to @sokurah, @retroremakes, @kommanderklobb, @eastmad and many more)




Chimera Screen Shot 2012 10 28 at 23 43 09

Chimera Screen Shot 2012 10 29 at 00 00 35

As you can see from the above, that’s pretty much most of the game right there.

I have objects, static and animated. I have food and water, which in a nod to sanity are relabelled coolant and energy, though I will still be using bread and a mug to signify those. The graphics are the Spectrum ones, extracted from a bitmap recovered from the original by sokurah – I used Flying Meat’s Acorn to combine the masks and the original image into a single transparent PNG, quadrupled in both axes to give a 128×128 sprite.

Animation works better than the original in two ways. First, it continues for the player even when he hits a wall, so it’s independent of movement and second, movement is now free of the “one block at a time” limitation of the original.

The other thing I’ve put in is the Ultimate method of pushing towards an opening for collision. You can use blocks to guide you around the map now and it feels a lot more natural.

The display is also compressed, and I’ll probably keep it that way, using the edges to display information (but it will be more pretty than in the shot above)

The adventure handling used to be a huge “if/then” block of Z80 or 6502. Now it’s all text, making it easier to put that together.

I’ve got combinations working, so if you combine the spanner with the bolt, you get the missile.

I’m not going to do an exact remake, it’s already an approximation, so there will be a different text feedback system, probably a more “modern retro” style if that makes any sense at all. I will include the original sound for the scream and title, but I will also rework those. My voice after all, is still my voice. There will be more sound, a bit more chip music of sorts too. The biggest change will be in how the game ends, and there will be many terminals, which will feature lots more story, including artefacts from the original development of the game, including the full sprite editor listing – the Z80 I wrote in early 1985 to get the whole project going in the first place.

The one thing I’m struggling with at the moment is whether to allow dropping of objects. You could drop missiles before (well, you had to, it was part of the game) but I’m wondering if I should allow dropping of objects. The current version allows that, but there’s a bug that prevents those objects from being picked up again, no biggie.

Let me know what you think.

Getting Closer

Chimera screenshot 2012 10 21

I’ve got an EntityFactory class done so that now you can create any object, be it block, static entity (like the spanner, bread etc.) or animated entity (be it the player, electric fence and so on) using a string. It means I can do this:

    player = (Player *)EntityFactory::getInstance()->buildEntity(“Player”);

To create the Player object, or:

    fence = EntityFactory::getInstance()->buildEntity(“Toaster”);

…to create the animated toaster. 
(The cast is needed for ‘player’ because the return type from buildEntity is of course a pointer to an Entity object, from which Player is derived.)

Now while I realise this is absolutely overkill to re-create the original game (which is what I’m doing), this means I’m well set up for the reboot, for which this will become more important.

I’m pretty close to having the next playable.

Chimera Getting Close

Chimera mac screen shot 2012 10 15

I’m delighted to tell you that yesterday I made exceptional progress on Chimera, with a bare bones demo now running on Mac and PC.

There are two versions planned. The first is a pretty vanilla remake of the original, that’s what I’m working on at the moment. It will be released for free. I have got the man walking around the whole map at 60fps now, just as in the original, with pretty much the same data, though some tweaks are still required, because I seem to have an old version of the map data. If you recall, I just typed all of the map data in again from an old listing I had.

The graphics are from the Spectrum version, but if someone can get me the graphics from the Atari 8-bit version along with the palette data, the graphics from the C64 version (ditto) and from the Amstrad version, my plan is to adapt those and have them as swappable skins from the options. I was thinking about making them a gameplay feature of some kind (a different skin for every missile armed, in the order that I did the conversions) and I’ll still think about that, but for now, the plan is to have them as swappable skins. 

Once I release the game, I will also work on (or more likely ask someone else to work on!) 16-bit skins that never got made, including ST, Amiga, PC CGA, EGA, VGA, you get the picture…

I have this still to do:

Other game entities (the obstacles, the pick-ups, the terminals)

Adventure logic (including food/water/radiator/weight processing, torch/dark room, missile arming, death and restart)

Text feedback and display (original text kindly recovered by the brilliant @sokurah, who also recovered the complete Spectrum graphics for me. I won’t reveal the text he uncovered here in case you haven’t played the game, it gives away too much!)

Audio (including Rob’s music, which I have been given permission to use! and SFX, particularly the scream)

But the technology is pretty much done, and I can see the finish line now. If you have any suggestions for subtly enhancing the original, I’m all ears. Remember, this isn’t the full reboot, which I’m still planning for next year, this is the remake. So this is just to whet your appetite and to establish the foundations.

Exciting times!

Blowing My Foot Off

After a few days of not being able to get Chimera to compile because of some seemingly obtuse compiler error, I’ve finally got it building and it was down to a schoolboy error.

I have a pure virtual base class called GameObject, from which I derive objects like Entity, Player and Block. The compiler kept telling me that I couldn’t instantiate Player, because it was an abstract class.

I looked at the GameObject class over and over and couldn’t see what was wrong.

class GameObject
virtual ~GameObject();
virtual void update(float) = 0;
virtual void draw() const = 0;

ci::Vec3f position_;
ci::Vec3f size_;

Well take a look at that const. Looks innocuous enough, but in the classes I decided to over-ride draw() for, I forgot to use the const, which meant that as far as the compiler was concerned, I hadn’t implemented that exact function. And of course, I hadn’t. Took me ages to spot, but the compiler was right and I just wasn’t looking hard enough.

Animation Working

Feel free to download the latest build. I’m quietly pleased with how much progress I made, though for any of you doing any development, it’s nothing to write home about.

As for me, given the other demands on my time, I’m pretty happy.

Keys are WASD to move around the (entire) map. Use [ or ] to zoom in and out.

Roboman is in there, animated at different speeds.

Oh and the zip file contains both Mac and PC versions. Yes, thanks to the wonders of the Cinder library, I am multi platform, simultaneously, not that with my simple code that’s much of an achievement! (PC I hear you ask? Yes, this Macophile bought a cheap Dell laptop from Asda. It’s been good for Steam games too.)

Tomorrow I’m back to work, so progress will slow down again. It’s been a fun 4 days!