Taking a Step

Screenshot 2013 10 28 20 05 19

The version of Chimera I wrote last year was a C++ rewrite. It had a few minor changes, like Knight-Lore style collision with room exits, and a map, but it was essentially the same game. 

As I lay the groundwork for the sequel, some of the assumptions of almost three-decade old game have to be discarded. There was no saving or loading, so I didn’t have to worry about intermediate state. I wrote the remaster with that assumption in mind. So now I’m stripping the guts of the game out to allow saving and loading of arbitrary rooms. For this I’m using XML. I will probably switch to JSON at some point, but XML suits me just fine for now. I’m also redoing the Entity class to allow it to be regenerated from “DNA”. This means I don’t have to save the entire state for the object, much of which is unnecessary anyway.

I previously had the concept of a “RoomObject”, which differed from “Entity” in that it had some redundant extra information and pointed to an Entity object. Its only purpose was to allow non-background block objects to be manipulated more easily. There was no reason this couldn’t be an Entity, so that’s the first big change. No more RoomObject structs, everything is now an Entity. Even a Room is derived from the Entity object. The change has been made, but now no objects are being displayed at all, so that needs to be fixed.

A minor problem that I’m sure will be fixed soon is that the Cinder library I’m using is not displaying text under OS X Mavericks.

I’m smoking Ashton’s Smooth Sailing in a Parker pipe I bought from eBay. I was planning on listening to Led Zeppelin, but I’m going silent this evening.

 

Chimera – Mac with Map

Screen Shot 2012 12 02 at 21 22 25

I said I’d update the game, and one of the things a few of you asked for was a map screen. Press ‘m’ to bring up or dismiss the map.

Here’s the cool thing – the game is actually fully playable in the map screen.

Grab the latest Mac build here: chimera-mac-1.1.zip

I’m still working on that bug in the PC version. I’ve tried a few things, so might have an update soon. Apologies for the delay.

Chimera Mac – Remastered

Screen Shot 2012 11 25 at 19 04 00

Chimera 1.0 for the Mac and PC, almost 28 years after I wrote the original, is now available. It’s free to play. This is what modern folk call a Minimum Viable Product. It’s not a very good game, I know that, but it forms the basis for something a lot better, which will contain all the ideas I had for the sequel back in the day, plus some recent ones. You’ll like that I think. Next year.

It’s cursor keys and space bar to play. Look at older posts for debug keys if you want to mess around with it. 

I will of course update this from time to time. I have plans for more audio, skins from the other 8-bit versions and maybe some bonus stuff too. My biggest hurdle writing this again was to stick to the mission. It’s so tempting to tweak something here and add something there. I avoided that for the most part, making the bare minimum of changes, like being able to move as little as you want instead of a block at a time, like the collision system pushing you around blocks, like the improved “event handler” and more context specific terminal help text. 

Underpinning all this is the result of learning some modern C++ (I was one of the first people in the industry to learn it and to teach my team the basics of object oriented programming back in the late 1980s and early to mid 1990s, so the basics were already there). This education will stand me in good stead for future versions that will really be a lot more interesting than this retro experiment.

It has not been easy doing this, but like anything worthwhile, it wasn’t supposed to be.

I have lots of plans, 1.0 is just the beginning of my adventure, aged 46, going on 47.

Download and give me your feedback on Twitter @shahidkamal (please see links below)

Update: PC version available, quit bug fixed in both versions, links below:

Mac version: chimera-mac.zip

PC version: chimera-pc.zip

Chimera Beta (sort of)

Screen Shot 2012 11 18 at 20 39 08

Latest build of Chimera now available for Mac. Will shortly be available for PC.

Most of the sound and feedback text is now in. Instructions follow:

  • WASD or cursor keys move the player
  • Space bar for action to pick up static objects, or combine them with another static object in front of you, or to consume bread or water, or drop a missile in a blue missile room, or access the terminals (which currently don’t tell you much)
  • Arm four missiles to start the self-destruct. You then have 60 seconds to exit via the green room
  • Moving uses energy up faster. If you’re carrying something, energy gets used up even faster. If you’re pushing against a block, that uses up energy. It’s more efficient to move without bumping into blocks
  • Radiators drain your coolant, the closer you are to a radiator, the faster your coolant drains
  • Missiles drain your coolant, as does proximity to an armed missile
  • When you die, hitting the L key (lower case ‘l’) will reLoad the game

Debug mode can be entered by pressing the ‘/’ key. I recommend playing without debug, but here are the keys anyway:

  • WASD moves you a room at a time around the map, cursor keys still move player as usual
  • ‘e’ replenishes your energy, ‘c’ replenishes your coolant
  • ‘r’ resets you to the first room
  • ‘m’ gives you a missile
  • ‘t’ gives you the torch
  • ‘k’ clears your inventory
  • ‘p’ places a missile, or rather, just increases your placed missile count
What’s left?
Music
Help text on terminals
Bug-fixes, tuning and a little polish.

Get the Mac build here: chimera-mac-0.5.zip (This version should work on OS X 10.6 Snow Leopard and above)

Get the PC build here: (coming soon, currently a bit buggy.)

Update on PC build:

I’m hitting some issues with the PC version, primarily audio related. Theoretically, a recompile should work. In practice, I get crashes on audio playback and it might be because my version of the Cinder library is not up to date. I’ll have to look into that. Bear with me, it’s going to be a few days. The Mac version is smoother for some reason, even on slower machines. I’ll look into that.

Second Playable

Screen Shot 2012 11 11 at 20 58 10Screen Shot 2012 11 11 at 21 00 32

I promised you a second playable this Sunday, and here it is. Quite a few changes.

I recommend playing the game in normal mode, instructions are as follows:

  • Cursor keys move the player
  • Space bar for action to pick up static objects, or combine them with another static object in front of you, or to consume bread or water, or drop a missile in a blue missile room
  • Arm four missiles to start the self-destruct. You then have 60 seconds to exit via the green room
  • Moving uses energy up faster. If you’re carrying something, energy gets used up even faster. If you’re pushing against a block, that uses up energy. It’s more efficient to move without bumping into blocks
  • Radiators drain your coolant, the closer you are to a radiator, the faster your coolant drains
  • Missiles drain your coolant, as does proximity to an armed missile
  • There is no text feedback in the game yet, that’s for the next build, along with more sound and perhaps some music (next Sunday)
  • When you die, hitting the L key (lower case ‘l’) will reLoad the game

Debug mode can be entered by pressing the ‘/’ key. I recommend playing without debug, but here are the keys anyway:

  • WASD moves you a room at a time around the map
  • ‘e’ replenishes your energy, ‘c’ replenishes your coolant
  • ‘r’ resets you to the first room
  • ‘m’ gives you a missile
  • ‘t’ gives you the torch
  • ‘k’ clears your inventory
  • ‘p’ places a missile, or rather, just increases your placed missile count

I’ll do a PC build in about an hour, but for now, here is the Mac version, which this time should hopefully work on Snow Leopard (that’s OS 10.6) or above.

Here is the Mac version: chimera-mac.zip

PC version (without the trademark sampled speech and scream): chimera-pc.zip

 What’s left?

  • Text feedback (if you’re new to the game, you won’t know what’s going on, text feedback will help a bit)
    • Terminal help (similar to text feedback)
  • Title screen
  • Control screen
    • Mouse control
    • Rotational key control
  • Sound effects
    • Heartbeat
    • Pick-up
    • Combine
    • Disable
    • Self-destruct klaxon
    • Consume energy
    • Consume coolant
  • Music
    • Titles
    • Win game
  • Animations for disabling animated objects
  • Points tally at end of game
  • Energy and Coolant tuning and placement of pick-ups

It’s almost done!

Chimera Font

Chimera edited font

That didn’t take so long.

If you want to have a go at editing the Chimera pixel font yourself, perhaps you might want to make lower case versions of the glyphs, I don’t know, then follow the instructions in this PDF I made with step-by-step instructions. Make the Chimera font.pdf

Here’s the text file you’ll need for the above:

{“65″:[0,0,0,0,0,112,216,460,492,444,412,396,0,0,0,0],”66″:[0,0,0,0,0,252,396,444,236,204,396,252,0,0,0,0],”67″:[0,0,0,0,0,240,408,12,12,12,396,120,0,0,0,0],”68″:[0,0,0,0,0,60,108,204,396,396,460,124,0,0,0,0],”69″:[0,0,0,0,0,252,396,124,204,12,28,508,0,0,0,0],”70″:[0,0,0,0,0,252,12,124,204,12,28,28,0,0,0,0],”71″:[0,0,0,0,0,240,408,12,492,396,204,120,0,0,0,0],”72″:[0,0,0,0,0,204,396,412,508,476,396,396,0,0,0,0],”73″:[0,0,0,0,0,480,192,96,96,192,192,480,0,0,0,0],”74″:[0,0,0,0,0,480,192,192,384,392,460,248,0,0,0,0],”75″:[0,0,0,0,0,460,108,60,28,252,396,396,0,0,0,0],”76″:[0,0,0,0,0,28,28,12,12,396,460,252,0,0,0,0],”77″:[0,0,0,0,0,396,216,508,428,396,396,396,0,0,0,0],”78″:[0,0,0,0,0,396,412,428,492,460,396,396,0,0,0,0],”79″:[0,0,0,0,0,112,216,396,396,396,396,248,0,0,0,0],”80″:[0,0,0,0,0,252,396,396,236,60,12,28,0,0,0,0],”81″:[0,0,0,0,0,112,216,396,396,428,204,440,0,0,0,0],”82″:[0,0,0,0,0,252,396,396,236,124,204,412,0,0,0,0],”83″:[0,0,0,0,0,248,396,24,240,388,396,248,0,0,0,0],”84″:[0,0,0,0,0,508,372,112,32,112,112,248,0,0,0,0],”85″:[0,0,0,0,0,216,216,476,396,396,396,248,0,0,0,0],”86″:[0,0,0,0,0,396,396,216,216,112,112,96,0,0,0,0],”87″:[0,0,0,0,0,136,396,396,428,492,508,216,0,0,0,0],”88″:[0,0,0,0,0,396,408,432,240,216,396,396,0,0,0,0],”89″:[0,0,0,0,0,408,396,396,504,384,204,248,0,0,0,0],”90″:[0,0,0,0,0,508,204,100,96,304,408,508,0,0,0,0],”48″:[0,0,0,0,0,508,396,412,444,492,460,508,0,0,0,0],”49″:[0,0,0,0,0,112,120,96,96,96,240,248,0,0,0,0],”50″:[0,0,0,0,0,508,388,384,508,12,268,508,0,0,0,0],”51″:[0,0,0,0,0,508,396,384,192,384,396,508,0,0,0,0],”52″:[0,0,0,0,0,240,248,220,204,508,192,480,0,0,0,0],”53″:[0,0,0,0,0,508,12,12,508,384,388,508,0,0,0,0],”54″:[0,0,0,0,0,508,12,12,508,396,396,508,0,0,0,0],”55″:[0,0,0,0,0,508,388,448,96,112,48,48,0,0,0,0],”56″:[0,0,0,0,0,508,396,396,248,396,396,508,0,0,0,0],”57″:[0,0,0,0,0,508,396,396,508,384,396,508,0,0,0,0],”33″:[0,0,0,0,0,96,96,48,48,0,48,48,0,0,0,0],”44″:[0,0,0,0,0,0,0,0,0,0,48,48,24,0,0,0],”46″:[0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0],”58″:[0,0,0,0,0,96,96,0,0,0,48,48,0,0,0,0],”169″:[0,0,0,0,0,112,136,356,276,356,136,112,0,0,0,0],”45″:[0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0],”name”:”Chimera”,”copy”:”shahidkamal”,”letterspace”:”64″}

Just copy and paste the above as plain text when prompted by the PDF guide.