Project Tarot: Day 1

David Shaw, 1:23 am 11th December 2009
Posted under: Blog Babble

One day into development.

First, I’ve given the project a codename: Project Tarot. I always give each of my game ideas or projects a codename so I can mentally package it up concisely in a word rather than “that weird idea about the poachers and the dancing rabbits”. My codenames are always of the form “Project X” where X is one word, as I can then refer to it as X for short but the full title “Project X” means all my ideas are in the same drawer in my filing cabinet. The choice of codename usually is related to the idea but sometimes that relation is extremely vague. I tend to get held up thinking of good names for things, so I try not to worry too much about any meaning behind the codename; I just throw one down and run with it. In this case “Tarot” is simply because I’m planning for a card-game mechanic; the resulting game probably will have nothing to do with tarot at all.

Secondly, I’ve spent a bit too long thinking about code architecture. I’ve been meaning to move towards programming for multiple processors, as everyone seems to have at least a dual-core processor these days. I’ve never done any proper multithreaded or multicore oriented development before, so it feels like a rather large gap in my knowledge. I tend to favour software architectures where main tasks work very separate from each other, so my thinking is it shouldn’t be that big a stretch to getting these to run in separate threads. However after reading plenty of articles and doing some work on the whiteboard I’m now thinking this is a fair bit more involved that I have time allocated in this project, so I’ll postpone this until next time. For now, my concession towards multicore will be to try to keep all the video rendering parts of the program as separate as I can from the rest.

I’ve now got to work on the two big initial hurdles to getting the game done on time.

The first hurdle is, if I’m going to do this thing in SDL and C, I’ve got to get the basic framework in place and running ASAP as I need to get to the actual “game” part of the game. This is one reason why using an existing game engine or a higher-level language like Python or ActionScript/Flash would be more sensible if my only goal was to just get a game done. I’m stuck with a hankering to play around with C, so I’m budgeting a extra day or two towards the basics. It’s not that bad though, as I’ve got plenty of prior projects littering my hard drive I can cannibalise from.

The second rather serious hurdle is that I don’t really have any idea what this game is going to be yet. It’s going to involve cards or some card-like analogue, but that’s about all I’m certain of. I’ve got a few raw ideas, but they need developing to the point where I’m confident it’s not going to fall apart like a miscooked soufflĂ©. Card based systems tend to have some finicky rulesets and I’m not sure it’s the sort of thing you can just wing in a system you’re throwing together on the fly. There’s a more-than-significant chance that the resulting game is going to be an incomprehensible mess to play, but as long as it can be played I’ll call the project a success. And hey, if everything goes to pieces I can just slap together a basic Memory Tile game and call it done.

Leave a Reply