Archives - June 2008
2008.06.25
More and more time is being spent on design-specific portions of the game right now. I'm trying my best to stay away from development until I get the rest of the major key points and aspects to the game designed out. If anything, at least, I'd like to square away the main aspects of the game: the NPC races as well as the puzzle aspects that accompany them. So far I'm left with two more races that need to be fleshed out. Over the past few weeks I've been struggling trying to nail them all down.

Slowly, but surely, they are finally coming to completion. For the most recent two that I developed I had vague ideas about what I wanted them to be like. For instance, one I wanted to be aerial. As far as that, though, I didn't have much in terms of what they would look like! It's kind of tough to try and come up with something unique, but that also fits the game world. With my aerial race I found that I kept on trying to make something that looked entirely too serious, or unemotional -- which is the completely wrong direction to be taking things in for this game. In the end, it all works out. Doing the translations from sketches into sprites will soften things up a bit, too.

Two more races to go, and then most of the design stuff is done aside from the layout of the game world. That one, right there, is going to be one giant doozy.

2008.06.16
This month's GDR challenge was to write a fun game that would fit within 80 columns and 24 lines in terms of code. Well, over the first half of this month I have done just that. 80x24 (June 2008) is my entry into the challenge. It's a very simplistic game, but I was surprised at how difficult it was to fit all of such a simple game into such tiny constraints!

The entirety of writing the game probably didn't take over three day's worth of time. A lot of that was spent optimizing code so that it would fit in a tiny space. That is, renaming variables to single characters, etc. It's amazing the ways in which you can whittle code down to such basic elements, or use tricks to save yourself some space. For instance, C's "evaluation ? a : b" construct saved me a bunch in coding space time and time again. My biggest accomplishment, though, was taking two fairly similar but different enough functions and munging them into a single function that took some arguments to dictate how those differences could be compensated for.

2008.06.12
I spent some time to fix the speed issues and bring things back to a playable state. While the game doesn't run exactly how it did under Allegro, it's running at a speed that I think is definitely workable. I tossed a test demo out into the wild and so far there are no major issues. The shearing is reportedly gone, which is great news to my ears.

With that stuff squared away I am now beginning to get back into design mode. There are a lot of holes in my design right now, and I'd really like to get that squared away before I move forward with development. This project is a lot larger than anything I've worked on by myself so far. I want to pin down all of the major design details before I end up having feature creep get the best of me.

The first thing that is on my list of todos is to come up with the last 3 of the 8 races that will inhabit the game world. Right now it's really difficult to come up with anything at all. My suspicion is that because I am actively thinking about it, I'm actually preventing myself from coming up with some good material. More often than not, this sort of thing just hits you when you least expect it. I'm waiting for that moment where, magically, three races come to mind and they fit perfectly into the game world.

Somewhat related, I've also grown so accustomed to the main character sprite that I intend to have the main character be a robot. The backstory regarding this is, obviously, still in development!

2008.06.03
After lots of pushing and shoving, the file browser is now integrated into Neverfall. This took a bit of work as the old file browser, or rather, picker, that Allegro provided would be a blocking call. With my customer file browser/picker, this is not the case. It must be run (and polled) as part of whatever main logic loop the game is currently running. This means that I had to take special care to do some logic/drawing wrapping to make it appear that the browser was blocking. I didn't want to change how the game editor worked, even if I could create a system where you'd be able to still be editing while the file picker is active (that's actually kind of a bad idea!)

With the file browsing/picking structure in place saving and loading of maps and object data is now ready. Additionally, saving map exit targets is working, too. What all of this really means is that the editor is now in a working state and can save and load levels.

I ran into a little bit of a snag when I realized that I hadn't yet put in the code to handle parsing out the executable directory on the Windows side of the world. In fixing that up, I also noticed that some of my file finding routines were broken when it came to Windows, as well. In the end, everything is fixed except for running games from the command prompt. Other than that, everything is peachy keen. The main issues that I was having were just those of slash orientation.

With all this talk of Windows, I think you've guessed by now that I've been attempting to get Neverfall building on Windows using my new library. Well, that's done. It works and runs perfectly fine! All that's left now before I have some people test it out and try to force shearing to happen is fixing up the timing issues. My custom library runs a lot faster than Allegro does.

copyright © 2001 - 2010 loomsoft