Here's a quote from Brotoi's blog:
i know personally i think mobs that also gain skill, although much more basic than players, would be really awesome. especially if once they reach a certain point they become "epic" named mobs.
for example say a goblin starts with an attack rating of 5.0 and a defense rating of 7.0. after numerous players attack this goblin and die to it, it gains skill in attack and defense. After a week no one has been able to kill this troll and now its at a 15/30 attack/defense rating. at this point it goes from being labeled simply as "Goblin" to "Shr'nruk the Blocker". he could possibly even learn basic skills, become more aggressive, increase agro range, or all kinds of other fun stuff. not to mention all the sweet lewts he'd have from killing all those players.
Thanks a ton, guys! I appreciate the quick turn-around response. It looks like you guys have a skeletal outline built and just need more time on your hands to flesh it all out.
Outstanding!
Where to start, where to start?
If you go back and read my thread on Kandonda (and eventually the Wiki once my schedule opens up again the week after next and I have time to update) you'll find that at least as far as Dryads, Kitsune, and Tropes are concerned, I have outlined a growth system that should allow them to never go extinct. As a player, I would be quite thrilled to see an ecological system in place that encourages natural (or natural appearing) growth and movement of creatures, but I would be equally angered if a species I enjoyed having in the game went extinct. Personally, for me, it falls under the "nice idea but not practical in reality" category. Rather than allow extinction, we need to find a spawn system that maintains the illusion of natural growth while not allowing brutal, overeager players to destroy the gaming environment for everyone else.
If extinction is possible, there will be players who pursue it with a passion. For evidence, just look at the real world.
Seriously, a year or two from now do we really want to be faced with a virtual playground empty of enemies and overflowing with player-made ghost towns? Look at Europe, look at China, look at Japan, look at India. This is what our game will become if we allow players too much freedom.
Enemy difficulty, aggression, and behavior is something I have spent a great deal of time thinking on the past few days. I think we, like everyone before us, have been looking at the problem from the wrong side of the mirror.
Instead of worrying about how the player will "con" the potential enemy, we need to focus on how the enemy views the player. NPC AI is the key to the problem.
Players need to have a hidden attribute: for illustration purposes, let's call it "Aggression". Aggression should have a fixed range (like all attributes), from 0-200, for example. The player enters the NPC's awareness circle (modified by terrain, weather, and so on) allowing the NPC to become aware of the player. (Sometimes this is called a "taunt circle", or "aggro range".) The AI immediately checks the Aggression stat. If the stat is 0-50, the NPC ignores the player or even offers a friendly greeting. If the stat is 51-100, the NPC "goes on the alert" and prepares an attack of some kind (by drawing a weapon or charging a magic skill). If the stat is 101-150, the NPC hails the player and demand they identify themselves. If the stat is over 150, the NPC attacks the moment they become aware of the player.
This is quite realistic. If you are an experienced beat cop in Los Angeles the instant you meet another person you automatically analyze body posture, clothing, hygiene, movement, facial expression, and so on, and arrive at a threat level assessment. Your response to that person is then determined by the assessment. The greater your experience level, or the more obvious the person is, the easier this process becomes. Players who are naturally aggressive (i.e., they attack often and early) would naturally have about them an "aura" of violence that another sentient in a violent world would be instinctively watching for.
So how do we arrive at an Aggression attribute? Simple, by adding and subtracting. If the player initiates a combat action (i.e., takes first hit, launches an unprovoked attack with a ranged weapon or magic skill, pursues multiple attacks on the same NPC group in a short time frame, etc.) then their Aggression stat gets +1. If they assist a player who was attacked without warning (probably because they have a high Aggression stat, but that's not something the assist would know), if they accompany an overland caravan and act in the caravan's defense (assuming we have caravans), or something similar, their Aggression stat gets -1. Naturally, protections would have to be in place to prevent the stat from falling outside the acceptable range.
These ranges are just suggestions. The degree of intelligence that the programming department is willing to develop would have a direct effect on how the attribute is both adjusted and perceived. Perceptions of the player's skill level, equipment, and how many people are with the player could all easily become factors in how the AI responds the moment the player enters the awareness zone.
We can't control the player. We can, however, control the NPC AI. The more intelligent our enemies are, the less we have to worry about what device (if any) the player uses to "con" the comparative difficulty of the enemy.
As for Wikis, forums, and whatnot. I've said it before and I'll say it again here. We want the players to be actively involved in both building and utilizing these tools. Production and use of peer aids is the #2 element in building a loyal player community. The only thing more important is ingame tools such as chat client, guild management, and global communications (ingame bulletin boards, etc.)
In conjunction with this we also need an attribute like "Diplomacy". If a player never takes the initiative in combat, often accepts trade offers from "enemy" NPC groups, spends time (say, ten minutes of apparent inactivity) just watching "enemy" NPCs go about their business, regularly writes ingame books (a function that could be available in libraries, for example) or publishes ingame maps (a function available at a friendly NPC in towns, villages and outposts) then their Diplomacy rises (and Aggression declines). Players with high Diplomacy stats will find even the most fearsome NPC groups willing to allow them to pass unharmed through their territories.
As players learn about these two hidden stats and how they affect gameplay, they will naturally fall into traditional scout, spy, stealth roles, or disdain the advantages of Diplomacy, max out their Aggression stat, and fall naturally into the role of tank, lead attacker, pull initiator, etc. Having these two attributes ingame gives NPC AI something else to consider and helps to cause player choice rather than some kind of pre-defined class become the overriding influence on individual gameplay experience.
One really nice side effect of this system is that it also encourages non-traditional player roles such as interspecies merchants, anthropologists, cartographers and so on, while still allowing a player to kill everything in sight and "level up" if they prefer to play that way (or "skill up", as would be a more fitting definition for our system).
So, in summary:
1. Allowing extinctions is bad game design
2. Aggression and Diplomacy attributes have the potential to dramatically improve gameplay while maintaining relatively simple programming.
Perhaps there are a few small variables that could fit into this aggression (call it what you will) system. I'm not sure how easy some of these will be to code up, but I think most would be pretty easy:
- Weapon drawn?
- PC facing NPC?
- Direct intercept course? (could be simplified to vectors toward vs. strafing NPC)
- Group activity? (I'm not scared of one fire ant, but a few hundred FREAK ME OUT!)
- Weapon/Armor/Raw-stats caliber? (seriously, who would YOU rather fight? Conan or Napoleon Dynamite?)
I do, however, agree with Jerky's notion of fame, notoriety, karma, faction, etc. in that there are some things in real life that (most) everyone will jump at (i.e. a scorpion). They are known for being aggressive (fame), even attacking at times with no provocation... whereas most snakes would rather be left alone and ignore us (unless you're on the menu). But how many of us know anything about Wildebeests in Africa? Who would have figured they are the number one killer of humans there (apart from Malaria-bearing mosquitoes) outpacing crocodiles, cats, elephants, etc.? Where on Earth was I going with this…? Oh well.
Anyway… therefore, I think a system of notoriety AND aggressive stance should be used. Just my 2¢.
(I think I win the random forum post of the week award)
In terms of how different races treat the players:
- If one alien comes down and attacks us, we will be wary of the rest. If another does, we will probably consider them all dangerous, whereas if the first came down and gave us a gift, we would be much more favorable to the rest.
I think how a type of race views another type of race as a whole has a huge impact. In real life people are naturally biased towards people who are most like them, which I think should translate into the game. Whereas if a bunch of players consistently attacked a race, it would not be impossible for another member to become friendly with them, but just much harder.
As well, there could be signs or newspapers in the main town of a certain race charting the aggression level of another race towards them, such as "at war" or something like that.
In short: I think how races interact should be measured on the individual level, but also the macro level as well.
An individually macro level...
In real life, reputation needs witnesses to spread. If a person is killed in the wilderness, then the area gets a bad reputation... If, however, someone were to witness the death, then he could regroup and mount a hunt against the bears of the area...
In a system such as this, each person would be "known" by each NPC... They would all begin with a neutral or racially weighted reputation stat, then as the players interact with the NPCs, the reputation would change... When an NPC meets up with other NPCs of the same species, their reputations mix, allowing an entire species to eventually love or loath a particular player, although if the player runs through an area, they're likely to outrun any spreading reputation changes.
From a game sim perspective, though, this is incredibly inefficient. The number of reputations to keep track of would be p to the np power... (p = number of players, np = number of NPCs)... 10 to the 10th power is an incredibly huge number, so 10 players with 10 NPCs would create 10,000,000,000 relationships... Now, if we add another player, or another NPC, the number of relationships grows astronomically... double plus ungood.
If, however, we had hidden factions, and split factions to revolve around individual communities (i.e., town/city sized) rather than spread across the entire race, or even had a hybrid faction system, then we could keep the relationships in an (more) easily managed database.
(warning: arbitrary numbers ahead)
For illustration, if we have 10 NPC races, each of which had 10 communities, we have 110 factions to keep track of per player. (100 communities and 10 race-wide factions).
If a player kills 10 members of a community, their reputation with that community goes "bad" by 10 points, and their reputation with the entire race goes bad by 1 point. If I killed 10 people in my town, then the town is going to hate me, but everyone else in the world will simply be repulsed by me. This allows immediate penalties or bonuses for different actions, as well as the "word of mouth" spreading slowly through a civilization.
Certain clothing and items would also affect the immediate reputation... A naturally hostile monster would tend to attack characters wearing light armor, where a defensive monster would be more intimidated by characters wearing heavy armor and sporting large weapons.
In this case... who would you rather fight, Napoleon Dynamite or Conan? Well, it depends on whether you're fighting to defeat someone, or fighting to defend something. If you want to defeat something (i.e., you're a hungry goblin roaming the forests), then Napoleon Dynamite is the prime choice. If you want to defend something (i.e., you're a well-fed goblin and a human just ran into your cave), then you would be more likely to attack someone who looks like a threat.