| |
| Author |
Message |
|
| Cayle |
Posted: Mon Jan 01, 2007 9:07 am |
|
|
Joined: 20 Dec 2006
Posts: 82
Location: Germany
|
If people want to think outside the box, I'd like to propose some meta-rules that we had come up with in the PA work. In fact, this (along with heavy use of physics) is the core basis for how PA is oriented. By meta-rules, I do not mean the ruleset as you normally think, but rather the foundation that the ruleset sits on. It is quite unrelated to D20 style versus skill based or levels versus levelless or genre, though the ruleset that sits on top of it would need to be compatable. Most CRPGs (and by extension game virtual worlds) use what is in effect a PnP based ruleset and the game flows like a PnP one, even when it is not a turn based game. Handling the flow of action is a big area where departure from the traditional turn based tabletop RPGs is not really complete. The norm is a realtime system with actions lasting whatever the turn time is in that system. E.g. you can change the action queue of a Bioware D&D based game every six seconds. How it is implemented is with an action and cooldown.
Combat normally goes so (using a fantasy example)...
*click on opponent to engage with held weapon*
*PC swings*
*PC goes into a wait state while the cooldown is in effect*
*NPC swings*
Etc...
*yawns* that's boring. We could do it a little differently. By taking actions as separate building blocks, and giving the player to execute the actions directly or build them into macros (action chain, command chain, whatever you want to call them), we can turn combat into three dimensional chess. What I mean is that feinting for your opponent’s head and then striking his leg instead (a common medieval tactic) would be two linked actions: “A feint strike on your right side against your opponent’s head” and “A strike on your right side at your opponent’s leg”. These two actions I would categorize as “Active” actions.
I would propose that the general types of actions would be as follows:
- Active - Anything that you do because you set out to do it. An example might be swinging your sword at your opponent.
- Passive – Things like standing in a defensive stance waiting for your opponent to make the first move. A passive action could have conditionals assigned that could trigger active actions. An example would be a block. Another example would be a counterstrike – or even better, a block + counterstrike linked combo.
- Reactive – Actions you don’t really control and trigger based on surprise stimuli. Things like jumping three feet into the air when surprised.
This gives us a few things.
- Firstly, you can have a high degree of twitch effect while not actually requiring it from the player.
- You can introduce player skill as a factor. A knowledgeable player might have a list of favorite action chains for certain situations and things come in like thinking about whether to feint or strike.
- Lastly, modularizing and formalizing the fine combat control allows us to train the AI using machine learning and for the AI to have its own favorite macros. The AI could draw from action chain pallets that have been tuned to the skill level that the NPC in question is supposed to have. “Low level” NPCs could use pallets that have not been so highly tuned for fitness as “high level” NPCs. In this, player controlled characters would be mobs that take action control inputs. You can then use the AI as a backup for when there are no inputs; such as during lag or disconnects.
The flow sequence of actions would be as follows.
Action Interrupts
Essentially any stimuli that a character receives would be classified as an interrupt. We can score their intensity and use fuzzy logic to determine if the character responds or not. Waving to someone may trigger a low value interrupt. If they are not busy, they will notice and take appropriate action. If they are busy, they might not notice. Hitting them might have an instant and strong effect normally, but they might not even notice if they were in mortal combat with their adrenaline pumping. A maxed out action interrupt always has a dramatic effect. An example might be being shot dead with a double barrel shotgun while swinging an axe. You crumple to the ground and don’t finish your swing. Stealth would affect the action interrupts that a character signals and the current environment can change other characters’ sensitivity to that interrupt, but that would be ruleset dependent. You can make the strength distance dependent if it makes sense for that stimulus. Depending on the ruleset, you can also vary the effect of the stimulus based on skills, feats, etc.
The Phases of an Action (Action States)
Pre-initiation: This is the part where the brain is signaling to the relevant muscles to get to work. It is essentially a cooldown period to reflect the normal reaction times of a biological entity. Its duration would be ruleset dependent. It is not really an issue when the player initiates an action manually, but actions triggered in conditionals would see an effect. The interrupt threshold would likely be “fairly high” during this time. Example: Baseball batter sees the pitch and decides to swing.
Initiation: Is the PC/object system in position to do the action? If not, we go through an initiation phase get into position. If “too much” movement (like walking from NY to LA) is needed, abort at the start of this phase. Issues an interrupt and has its own default interrupt threshold during this phase. The required time to execute is calculated and likely based on skill, power and how much delta(x,y,z) we have to cover. E.g. Bat is not cocked properly and the batter quickly pulls it back before swinging.
Commit: Is the phase in which the character starts the action. Likely carries the same interrupt properties as during the initiation phase, though I would want to have the option to customize it. Time is either fixed (for certain actions) or calculated (for others). E.g. actually swing at the ball.
Effect: When the effect happens. Will usually be instantaneous, though some actions may have long effect phases for some reason.
Recovery: The post climax phase. When the character finishes the action. E.g. the batter swinging through and recovering the bat… to start the next action. |
Last edited by Cayle on Mon Jan 01, 2007 9:18 am; edited 2 times in total _________________ The Ruleset Modeling Language - A project for making it easier to design virtual worlds. |
|
| Back to top |
|
| Cayle |
Posted: Mon Jan 01, 2007 9:12 am |
|
|
Joined: 20 Dec 2006
Posts: 82
Location: Germany
|
Related to this would be the "macro language" used to define action collections.
Cayle wrote:
Okay, so the PC is a mob that the player can jump in and manipulate at will. What does this mean and how does it work. At a very high level to start the thread.
Since we already use the term action for the atomic level, I’d prefer to avoid that term. Action chain dies not really fit if we allow branching and conditionals. Let’s use “Action Scripts”. It defined a set of actions to be added to the mob’s action queue. What I have in mind is something of a tree structure that players could edit in XML.
* An action script could define a single action, such as “scratch butt”.
* It could define an iterative list of actions, such as “feint left”, “swing right”, “tell your opponent that he smells of elderberries” and “scratch butt”.
* A node in the script could branch based on conditionals and can link other nodes. E.g. “If opponent gets offended when informed of elderberry smell (conditional), repeat until your own friends kill you to shut you up (recursive link to current node)”.
* If an action script is triggered on a mob, it overrides the current action queue.
* If an action script reaches and executes the last node with no overriding calls, then it defaults back to the standard AI. So the 4- action script above could revert back to the default AI when it ends.
* Actions scripts can also call other action scripts. So the above script could exit to another one that was more defensive in nature; such as a recursive defensive posture script.
Now this gives us a tool to work with for the AI as well as we could use it for genetic algorithms. We could define a palette of “fitness parameters” that an NPC could then use to create and guide its own choice of action chains. Fitness parameters might include tactical layout in the immediate area, skills, health level, action scripts being executed by others, etc.
Mind you, that last paragraph was intentionally vague. My knowledge of AI is very high level at this point and I have never actually worked with any algorithms. But I do think it is worth doing.
|
_________________ The Ruleset Modeling Language - A project for making it easier to design virtual worlds. |
|
| Back to top |
|
| barometer |
Posted: Mon Jan 01, 2007 6:33 pm |
|
|
Joined: 28 Dec 2006
Posts: 31
|
You have quite interesting ideas there :) and I can agree on that normal
stuff can be boring in the long terms.
Quote: Combat normally goes so (using a fantasy example)...
*click on opponent to engage with held weapon*
*PC swings*
*PC goes into a wait state while the cooldown is in effect*
*NPC swings*
As I see at the Modern D20 system, witch I think we should consider to use
in this case. At least implement the damage system to the game.
Why D20 Modern:
- It's always under development, we don't have to think about things as
balancing things up and so on...only updating the system when new
versions comes.
- If future help on subject is needed, it's always easy to find people who
knows the system.
-Parts that doesn't work for us, we can always remake them if we want to. |
|
|
| Back to top |
|
| KrYoS |
Posted: Tue Jan 02, 2007 5:02 am |
|
|
Joined: 30 Dec 2006
Posts: 50
|
| Modern stuff can be boring, and the ideas are definitely good, but then, not everyone will want that, and the purpose of the original idea is to create something that others can take and make their own, so most of the dynamics of the game itself, need to be modular and easy to swap out so people can use their own set of rules and such. |
|
|
| Back to top |
|
|
|