Do I have to spell it out? Not a great week--most of the work I've been getting done lately happens in the day or two after Gruedorf posts when I'm still freshly embarrassed about not having much done. It's a good way of guaranteeing something to post, but not a good way of say actually finishing this first release.
Anyway, here are shots:
New title sequence. Not totally done yet, but features the "crawl" effect and a weird cinema bars effect. Coded some camera scroll functions as well and added them to the story sequences throughout, so they're closer to their final form. Still needs work, in particular a "cinema text" function using a larger, whiter font, plus a credits function. But it's better than the previous method of just throwing up an arbitrary .pcx and a systems menu, and sort of gives the game more personality.
Enemy spawn code is so close I can taste it. Currently it works, enemies stalk you (which is frightening, once during tests I ended up letting two of them chase me all over the map), and battle only gets initiated once by a given enemy before the enemy gets de-allocated. I started designing some enemy spawn groups and testing the map to make sure you can't see spawn points before the enemies actually spawn, as well. I don't want to put the code in to test the different spawn/despawn areas before two big things happen with this:
(1) Find a better way of entering/exiting "enemy zones." Right now these are literally just lines of zones that call a function when you step on them, which causes problems if you just dance around on the zone border without actually letting the enemies show up on screen and things. Pretty easy to solve with a global variable--I just want to avoid having to make up a gazillion different function names for every map with enemies on it, like "loadCombatZone1" or something. But I doubt I'll actually be able to avoid this.
(2) Fix weird, horrible array problems. I know this involves off by one bugs (allocating multiple enemies to the same index for some reason, skipping indexes in what should be a block of entity slots) but I haven't taken the time to track it down. It's just something stupid with my math/program flow and then it'll work perfectly and our long national nightmare will be over.
Also, for what it's worth, I laid out all of the desert map obstructions and did a couple of new tiles which will get revised like crazy eventually. But it looks a little bit less totally awful now. I also finally, finally linked up all of the Tack interiors to the exteriors.
When the spawn code works, it makes the game significantly more interesting to play, and gives me at least a little bit of a feel for how annoying/enjoyable leveling and gold-earning is going to be so I can start tweaking that a little bit.
Mapped out the jail map as well in notebooks. That's going to be a headache to build just because it leans really heavily on the map spells system, which currently works but which gives the player much more freedom than he/she would normally get in these games. The map has to be designed to make it possible to get through all of the required puzzles without leveling up your map spells at all, but so that you have to level up to make some chests accessible and to avoid certain fights. My rough draft works well in principle but it's going to require a bunch of testing and tweaking as far as the actual tile-by-tile layout goes.
I also need to make one critical change to the way the map spells work: a generalized effect for entities, and a check for entity locations when the code confirms whether or not you've hit a hotspot. This'll make things easier for future releases when some of the map spells get more entity-specific, as well as make it possible to do things like trip randomly spawned enemies for combat advantage or to duck by certain areas.
The to-do list as far as systems for the first release go:
- Enemy spawning
- BP manager
- Level-up function
- Map spells/prayers in combat
- Map spells work on entities
That should be it, and it's less work than it sounds like (I um hope.) The only fly in the ointment I can see would be weird issues with rendering layers when coding the bp manager and the battle map spells.
Goals for next week:
- Finish the damned enemy spawn code. Put all of the enemy spawn zones in.
- Finish all of the enemy AI/stats for the desert enemies plus the jail guards. These can and should be tweaked later but every enemy should be at least playable.
- Add a generalized chest function, make chest/jar tiles and put some treasures in the game. The item code is all done; this is just a matter of changing some tiles and setting some flags (and doing it in a generalized way so I don't have nightmares about this crap.)
- Block out the jail map. If time, put in the link to the cave map after.
- Do some drafts of the story elements in the jail map--these are probably going to be the trickiest to write since a lot has to happen fairly quickly and without too much exposition. If time just draft the whole rest of the release--I think there are only like two or three story sequences after the jail stuff, plus some little lines here and there.
Should be reasonable for next week. Discipline must be achieved in all of this nonsense.