Log Entry, April the 15th: The Brawl Engine

Published April 14, 2008
Advertisement
LotAII will feature land fights (hence my character models); I plan for these to be quite dynamic and engaging - like a hybrid FPS/action game.

What I have:
* 1 character model, half done
* 1 mouse gesture recognition system for combat, mostly complete
This is quite an interesting affair. Your mouse can be used to stab (left button), block (right button), switch weapons (scroll wheel), perform advanced maneuvers (for instance, just moving the mouse left in a sweeping motion will cause your character to slash to the left; there are 5 unique moves to be performed in total, many with directional variations), and fire as in an FPS (with a gun selected, the left mouse button fires; probably a mouse maneuver (move cursor down, then up) will reload; right will block with rifles or shotguns; and moving the mouse straight down will bash with the selected gun)

It works. 'Nuff said.

* One AI maneuvering engine, titled Brawl. So far, it handles retreating and cover; eventually, it will handle split-second decisions as well. It has the potential to work on procedurally-generated maps (although at present the map used was custom-designed) and should act realistically in a fight.



Above: The base "starting" configuration. All enemies spend about two seconds "looking around" for a hiding spot if you have a gun and they don't. Possibly eventually if they /see/ you with a gun they'll run; if they see someone else running they may come to investigate.
Enemies are red dots; you are the green dot; little white dots are "cover spots." Certain cover spots have "leaning" tendencies; characters near here can lean out to shoot at enemies. Other cover spots are associated with actions; so, for instance, an enemy can tip over a table to create additional cover. Different spots have priorities associated with them as well, making AI response more realistic.




Above: The situation a few seconds later. Note how most of the enemies took up hiding spots facing away from you and as far away as possible. (Although proximity to the enemy also plays a large factor)




Above: I moved up to scare away all the enemies in the left side of the room. After a bit of rabbit chasing (they may just walk around the table to get away from you) they were all corralled in the other room. Note that certain enemies are still running; if a hiding spot is too crowded, they won't tend to favor it. In this case their response is more one of "terminal situational indecision."



Above: And again, I scared them back across the room. Some enemies will cluster around the sides of a table facing you; it's far enough away/close enough to them that they feel safer there (but probably aren't). My stated goal for these fights is that they should realistically involve up to 10 characters in a single region or area. I think that this system does adequately complete my goal; hence, I am quite pleased with it.



Basic rules of engagement:
One or two swordfighters may engage someone else in a swordfight. People with guns should stand a ways away and fire at their enemies (moving back if needed; they can be cornered if you can avoid the stream of bullets)
If you have a gun and someone else does as well, they may either begin firing at you or (if more prudent) run for a coverspot with a leaning opportunity, then lean out and shoot at you.
If you have a gun and they don't, they run for cover, as seen above.
If they don't have any cover (say, a square room), they may simply charge you, or cower in fear or back away. The goal is to make your enemies seem human.




Combat details:
You have an extremely limited number of hit points (5 at the moment; attacks may take up to 4 at once) and 8 balance points (needed to perform various attacks). Balance points recharge with time, but slower when blocking. Almost all attacks and blocking take balance points to perform; the blockbreaker will damage an enemy's balance and bring him out of block. Blocking and using initiative is crucial; oftentimes a major enemy attack will leave him open for a few seconds.
0 likes 2 comments

Comments

LachlanL
Cool. It's great to see people working on getting this sort of interaction into their games.
April 15, 2008 01:00 AM
omicron1
Ok, I've added the following:
* "Action" coverpoints. These points require a certain physical characteristic in potential hiders (say, strength) and tend to affect the environment itself. So, say, a table might have different action coverpoints on either side of it; a hider using one of these coverpoints would tip the table over if strong enough, creating extra "normal" coverpoints.

* "tilt" and "crouch" coverpoints. These points allow hiders to pop up/around from behind them and shoot at you. They are quite valuable to gunmen.

* enemy "courage/cowardice" ratings and personal "fame/infamy" rating. A famous/infamous character will be hid from; an unknown will be attacked. A coward will hide; a courageous man will attack.

* Different weapon responses. A swordsman will charge you if you have a sword; less often if you have a gun. A gunman will tend to attack from range, using nearby cover to his advantage but willing to stay in the open if need be.

* Situational responses. An injured enemy will be much more likely to run and hide; a healthy one more likely to attack.

* The beginnings of procedural generation.
April 15, 2008 01:07 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement