So, the original RetroQuest tried to emulate Ultima III's "battlefield" system of combat, where random encounters dumped you into a special single screen map where combat played out in a turn-based scenario.
It definitely had the retro feel, but I have a feeling the charm of the turn-based system would have worn off really quickly. I decided to ditch it, and considering how fun the combat system I've come up with has turned out I think I made the right decision.
But when I picture more people than myself running around the maps... especially with some of them in groups... I start thinking that there's something to the "instanced" combat encounters.
Here's my thought:
Encounters take place off the world/dungeon map, in a special battlefield instance. It's not a single screen, though, it's maybe 2 or 3 screens across both dimensions.
I design each possible encounter by making the map (most of them will be very pointedly "generic", like an expanse of dungeon that maybe has some columns or rubble, or a bit of forest, or plains, and the same base maps would be re-used with different monster groups) and placing monsters on them, mostly directly to the north of the center of the map and then cover the whole battlefield with an area. In addition to monsters and terrain, any special hazards (spiderwebs if it's a spider encounter, appropriate traps or magical effects for the monster type, whatever) are also placed directly on the map.
Any element placed on the map will also have a RandOffset variable, which is the maximum distance in any direction it can be randomly shuffled when the encounter is spawned. Elements would also have a Minimum Party Size variable... the base encounter would be 0, with more monsters and/or hazards added for progressively larger groups. (Starting at 0 because I want a +/-1 on the actual party size to account for factors that result in easier or harder encounters.) Some might have a percent chance of showing up, and be removed before the fight starts if that chance isn't met. This way I can make monsters that appear in intelligent tactical positions where that makes sense, and ones that are pretty much randomly scattered where that makes sense.
The encounter map .dmms would not be compiled when the rest of the game is. They'd be accessed instead by a utility program that only needs to be run when there are new encounters. Said utility would save each encounter (probably using Lummox JR's old standby SwapMaps).
So when a player is moving around in an encounter zone in the game, when an encounter is triggered they and their party member will be blipped out of the world and into a new instance generated from the saved encounter map. If client.dir works the way I remember it working, then I could even shuffle the apparent direction of the map... hence why the enemies would usually be north of the party, who would spawn in the middle of the map.
Some encounters would be flagged as ambushes. These would only be triggered if the party's collective perception is beaten by the monster's stealth. Ambush encounters would be copies of the regular encounters but tweaked in various ways, like the monsters are surrounding the party's position or they otherwise have a better position.
Fights would play out in "real time"; no turn-based action. Except there would be a delay at the beginning of the fight where players have a chance to use buffs or "tactical" abilities, switch weapons, choose a target, or even try to flee or parlay with the enemy leader, if they're intelligent. An hourglass indicator would show how much time is remaining... clicking on the indicator indicates you're ready to go, and if the whole party (or only solo player) clicks the hourglass then combat begins immediately.
This is all very much at the conceptual stage right now. I have not done any work towards this concept, though it wouldn't involve rewriting the whole combat system. And while it adds quite a bit of work compared to having monsters spawn in-world and fights take place directly on the map, it neatly answers a lot of the more difficult design questions I'm facing, like:
1. How to keep the monster population/encounter frequency manageable regardless of the physical size of an area and the local player population - With instanced encounters, I just set the encounter rate and it doesn't matter how many players there are or how big the area is.
2. How to handle PvP, both in the sense of how to enable it and initiate it within the game and how to have the monster AI parse situations where there are PC and "monster" mobs potentially on both sides of a fight. - If combat isn't possible in the "normal view" then player fights would have to be initiated, which gives room for opt in/opt out options. And inside combat, how things interact with each other would depend on what "side" they're on, not what type of mob they are.
3. How to do "boss fights". - Another easy one. A boss's lair is just a specially designed encounter.
4. How to make encounters scale with party size and power level. (I already have monsters that can scale up levels, but if they're spawned directly onto the map than either every PC in the same region fights monsters at the same level, or level 10 PCs may be leaving a wake of newbie-slaughtering monsters in their wake every time they return to the starting area.) - Also easy. Encounters would be designed to scale up to the maximum party size, and the monsters would be spawned specifically for that party so they could vary in level.
5. How to make monsters appear in interesting and intelligent combinations and give them their own unique roles like support/healing, minion swarm, tank, etc. - Since I'd be picking which monsters appear together, the sky is really the limit here.
Other than the extra work (and I'm referring mostly to the coding here; designing encounters would be pretty fun and easy, once the system's in place), there is nothing about this idea I don't like. It's another old school/new school blend, it lets me get the most out of the really fun combat system I've devised, and it will also help better tailor the playing experience for people who want to experience more combat or less combat as they traverse the world.
Aug 12 2011, 2:04 pm