Setback

chimera-atari-screenshot-purple.png

I’ve had a bit of a setback with the health and have been unable to work at either the office, or on Chimera. My ankles and feet have been problematic and my blood sugar has been wildly out of control. It’s also affected my state of mind and it’s a constant struggle to realise that my mental state is not correct, simply because of extreme physiological factors, like 1000% swings in blood sugar. I won’t allow this to get me down and will get back to it as soon as health permits.

Eid is on Friday, so I won’t do any work on it then and tomorrow I hope to be back at work at the office.

So expect some news on Saturday, when I shall tweet progress.

I want to focus on a number of things in turn:

  • Room data format in XML
  • Room data parsing and display
  • Block attributes
  • Room display (I’m going to have some room-on-room action)
  • A simple depth sort (in the old days, there were always glitches in doing this cheaply in iso, I plan on getting this right)
  • Collision detection
  • Navigation between rooms

I don’t want to see any further down the road than that.

Oh and if anyone can get me some graphics, that’d be appreciated. I need:

  • Chimera spaceman based on the original with walk cycle, rotate cycle, touch object in front of him cycle for 4 directions, die cycle
  • Geometric shapes based on a block graphic that’s 64×64 pixels, using RGBA8 (I might go to RGBA4 eventually, we’ll see)
  • Artifacts of value
  • Background walls

My visual references are the original Chimera, Alien 8, the film Moon and the TV series Space 1999.

If you can help, I’ll be grateful.

Oh and if anyone knows how I can get around that openFrameworks rendering using glOrtho, that’d be appreciated.

 

 

Developer Diary 7/9/2010

Had an awful night and day with health. I caught up with work email on the BB after 5 and now it’s close to 7 and I still haven’t been able to bring my head around looking at code. Today, I will be on reduced functionality, trying to do basic housekeeping and aiming for the smallest possible achievement.

Log:

Removed ccPoint (my structure representing a single 3D point.)

Using ofPoint instead (the openFrameworks altenative)

Realised my code was falling to pieces (because my ccPoint structure allowed me to initialise the whole point with a static C array) so decided to revert to my own ccPoint class again.

Realised also that I’m not using version control and that’s pretty stupid, even on a hobby project at an early stage. I could simply have reverted to my code from an untouched earlier version. Now I have to revert by hand.

And also realised that by using my own class, even if it’s just a thin wrapper, I’m far less likely to be clobbered when I port it to another platform.

Worked out how to make sure blocks are drawn in the correct priority.

Decided I’d like to look at Subversion after all.

Brain is fried, am foggy as hell and it’s only been 20 minutes. I will listen to my body.

Irrespective of recent setbacks (which let’s face it, have been small) I’m hugely optimistic and looking forward to breakthroughs.

IsoText

sample-motion-tracked-text.png

You know that motion-tracked text effect you get nowadays in games and films that’s become really fashionable, where the text is actually part of the scene? (See example above from Splinter Cell)

Well I’d like to do that in Chimera. Lots. The only problem is that I can’t seem to be able to turn off perspective projection.

I’ve tried glOrtho, but that doesn’t seem to be doing it.

That, and some room data meddling, is what I’ve pushed myself through the pain barrier for today.

If anyone has tips on how to get openFrameworks to play nicely with glOrtho, it’d really be appreciated. I’m ill, and now I really must sleep.

 

Working Week

 

colour-cycling-atari.png

Now that I’m back to work, finding time to work on Chimera 2010 is going to become increasingly difficult. I confirmed last week what I have known for some time; that to get into the rhythm of coding requires a considerable investment in uninterrupted time. That I was able to achieve last week and it gave me enough momentum to provide a platform for belief.

You know how with exercise, once you start seeing results, that’s when the virtuous circle of feedback starts to really work for you. I suppose I needed to reach that same point here.

So today was my first day back at work. I barely slept a couple of hours last night and had palpitations, neuropathy and a mild hypo to cap it all off. So here I am at the end of the day, exhausted, having achieved nothing, yet.

