Posted: 4th Jul 2004 03:50
Hi,
I am in the process of creating a 3rd person fighting type game, or beat em' up rather. Some examples would include "Dynasty Warriors", "Chaos Legion", "Mystic Heros", "Crimson Sea" (Koei sure does alot in this genre...).
Anyhow, here are some of my questions that I've been wondering about when designing the game.
1. Physics - How much physics is involved in a game like "Dynasty Warriors" anyhow? I only mention this game as it's the only one I've played of the ones I mentioned.
It seems like there's a bit when an enemy is hit and slung away from how the attack was carried out. But is alot of this just animations? Most of the other parts look like it is. This brings me to my next question...
2. Collision Detection - They use some very simple looking collision detection, from what I can tell. But how is the weapon's collision handled? Is it a seperate object? (I do know that it's a seperate mesh, as it can change - I also assume it's appended to a bone. But how is the model used for collision handled?) And does it move about all the time, along with the model, and is told that when in an attack that it should deal damage then and only then, as well as move about in a preprogrammed manner when in the middle of one?
I've heard that fighter games have different collision points for their characters, for the limbs and such. And when a "hand" box, lets say, hits a "torso" sphere, then you should do this much damage and either play a hit animation or do some actual physics - or both perhaps (which ties in with the above - 1st - question I had).
So if I wanted a weapon box or sphere along with a character box or sphere, would that work? So whenever a character goes to attack, that certain attack animation plays (which contains character and weapon as one, as a mesh I load) along with that certain collision box's or sphere's attack animation, which is created and manipulated in the program by DBP.
3. Functions - Is it possible to pass and return more than one value in a function? I thought so, but for some reason I can't get it to. I needed it so I could break up different aspects of my game, also making it easier to check and perform commands on my objects through use of arrays. Like so...
for x=ArmyMinimum to Army Maximum
if Soldier(x) exist (I forget the command on hand, but it checks to see it it exists)
if Soldier(x).Control=CPU then AI(Soldier(x))
if Soldier(x).Control=Player then Input(Soldier(x))
Collision(Soldier(x),(Other Values of "Soldier" type. Or are they passed along with the base "Soldier(x)"? This would be good to know))
Physics(Soldier(x))
Update_Object(Soldier(x))
endif
next x
Would there be a problem doing it this way? Where the player's or CPU's decision is taken in, aswell as other things like Collision and Physics, then at the very last the object is updated regarding all these different return values? Instead of updating the object in every part like Input, Collision, and Physics. Because if I did it this way it'd make it much messier. I'd like every part very independent of each other. I've tried doing this to some degree, but it's like it messes things up if I group all the object updating together and seperate them from the other parts.
If I think of any more questions I'll just add them here.
Thanks to all those that can help.