Well, my seven days are up. Too much time was spent debugging the same silly problems, hours on end each day. Yesterday, it was just not being able to get my indexing into a given piece of allocated memory to work correctly.
As a challenge to write some reusable game code which I can build on in future, SUCCESS.
The code is still writing itself, it just isn’t doing it fast enough. I haven’t programmed this much C for a long time, so I tend to make all the standard mistakes. Forgot to put a break; statement after a switchcase clause? Check.
What did I actually accomplish yesterday?
The beginnings of an area generation system.
Polishing the turn-based action system.
Killed a lot of flies with one of those metal tennis racket things that have a button which electrifies the metal “netting” so caught flies roast.
Obligations came up, requiring me to spend time elsewhere. But I managed to get some code done, and now my turn-based system is in place. Still little game content, but this is going to invent and implement itself in the remaining two days.. right?
Again, I didn’t spend half as much time on this as I would have liked. But I did get big bang for my bucks out of the time I did spend, from the generic code I’ve already written. Doors now have two flags, locked/unlocked and open/closed. The player can no longer walk through a closed door. Walking into objects pops up a context menu based on the type of object. The turn-based action system is begun.
Sometimes I think I would be making more progress, if I didn’t take the time to perfect my code. Other times I find that “perfected code” enabling me to build other things with minimal effort. Or lending itself to easy extension. Whatever the case may be, things are pretty much writing themselves so far.
The day started off well, I got everything working after the “improvement” that gave a global coordinate space. But that’s about it, due to a more pressing programming task which I couldn’t afford to delay.
I guess I look at the challenge as a way to see what I come up with, without much in the way of planning or pushing myself to do anything but see where it goes when I feel like working on it. In the long run, it’s all code in the bank.
Sunday was a day of lackadaisical work, where I was supposed to be watching Alaska The Last Frontier and Gold Rush Alaska while programming, but was really programming while watching them. A big difference, unfortunately. What should have been interesting and educational television, was ruined by reality TV overproduction. The editing was so bad it was hard to understand what was going on, either they were reshowing the same things over and over, or they seemed to lose track of the interpretation they were trying to show and didn’t show enough to build a clear picture. Wait.. writing this is more procrastination of a different sort!
My game received absolutely no gameplay improvement. All the work was rewriting things to be done in the best way. Some of these were necessary, but most of these I could have lived with and built a game on.
Doors are now reclassified as in-game objects, rather than a fixed part of the background
There can be multiple objects at a given coordinate, rather than just one.
The UI now deals with in-game coordinates in the absolute world coordinate space, and no longer has an “area id” that it passed around with any area coordinate space coordinates.
Today I have to finish the world coordinate space debacle, which is almost working. Then more world generation is next on the cards.
My game engine initially provided a basic UI, and a placeholder non-interactive game world view. Day 7 replace the game world placeholder logic with real logic, and now defines a minimal world that the player can walk around.
Hours were wasted believing where GDB said a crash was happening. There’s only so much you can do to try and get a line that isn’t crashing, from crashing. So out comes printf, and the real problem emerges.
I wish I too were making a rougelike, I expect there’s a lot of money in creating women’s beauty products.
*thud* You wake up in a tunnel with a splitting headache. A voice from the other side of a door informs you of certain tasks you must perform. A sturdy magicked collar around your neck will ensure your death, should sunlight hit you without it’s removal.
The sooner you venture down the tunnel, the sooner this unwelcome ordeal will be over.
Will be implemented in C on Windows, using libtcod. The existing skeleton of a custom framework will be used, with a little design-work done and no gameplay logic written. Work will start Saturday morning.