And I know that the only way I am going to deliver this game, the only way I am going to prove to myself that I can still do this and the only way I am going to scratch this itch that never, ever went away, is to put some work in, no matter how little, every single day. When I stop for a day, I lose momentum. At 44, you have to do anything you can to preserve momentum, because shifting a lardy old arse is harder than shifting a motivated 19-year old with no responsibilities and an unbroken infinity of a canvas stretching out before him.

I have a monstrous headache, my shoulders and neck are seized up in pain, my ankles are swollen and my feet are in agony. My body is telling me to sleep, my mind is telling me to sleep and my heart – is telling me that if I don’t do something, anything today, I might as well give up.

If any of you are reading, I get motivated by support. Please do share your thoughts and ideas with me, I’m all ears.

I’m now going to take a short commercial break.

New old

Initially, I didn’t understand where the energy for retro-gaming was coming from. While one would expect a few old timers to look back at the past with rose tinted spectacles, what interested anyone else?  Why should Shahid challenge himself with a retro project?

Quite by accident, I saw a small article that introduced the idea quite nicely.

“..remakes, demakes and new games made in the old style.”

This is very much in line with other decentralizing and ownership issues bouncing around the internet at the moment. As game developers, Shahid and I naturally wanted to sell what we made. But we probably considered that whatever we produced was meant to be part of the continuing games culture as we understood it.

The connection between a book author and his readership is only briefly interrupted by the publisher. Once you have ordered a book online, bought it from Waterstones or borrowed it from a friend you have dealt with the mediation stage. All that is left is to enjoy the material.

With software, the publisher gets a big say in form and content. There is a perceived genre, performance, visual quality, difficulty, and flavour that a published game is expected to fulfil. This is equivalent to a book publisher telling an author that her novel should include a red house, only mention characters with popular Christian names and be split into exactly 12 chapters.

If someone remakes, or demakes your game they are to some extent taking back control of the mediation. They are usually preserving the actual material.

I don’t say this to damn publishing as an industry – but society does need to re-balance the needs of culture against the needs of a market.

XML files successfully read

Screen shot 2010-09-05 at 02.30.16.png

One of the things I used to enjoy about coding was removing “crutches”. Allow me to explain.

Crutches are constants you use to put together a working demo. At some point, these constants need to be replaced with real data, loaded at run-time and editable outside the code.

I’ve just got rid of the first of the crutches. And those were the room width, depth and height constants, which are now being read out of an XML file. I’m also being sensible and sending more status output to the debug console. When I used to code in the early to mid 90s, I got my team to use an awful lot of assertions. I’m not sure how I feel about those, or exceptions now. It’s probably useful (I learned the method from McConnell’s seminal “Writing Solid Code” of course). Assertions really do make the code look a mess, but they are very useful and catch a lot of bugs.

What methods do you use nowadays to code defensively?

Room Data

Screen shot 2010-09-05 at 01.29.51.png

I can’t run away from this, it’s time to stick some data in and make it work as a little puzzle world. In the old days, I just had a bunch of bytes. You’ll recall that I wrote the map data in by hand. Well that won’t cut it in the 21st century and the biggest reason for that is not because it’s the quickest way – it is actually quicker to do it by hand and not have to write any code. It’s the best way because if you don’t get it right first time, and you certainly won’t, then you need a tool that doesn’t force you back to the drawing board every time. You need a map editor or room editor that is actually part of the game so that you, or a game designer, or a tester, can make tweaks and changes until you’ve got the playability, challenge, difficulty and surprise just right.

I’ve managed to successfully add the XML addon to openFrameworks (not a challenge for a decent programmer at all, and not a challenge even for me, apart from having to overcome the usual inertia, the temptations offered by distraction, the constant shooting, agonising pain of diabetic neuropathy I get in my feet, my hands and other parts of the body and the incorrect self-image I have of not being able to do this. I can do this, God willing, and I damn well will do it.

I know it looks like I haven’t got much yet, but this is more progress than I’ve made in a while, I’m winning the internal battle and I am determined to see this through. If you’re still with me, if you’re still reading, please, send your friends here and give me all the encouragement I can get. This is a much bigger personal challenge than I’m disclosing.

(Oh, yesterday was a day off, thus no work then)