Space Fortress Reconsiderations
I have been thinking. Last year, I was kicking around the idea of building a Dwarf Fortress clone, but with a sci-fi theme, and side-view (like Miner VGA) and totally less complicated to make it more approachable to both the developer and the player. I was attracted to the thought of a coding together a system of job managers to do stuff. I built a little demo where you could mine out some holes, they would drop rubble, etc. in order to satisfy the mining story.
Anyway. As fun as that is (I’ve always liked the thought of a little space ship landing on a huge asteroid, then turning it into a little base, but never thought of how to do it until I played DF). Then, I thought about just dropping the planet, and just building a big ol’ space-station (fortress), floating around in orbit somewhere.

This way, instead of mining or worrying about space, it’s more about buying chunks of space-station, filling them with appropriate rooms, connecting them together so people can walk around, making sure you have enough air, food, power, etc… It almost becomes like a graph. The figure here has a chunk filled with luxury living area, condos, beach-bubble, and something on top. It would adapt to the population, and in turn the population adapts to what you’ve got. You could make a hospital station, a refinery, whatever. Same as if it were on land, but without that bit of complexity (and, maybe fun in digging).
Anyway, back to the books. I am to be king of programming language semantics.

February 24th, 2008 at 12:10 pm
Hey Rob - what’s your 2d game development library of choice these days? Still Allegro?
February 24th, 2008 at 12:23 pm
Hey Ian! Our mind-brains must have crossed, as a philosopher you would understand, tragically I do not. I was just tucking into some Soscarides, I had downloaded 1.0, but hadn’t touched it in a while. I also just started re-reconsidering the space fortress.
These days I’ve been big into easy-distribution cross-platform stuff. I love Slick for Java right now. Runs in an applet, webstart, or an application on all 3 big platforms. It’s wrapping LWJGL (which in turn wraps OpenGL, OpenAL, DevIL, etc… for Java), so it’s really fast and takes care of some of the boring stuff. And it’s 2D, so we’re on the same page.
As I age, I worry less about low level (SDL and even Allegro) stuff, and willingly eat VM overhead in favour of knocking out prototypes. Or at the very least, pretending to be capable of such a feat.
February 24th, 2008 at 12:36 pm
I’m also a skeptic, so I’ll put it down to lazy Sunday afternoon coincidence. Still cool though.
I hear you on using higher-level tools to build things quickly at the cost of overhead - this is why I got into pygame. However, in python, the overhead is rather high.
I am debating whether I’ll take a run at a better-optimized pygame engine for my next project, or try some other tools.
February 24th, 2008 at 12:43 pm
Give Slick a whirl… I fluctuate from the forgiving Python (in which I inevitably become sloppy) to the stricter Java (wherein I engineer myself into a corner). It’s speedier (I think..) than PyGame, but I’ve always been impressed with python’s performance when the hard stuff was compiled natively. I did some PyOgre stuff once upon a time (I had a screenshot kicking around…) and my game logic wasn’t intensive enough to take it down a notch. I think I might have ran some optimizer/compilers for it though… so cross platformity becomes a bit of an issue.
February 24th, 2008 at 2:06 pm
Thanks for the recommendations. I’m taking a look at Slick. It’d probably be good for me to practice some Java too, as I have hardly written any since undergrad.
Another thing I think I’ll look into is C++/Python integration. One could write the graphics-intensive code in C++ and do the game logic in python, though for the kind of limited graphics I want to use that might be overkill.
February 24th, 2008 at 2:13 pm
Ah, good point. I looked into doing that, too. I ended up thinking about using Lua to do my scripting in C++. It was a fun little exercise, but I ended up getting frustrated.
Instead I got hooked on just doing it in Java, but loading classes dynamically. It took some googling, but I found this neat way you could instantiate instances of a class by only providing the name of the class (in a String). You get your modularity right there. I had a SpaceShip interface and a bunch of classes that had very particular and code-requiring behaviours that I could load at runtime by typing in their names. An RPG coder could really go nuts with that, and it requires less framework overhead to get started than defining all your C-to-Python hooks, etc..