Another monthly update!Â I should try making these more of a daily affair.Â Maybe I’ll just break this one up. Languages first, then.
I’ve been slogging through too many tutorials; I have a bad habit of jumping laterally from one course into another when there’s some tangential problem that Tutorial B solves that Tutorial A doesn’t. But then I get caught up in B and forget about A. Tutorial tribbles, maybe. I’ve resolved to pick a single tutorial and do at least a chapter per day before moving on to other stuff or back to the other courses.
Bullet Poker League, another game I’ve been working on, is currently being written in Python. I haven’t decided if I will finish it in Python. I might adapt the code for a different language before I really get into it again. So far, I’ve programmed in all the basic mechanics: points for collecting chips, a penalty for getting hit by enemy projectiles, algorithms for evaluating poker hands and assigning points, etc. On the horizon I have two huge chunks of programming to do. Â First, I need to program the special abilities that the player is allowed to use, each of which will variously affect chip behavior, card behavior, or even opponent behavior. The second thing that follows is writing the AI for the opponent itself. One day I hope to make it multiplayer, so players can challenge each other, but until then a computer opponent will have to suffice. These are both things that I’m looking forward to programming; I think the challenge level will be quite high compared to the rest of the program.
However, what I’m stalled on right now (both because I’ve been distracted by other shiny things to study and because I’ve only been haphazardly reading up on a solution to my problem) is the a overall design of the program. Right now it’s very procedurally oriented, though I do use classes. However I haven’t designed it very cleanly. It still makes use of global variables in a number of places, and even when I do things properly, I pass way more variables around functions than should probably be necessary. In my reading up on common design problems, I see a number of examples cropping up in my code. For instance, having a single class agglomerate so much general game functionality that it becomes something like a god class.
There are solutions to this out there, I just have to do some cutting and pasting and tweaking and mimicking. All I need to accomplish that is to “search for,” “read about,” and “apply to” in a more focused manner.
Next time: Flash and Autohotkey…