Asynchronous Interaction and Faux NPCs

Started by
11 comments, last by AoS 12 years, 2 months ago
Crossposted from my thread on MMORPG.com because they don't necessarily have the ability to see the developer perspective:

I would have put this in the Sandbox Subforum, except the administration couldn't spend 5 minutes to make one...
I am primarily looking for feedback from Sandbox leaning players, both in relation to my game and about this type of thing in general. I think it would allow for some great socializing and infact add incentives to socialize to gain access to these features as well as making it possible to defend and attack and do economic things even at non peak hours.
I guess I can't stop themepark players from coming here but I will ask that they try not to derail, or flame sandbox games and things like that.

If you read any of my posts you know how I feel about so called "persistent worlds" and "MMOs" of the themepark style and how they are really just coop RPGs with graphical lobbies instead of text lobbies.
As part of my game project I have been trying to create a truly persistent world style. I want characters actions to have permanent or really semi permanent effects on the world like killing creatures and having them gone for ever and having non instanced housing and having creatures launch real time raids on player made settlements.
One of the problems is that dynamic content can be missed and that a raid could happen while a lot of players were offline.
I have also been on a quest to add REAL social functions to games. Not just stupid world chats. World chats and seeing other players in the graphical lobby as you run by while neither of you perform an action which actually effects the other person are not massively multiplayer features.
Since the possibility for synchronus interaction in the game world is limited because people have lives I have been forced to attempt to come up with forms of asychronous association.
This is one of my efforts in that direction. Faux NPCs. Faux NPCs cover many different features that I have integrated into one overarching structure.
I want to make a game with no NPCs. None. Screw that. No premade towns and shops. No quest givers. No town guards.
How do Faux NPCs fit into this framework? Aren't they NPCs? Didn't you just say you want games with no NPCs? How do "NPCs" fit into any sort of social system?
The answer is simple. The "NPCs" in the Faux NPC system are players. Just players that are offline.
The Faux NPC system covers many different features:

Player shops. This system is designed for Fantasy games, so no we do not have robo servitors to run shops. Shops can only be interacted with in a few ways:
Listservs. This is a pun, god. The permissions systems including storage and guilds and kingdoms and such are managed with lists. These lists provide both access to chat channels, and every single chat channel in the game was created by players except the worldgate chat where players spawn, and these lists can be used to set permissions. For instance a guild is composed of a series of lists:
Main guild chat- Every player on the guild is on this list and may chat here. This list is assigned to guild strorage and buildings based on what the leaders want to be accessible to the rank and file. For instance it may be used to permit access to a guild hall or let you use guild crafting capital or for a chest containing basic gear so that every member of the guild can start with half decent stuff.
Any number of specialized chats-This can include the guild leader and/or a guild council chat/permissions list, maybe you have an elite group in the guild lower than council but higher than member. You can have as many tiers of positions as you like. Maybe the crafters in the guild have a private channel just for themselves to organize.
The way this functions with shops is that you can set storage facilities in your shop to allow people to take items and put an amount of gold in another storage device. In this way you can have say a box for each of your most loyal customers and when you finish a custom order for them you leave it there and they put in the purchase price in gold in return.
Similarly you might keep a supply of lower level gear for sale as public or guild storage. This may not be the safest thing but its a sandbox so do as you please.
I call these system listservs because you have a permission list and you can serve those people without actually being there if you think they can be trusted.

That is one thing you can do with shops. There is another and this is the part which is actually a Faux NPC feature. When you log off the game your character is not logged out. Ever. Come on guys, truly persistent worlds need a truly persistent populace. You can set orders for your offline character. For instance you may want them to travel back to the worldgate because its a sort of safezone. But that isn't the real purpose of the system.

The real goal of Faux NPCs in shops is this:
You can set your character to travel to your shop while you are offline. A Faux NPC can perform many of the actions of a real player. You can sell goods with the merchant system Essentially you set items in the store to a price and any player who wants the item opens the merchant dialogue. They then pay the cost and receive the item just like an NPC shop interaction.
Similarly a player can put in a crafting order with the Faux NPC. Then that NPC can craft that item as if you were actually online to do it. You would have to set the orders for this and a price for items. You would get the same crafting experience as if you crafted the item yourself.
A note here: If I create the crafting minigame system I want insted of a click to craft system, you may lose a % of efficiency in the result of the crafting since you aren't online. The computer will act as if you had been on and crafted at say, 70% efficiency or something. I haven't worked this all out yet. Some crafting functions like enchantments may not have a minigame and should perform at 100%.

