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.