So the other day I said something a little outrageous – “this year I’ve gotten more done on the engine than I did in all of last year. That is, believe it or not, completely true, but only because last year was so unproductive.
Basically, because of my finals, I spent the first half of the year doing nothing more than scribbling down ideas and making short, guilty additions to the engine. I was literally counting the days until I could put my last exam behind me as start working on a new RPG. And then, of course, I got writer’s block.
I spent the rest of the year hating everything I tried to put together. I couldn’t program, couldn’t write any music, couldn’t draw a pixel that didn’t look strangely out of place, couldn’t come up with a single line of dialogue that I didn’t hate. In fact, all I have to show for my hobby in 2006 is a crummy GBA remake of a game that wasn’t any good in the first place.
Finally, thankfully, this creative drought appears to be at an end, though I’m terrified that things are going to go back to the way they were. That’s why for the last couple of weeks I’ve been spending practically every minute of free time I’ve had working on the game.
One thing I’ve been thinking about is whether or not I should to scrap the old “Project Distraction” engine that I’ve been working on since my second year in college. On the one hand, it’s the most sophisticated program I’ve ever designed. On the other, I hadn’t worked with it for about a year, and a lot of the early code is really awful. That in itself is a perfectly good reason for a complete rewrite.
I gave it serious consideration – hell, I even made a start at a new RPG engine. Eventually I just sat back and had a look at the engine I’d been working on, and decided that it would be a huge mistake to walk away from it. The engine can do some pretty nifty things – you can edit maps from within the core engine just by hitting F1, for example. The scripting engine is pretty powerful too – it currently understands about 50 commands, and supports things like variables and conversation trees, as well as supporting a simple cutscene engine. On top of that, I’ve got the whole puzzle mechanics thing. All NPCs are treated identically by the engine, and can jump, be pushed around, and stacked on top of each other. It would be pretty silly to scrap all that work, I think, just for the sake of tidier code.
Over the last few weeks I’ve been working on the battle engine. I have something in place that I’m calling the Battle participant system. All NPCs are treated the same in battle, so whether an NPC is an ally or an enemy simply depends on whether a boolean is set. It also supports alliances and different opposing parties, so three groups of heroes can be set up to be hostile to each other if necessary.
It’s all managed thanks to a simple “target” class, that works out an array of targetable NPCs given their designation. For example, say an enemy is using a spell that affects all allys – then the target set is just the NPCs that are in party 1. Or if the caster is using a heal spell that just works on himself, the target set simply contains the caster. The class assigns the set by checking the context, and everything else automagically takes care of itself.
The thing is, I won’t be making any use of this cool functionality. Over the last week or so, I’ve had an idea for a new game for RPGDX’s contest that’s dead simple by comparison to anything I’ve been working on. It’s room by room, FF style battles, and no real complications except a slightly ambitious skill system. The working title, for now, is Major Arcana.
The theme for the RPGDX contest looks like it’s going to be “Gothic”, which is fine by me. Something I’ve wanted to do for a while now is make a simple RPG that uses FFVIII’s junction system. I’ve always thought that it was a really cool system, that just didn’t quite work as well as it should have. The only real problem with it is that in order to be any way powerful, you need to max out the spells you have, which involves looking for weak enemies and drawing as much magic as you can. Of course, if you don’t do this, you’re quite weak by the end of the game, and you’re basically relying on summons to get you through battles.
There are a lot of different approaches that they could have tried, I think, ranging from simple solutions like having the quantity of the spell involved not effect the power of the junction, to more complicated solutions like having a draw fill up your stock of a certain spell, but having more powerful spells have lower stocks. (i.e. you could get 100 Fire spells, but only 10 Ultima spells).
Anyway, this approach led me to thinking about what kind of creatures I would use as Guardian Forces – and I decided on the Tarot cards. In this game, you will encounter all the creatures along the major arcana and fight against them. And if you win? You get to junction them! I haven’t decided yet what abilities you get if you junction Death, heh.
This lends itself quite easily to a good fantasy story – I’m thinking that one of the cards (probably the Magician, or maybe the Emperor) was once a powerful ruler who “enslaved” all these creatures in this form. At the start of the game, something happens to release these creatures, and it’s up to the heroes to track down the cards and save the world. (And get the girl, obviously).
I hadn’t planned on making much of a story beyond that, but the imagery in the cards has been quite inspirational. Mirroring the Final Fantasy tradition that I’m aspiring to, I’m going to have four characters, each of them represented by the suits of the Tarot’s minor arcana – Wands, Cups, Swords and Pentacles. I bought a deck of tarot cards, and I’ve been using them to help me design areas, group major arcana creatures and come up with a backstory for each of the characters, which has been a lot of fun, heh.
Where I go from here, I’m not sure. Although I’m eager to start, since it’s an entry to the RPGDX competition, I’m constrained by the rules of that contest. It may not officially start until the end of February – or they might forbid me from working on the graphics or battle engine before the start date. If that’s the case, I might just forget about the contest and get to work right away.