Faux NPCs are not only shopkeepers. They can perform any other actions.

You can set your character to have battle orders of many kinds with different triggers. If monsters raid the city while you are offline you can have your orders set so that your character protects the town. You can allow for an automated defense script or you can customize the actions of your character in battle.
You could have them man the walls or defensive implacements or cast spells if they are a mage or join other Faux NPCs in archery from the walls. Bascially anything you could do normally but without being as smart about it.

I have an idea about a thief functonality which I think about for entertainment purposes but which probably won't go in the game. Essentially players can try to rob other players, and you can set magic and physical, traps and have walls and chests and locks and such. And you can set your character to defend your property or even circle the town and try to stop theives, sort of like a guild or town police force.

One of the other really interesting aspects involves guilds and friends. You can set your character to be controllable to a degree by any other player using the list permission system. For instance if your guild is doing a raid and you aren't online they can follow the guild and assist them in combat missions as a Faux NPC.
On a more personal level you could allow guild explorers or research gatherers to bring your character along to help protect them while they are gathering resources. You could carry resoureces for them also.
This sort of functionality will make the game a much more social experience and allow players with social or guild connections to essentially "find a group" even though there are no NPCs and no stupid LF tools.
It allows for you to help protect group assets even if you can't be one, so that you don't feel so pressured to log in all the time if you have a life. This will allow casuals to contribute to the game. Indeed players will be able to level fighting skills and gain map information and level crafting and such without being online.
There will be some restrictions like people not being able to steal your gear and screw you over and such.
What do you guys think?
Advertisement
My major concern with having the AI control the PC when the player is offline is the processing power required to control all the players that are offline. Eve has 250000 _active_ players. That means your system would have to control 250000 entities at once, as opposed to current systems that only control a few hundred npcs. I suppose this isn't really a problem for subscription based MMOs, but it will be a problem for free-to-play MMOs.

On a side note. I think I saw a video somewhere about an mmorpg with a similar concept. Can't remember anything else about it, though.

My major concern with having the AI control the PC when the player is offline is the processing power required to control all the players that are offline. Eve has 250000 _active_ players. That means your system would have to control 250000 entities at once, as opposed to current systems that only control a few hundred npcs. I suppose this isn't really a problem for subscription based MMOs, but it will be a problem for free-to-play MMOs.

On a side note. I think I saw a video somewhere about an mmorpg with a similar concept. Can't remember anything else about it, though.



Well I think that the player market for this game is 25000 tops? And if you are not in the game or do not do anything for a month you will get logged out. And also if a player doesn't set orders, they will just stand there or go to the world gate zone. But yes I am concerned with the technical hurdles.

I would really like to see what other people are doing with similar concepts. I personally haven't seen any ideas similar to this in my travels across the mmorpg web but I'm sure someone has thought of it.
I think you could have a nice system where you can create a schedule for the character. You could make it whatever lenght (repeat every hour,day or month?)

You could make these blocks which tell the character how to do a single task (like hunt some monster, which requires finding them and killing them and lets say selling the drops) and then you could insert those blocks into the schedule (so you can do the same task multiple times in the schedule without rewriting the task)

The tasks themselves could be made using smaller blocks like go-to-some-place and kill-monsters-of-one-of-the-following-types and sell-any-x-items-for-these-items or even a simple scripting language for hardcore players.

Then, you could also have tasks that are done when something special happens, like if the town is attacked.

o3o


I think you could have a nice system where you can create a schedule for the character. You could make it whatever lenght (repeat every hour,day or month?)

You could make these blocks which tell the character how to do a single task (like hunt some monster, which requires finding them and killing them and lets say selling the drops) and then you could insert those blocks into the schedule (so you can do the same task multiple times in the schedule without rewriting the task)

The tasks themselves could be made using smaller blocks like go-to-some-place and kill-monsters-of-one-of-the-following-types and sell-any-x-items-for-these-items or even a simple scripting language for hardcore players.

Then, you could also have tasks that are done when something special happens, like if the town is attacked.


No that is the opposite of what I want. I do not want players to automate their characters. Why put in time if the game plays itself? I want to integrate asynchronous interaction to avoid some of the problems that games face where not everyone can be online at the same time and there is a lot of trouble forming groups if you pick a non peak time for your guild.
I want to avoid any and all LF tools or instant travel but still have people able to play. And I want to allow people to buy items even if a crafter isn't online but I do not want NPCs that are not enemies.
I'm trying to solve a similar problem - asynchronous interaction for a browser rpg game. We have the resource gathering, crafting and trading systems similar to what you describe (somewhat) done, but it this approach breaks at combat system and keeping a faux NPC safe.

