ID:152388
 
I'm designing a new game engine that is, to some degree, based off of some of the principals of the World of Warcraft combat system.

A short primer: In World of Warcraft, many of the spells and skills available to the player have a range requirement, where you need to be so close, so far, not too close or too far, etc. from the opponent or target in order to use them. In addition to that mechanic, there is also a distinct disadvantage to being a ranged class and having a melee class in your face. This presents a few design considerations for my new engine:

BYOND isn't overly friendly towards fast-paced movement and reactions. Games like Proelium and In the Hood operate reasonably well because they have a simple key schematic. You hit a few keys to select a weapon and you hit the center key to fire it, use arrows to move and a few buttons to strafe.

In World of Warcraft (and in my conceptual engine) there are considerably more combat options, and thus more keys available to the player. Combine that with BYOND's limited tile-based capabilities (my engine will not include strange pixel movement, isometric, etc.) and it makes the World of Warcraft design rather uneffective. It would be annoying at best, in my opinion.

I had two ideas to remedy the situation regarding player control, distance, and so forth:

1) Throw out the real differences between ranged and non-ranged. Like an oldstyle MUD fight, you cast a spell and it casts, you could interrupted, but that's part of it. There's no casting delay if you're struck or anything like that, the game just assumes you're next to each other duking it out.

I don't really like that. It gets rid of a lot of what makes the classes and concepts unique, and it also stifles my creativity in terms of having distance as another dimension with which to do some interesting things.

2) The second concept is to have the player move by itself. Essentially the character's movement is controlled by a complex UI that has a few different settings that the player can adjust to the playstyle. "Stay at max range" "Stay in medium range" "Move in as close as possible" "Try to stay behind or to the side of an opponent in melee range" are a few of the concepts that could be used. The actual movement, however, is handled completely by the computer and generally would react in the "smartest" way to stay within the guidelines that the player set.

This, however, presents a few challenges. One, it requires me to code AI. I don't really care for coding AI. Two, it gets exponentially more complicated for group combat. The computer might be able to make an archer run away from a warrior, but what is it supposed to do when a mage comes up from behind, or even a third party enters the scene? I could avoid all the problems by not having group combat, but that leads to a relatively boring game. I'd like fully-fleshed solo and group combat.

Any ideas on how to achieve a "distance between opponents" system using strictly tile-based BYOND? Any concepts could definitely help out.


~Polatrite~
I've never played World of Warcraft so forgive me if I'm missing something.

The distance system is easy through built-in procs. It sounds like what you want is to design a movement system in general which is real-time while still being slow enough for players to make tactical decisions and give various input. I'd probably use some form of action points, but I'm not sure if that would gel with whatever you have planned.