?

Log in

No account? Create an account
Console Programming - Blather, Rinse, Repeat
July 25th, 2009
09:32 pm

[Link]

Previous Entry Share Next Entry
Console Programming
I'm still amused by a quasi-pun in the title. When I write games for the PS3 or XBox 360, that's one kind of "console" programming. When I use a curses-like interface to make an ASCII art game, that's a completely different kind of "console".

If I were to run NetHack on my PS3, (and how do you know that I haven't? I'm already running Linux on it) that'd just make things confusing.

Anyway, I offer the following deliberately retro screenshot as evidence that I'm doing something:



It's using something that looks like an old Apple ][ font, though it's a little misleading on a number of levels. The look that I'm playing with here is the ROM font, but the Apple ][ was only capable of 40x24 columns in text mode, so the display that you see here is a cheat at 80x60 characters onscreen. The aspect ratio of the characters is a little bit off, but that's probably acceptable.

Oh, also, the Apple ][ didn't have lowercase in the ROM font. By the time the //e came around, that was added, so the font I'm using isn't completely made up.

So, a question you might be asking, and I would probably be asking at this point, is whether the world really needs another platformer. And, of course, the world certainly doesn't. I've played enough platformers, I want to pretty much check them off. That said, I'm currently playing Spelunky. But this isn't a means to create a game that hasn't been made before, it's an exercise, much like art students draw draped cloth or bowls of fruit. I spent a bunch of my childhood thinking about making platformers, laying out jumping puzzles. As a gamer, I'm bored with them. As a developer, I've somehow never got around to really "owning" the logic for climbing up and down a ladder in a way that I like, or a really satisfying jump arc.

So, will this be a Donkey Kong clone? Maybe. It certainly looks like it now, but I may dispense with that as I go on. Or perhaps I implement a dozen different games, including Donkey Kong, Spyhunter, Jumpman, and Miner 2049er. Those aren't all platformers, and even among the platformers, the mechanics of dealing with ladders feel different from game to game, so it might be weird to jam too much into a single game.

A buddy of mine from High School and I sat down years and years ago and brainstormed a side scrolling platform game that we never made. Perhaps some elements of that end up in this game. Perhaps not, or perhaps only as a voice from years ago of a half-imagined project that we never completed.

All of the retro-wallowing aside, though, there are some modern reasons to work on this project - I want to bang out a complete game in short order, and this feels like about the right size of a project. There are some other issues that I want to explore, too, like having a fixed-length game update loop, which runs decoupled from the render loop. That's not a particularly weird sounding thing, but most of what I've done lately has had an update loop that is passed a duration that represents how much time has elapsed since the last update call. Typically in these cases, updates are interleaved 1:1 with render calls, so as the frame rate goes up, the update arguments go down in an inverse relationship. An update loop that goes forward a known amount of gametime has some nice features, including being able to be entirely deterministic. If your simulation is being sampled at varying timesteps, this means that there can be chaotic divergence, which gets to be a pain if you want to do things like playing back an input stream (though, I suppose you could record the frame timestamps, and use that to replay things, but still, it feels like plenty of opportunity for things to diverge).

Anyway, that's one thing that keeps me from doing other things that I should be doing.

(Leave a comment)

My Website Powered by LiveJournal.com