New Game Progress
Sam, on host 12.25.1.128
Friday, January 29, 1999, at 12:44:46
I thought I'd give you all an update about how my CRPG is coming. Usually I don't announce things so far in advance, but having done so already, I'm now free to give progress updates in this message forum. (I kind of feel like Everett Kaser's journal now.) If you are not familiar with what I'm talking about with this new CRPG, read my original post on the subject; a link to it is at the bottom of this page.
Since the day before "Classic Games" was released, I've been hammering out C++ code. The original RPG I wrote was in C, and although I got it to work fine, RPGs lend themselves to object oriented programming more than most projects do. An object oriented solution will be cleaner and more extensible.
So I've been using the original code only as a base of reference -- I'm using the same formulas and calculations and stuff, because I had balanced those out pretty well, but I'm not reusing any of the code.
So far, I have been writing data types more than game logic, although the data types are "smart" data types and have, encapsulated in them, the code for manipulating themselves. I've got most of the data types written: races, classes, items (weapons, armor, and so forth), inventories (the group of objects a character is carrying/wearing), characters (partly written), parties (groups of characters), monsters, monster groups, and spells (although the code to cast them isn't in place yet, the data that describes what the different spells do is). For now I'm using the same items, monsters, and spells as in my original game, but I'll go back and tweak these later. I'm keeping user-modifications in mind, by the way, so when this is all done, it will be possible for you to create your own CRPG. It'd probably be a lot easier, in fact, than writing a game for AGL, as the game construction is much more mechanical and there isn't so much creative writing involved.
Left to do for data types: monster parties (groups of monster groups), towns, the maze/world, and loot (groups of gold/objects, usually found after combat).
Since these data types are "smart" data types, a lot of the game logic is written as the data types are constructed. But I suspect the ugliest of the logic code will be in the "outer" layers of logic that use the data types.
Also ugly will be whole set of I/O objects that will have to be written. On one side, I'll need to be able to dump all data types to disk and read them back again. On the other, I'll need to display the correct HTML (and therefore keep track of what you're doing at any given time) with appropriate controls for making the next move. That stuff is as hard as writing the inner core of the game engine, and a little stickier because it's less obvious how to do it.
So I guess you could say that the game is made up of four "chunks": the data types, the outer game logic, the disk routines, and the output routines. And as of right now, I'm almost done with the data types portion of the game. Not bad for three or four days' work.
More later, as I make more progress.
My original post on the subject.
|