The point is that non-combat actions can be queued and done by some mindless AI, but setting tactics for fighting and relying on AI to execute them puts your character's life at greater risk than doing the fighting yourself. I fear that it'll be easy for a logged-in player to employ superior tactics against faux NPCs and lead to a situation where you need to be online at all times instead of having a life - fNPCs can be easy prey for players, so you'd want to minimize the time you need to rely on AI to keep you alive.

You gave an example of faux NPC defending a town from a raid. That means you need to make sure the fNPC can stay close to logged-in players, knows when and where to flee (when it won't be possible to defend the settlement), doesn't get surrounded by an overwhelming enemy force and so on - seems to me that there's a lot of things that can go wrong, cause a character's death, loss of items/experience and piss off a player.

There's also a problem of making decisions that belong to the player, like 'should I use the Awesome Potion Of Healing That Heals Instantly But Is Rare or should I use something weaker and try to dodge attacks for now'. Of course it can be done with preset tactics, but this can lead to players essentially scripting their own AI to keep their characters alive.

About other players controlling fNPC: I don't know what the fNPC to logged-in players ratio would be, but i suspect more than 3:1 (25% of players logged in at all times is 6h of playing a day, and they won't all be guarding fNPCs). Therefore in any combat situation every player would find himself responsible for keeping at least three AI-controlled (possibly suicidal) characters alive and giving them orders while trying to survive himself.

It seems that players will want to leave their characters in places where no significant fighting will take place and combat orders would be 'run like hell'.

Anyway, it seems like you have the non-combat stuff planned, did you plan more details on combat?
I think the trick is perhaps to have limited responsibility for the faux-NPC's actions but also have limited benefit. For example, if would be bad if online players could farm faux-NPCs for loot or XP. It would also be bad if the faux-NPC got itself killed many times or used all your potions. Maybe they never use expendable goods, and there's no/little/capped benefit to players killing them? Similarly no/little/capped downside if they get killed. And you only get a little XP from their actions, e.g. 30% normal. But for being a merchant etc, sure. They sell what you allow to who you allow.

I would have put this in the Sandbox Subforum, except the administration couldn't spend 5 minutes to make one...

This is what the tag system is for - tag your post with 'sandbox', or whatever you deem appropriate.


It seems that players will want to leave their characters in places where no significant fighting will take place and combat orders would be 'run like hell'.

The simple solution is to disallow PvP for faux-NPCs.

The somewhat-more-involved solution is to have no death penalties for faux-NPCs (just a lengthy respawn timer), and allow them to draw from a standard pool of consumables (i.e. not the player's own stock).

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

1) speed is not an issue, you can do it in a seperate thread/computer = 0 performance cost.
2) fact : computers are better in combat than players. A computer will interrupt your strong spells at (0.001sec) before spell finishes, thus stunning you for an 2 seconds than a normal human can achieve. A computer can execute a combo sequence flawlessly and there is nothing you can do to prevent it. A computer ai can dodge ALL your skillshots, no matter what you do. A computer can have better skillshot accuracy that you once it adapts to the enemy personality. Generally speaking perfectly designed ai vs player, ai wins everytime regardless of player actions.
3) allowing players to automate parts of the game is a valid strategy, if they find something "interesting" they play it, else they let the bot do its job.

[quote name='AltarofScience' timestamp='1327601041' post='4906478']
I would have put this in the Sandbox Subforum, except the administration couldn't spend 5 minutes to make one...

This is what the tag system is for - tag your post with 'sandbox', or whatever you deem appropriate.


It seems that players will want to leave their characters in places where no significant fighting will take place and combat orders would be 'run like hell'.

The simple solution is to disallow PvP for faux-NPCs.

The somewhat-more-involved solution is to have no death penalties for faux-NPCs (just a lengthy respawn timer), and allow them to draw from a standard pool of consumables (i.e. not the player's own stock).
[/quote]

Sorry, I cross posted this from mmorpg.com and we had just had a big poll about whether we should have a subforum for sandbox people to avoid stupid themepark trolls.

I actually took out the PvP. The game is actually a sort of ATITDish massively cooperative multiplayer game against the environment.

The death penalties are not super harsh also. Defending the town is more than worth dying a couple times. Otherwise all time spent building town go bye bye.

This topic is closed to new replies.

Advertisement