Bots! Smell the immersion!
What? - The creation of bots would enhance the playerbase as well as the gameplay of the MUD.
How? - Creating actual semi-pfiles for bots that can be "ghosted" by imms as well as be programmed to do things during certain times. A real basic AI will suffice with plenty of if-then's for player interaction.
Why? - Bots will serve as a vessel for immortals who want to enhance the RP atmosphere, and the atmosphere in general. Like FC's and NPC's in MUSHes, bots are the key to making the RP environment flourish. You'll never have to worry about a player powertripping because the bot will be controlled by an imm. More importantly, on the gameplay aspect, bots will simulate a giant playerbase. Imagine going up to Maito Gai and asking him to group up with you. He'll say do 100 pushups and next thing you know you two are going out and kicking butt for some good exp or exploring areas you otherwise couldn't explore. Imagine randomly breaking for practice in the middle of the woods and suddenly it works and you realize you're not in the woods, but in Itachi's genjutsu. Or, imagine meeting up with original ninja to be who are levels 1-50 who are practicing skills, play certain roles in fights, and even go out and try to hunt monsters or treasure to trade in town. Most importantly, bots will give you something to look forward to, by sparring. Fighting another bot will be semi-PvP, and are considered a challenge. Think you can take Kakashi? Be prepared for lots of Sharingan techniques that are locked out from players, but give you a preview of what's to come. Group up and try to take on Neji Hyuuga, and he might give you a pointer or two that'll permanantly enhance your AC.
When? - Hopefully soon, if Gatz likes this idea. This can be greatly enhanced by players submitting pseudocodes of personalities in the game.
Where? - At the great NarutoMUD of course.
Who? - This is Gatz's MUD, but we can all contribute.
Questions:
Why not mobs and advanced mob progs? - This was the very first thought I had when I was thinking about this. It's true you could use advanced mobprogs to do all this, but making bots a class of their own would be less restricted and more clearcut, like venturing into user-created territory. Most importantly, these semi-pfiles could be loaded up by RP imms (if we ever get them), or Gatz for special events where players can now roleplay with their favorite heroes. Once again, you can do that with a mob, but actual pfiles with all its parameters would enable equipped items, leveling up, etc. etc. Plus it gives Gatz a vessel to test out things that aren't ready to be tested out by players, such as Sharingan.
How will these bots "act" like players? - They will, and they won't. These bots won't act like players because you can't just go up to them and start RPing, ask them about their day, how's their family, blah blah blah. They will however, react to SAY commands. I propose making one social, the "greet" social, the fundamental social used to interact with bots. Bots will react to a greet by saying something, and highlighting key words with a different color or parentheses. Outside of interaction, these bots roam certain areas, depending on who they are, do certain things, depending on who they are, and even eat, live, and sleep. That means they log off at certain times too. With the small amount of areas we have right now, it would be pointless to propose them go treasure hunting or find rare items or fight tough mobs, but the point is to allow that in the future. The AI is the hardest part to program, because in my head, and I have very little experience programming (real world experience that is), I think if-then's are pretty much the only way to go, and a basic wandering with a destination variable so they stick in a certain area based off the time. This would essentially mean every bot would have to be carefully programmed. Which sucks. I know. Which is why I would like players to be able to submit basic pseudocode, or maybe Gatz can create some kind of bot-OLC that will let ordinary players create code so that he can overview and then create a bot based off that code. I think the latter would be more efficient, but also more time consuming.
However, to start off, I think the best way would be to create a batch of "original" characters. They will have blanket programming that make them play the role like normal players. They grind, LSC, get items, sell items, etc. And their three basic commands will be group, spar, and trade. You go up to them, greet them, they say "Hi [your name here]. Wonderful day isn't it!? [or something like that] and say "what can I do for you today?". Players then say I'd like to group together, I'd like to spar, or I'd like to trade, and bam. In trade the bot names off his inventory with #'s next to each choice. Player says number. He gives price, Player gives him that number of ryo or leaves. Group, the bot follows. And spar they fight.
Three basic classes of these original bots would be useful, with taijutsu style bots, ninjutsu, and genjutsu. Maybe if this idea gets launched Gatz can program hybrid blanket bots with mixes in taijutsu/ninjutsu.
Will these bots progress and level up? Yes and no. FC's like Hatake Kakashi and Itachi Uchiha will not. But "original" characters can certainly grow to a certain point. This will be useful because they learn certain skills. Later down the road bingo book will come in handy as these bots can be used as real life bounties, each with their own personalities and habits.
How will grouping work with these bots? These bots will work just like players do. However, each bot will have its own set of skills and uses in a battle.
How will these bots do combat? This is the hard part. Each bot will only have certain skills via their practices (like players). In my experience, and this is from lots of PK in a cbase called Utopia, the bots there did attacks that were based off of their current stats and were random in between the selections. I think this would be the easiest way to program bots in a "blanket" way. FCs can have their own original scripting or code.
What will these bots do outside of player interaction? The easiest method here would be to have them wander certain areas. I guess a wander flag like we use on mobs will suffice, with a vnum range, but I am unsure of the coding. Wandering will be the "base" function of the bot, and upon wandering upon certain mobs, items, or rooms, they can perform certain actions. This can be triggered by having the mobs "look" in a ghost PC view and then analyzing the script, similiar to how players bot (which is illegal) in real life.
How will duels work? I think this is a great, if not the greatest, addition to bots. Bots can be requested to spar, and under certain conditions, can be its own miniquest. These are essentially "challenges" that can be added as a command for players to have a checklist. Certain personas like Kakashi or Itachi can provide permanant bonuses, or an item, or some kind of reward. I imagine Kakashi will only spar 3 genin, 2 chuunin, or 1 jounin, and will reward them with some insight, maybe a one time experience booster shot. Who knows, the possibilities are endless, but, most importantly, give small little "benchmarks" players can use to motivate them to move to the next level. Essentially in the spar the bots will do combat as prescribed above, but will have toggle kill OFF. It would be in the players best interest to toggle kill off, because if they don't, they're going to get flagged and raped. Make it the player's responsibility, since, after all, these bots are suppose to be like special players.
How will these bots play in the RP world? It's important that an RP imm be appointed so that every now and then an event can be played out. Maybe flood the village with sound ninja or something. These bots will kickass on their own, or best of all, can be ghosted by an imm and used to roleplay certain events. Hell, an imm can even ghost several bots and emote out the adventure, in combination with echos. It'd be pretty cool to watch Itachi fight Orochimaru.
How will bot creation work? This sucks. But I will believe in Gatz programming skills. I believe an external client would be best, available as an applet on the site, similiar to the bingo book. From there, the following fields will be placed by the volunteer bot creator, and this is extremely rough.
Original: - Y/N. No point in having a player create an FC. FCs will be whenever Gatz wishes them to be.
Name: - Duh. Will create the short, long, and name of the bot.
Level: - Important factor. Maybe restrict certain levels to imms?
Attribute Breakdown - Sets attributes based off of level with available trains.
Village : Duh.
Rank : SHOULD be dependent on level, but I am unsure if there are benefits bestowed on genin, chuunin, jounin, etc.
Description : Player entered. All of this will ultimately be approved by Gatz/Imm/Admin
Alignment : Number from -1000 to 1000.
Okay, from here, the personality is set, which should be its own window because it's going to get fairly complicated.
I think the easiest way to start off is the flag method. The player chooses say, three, out of 20 possible traits. As follows:
Aggressive - Bot will actively expend energy to do more damage, and more likely to use aggressive style during combat.
Fearless - Bot fights to death. Doesn't care who its fighting.
Lazy - Bot doesn't wander much, and if he does, moves slowly. Also doesn't like working, so don't expect much trading to be going on.
Passionate - Bot actively works to gain more EXP.
Cocky - Bot doesn't group.
Dedicated - Bot LSC's. A lot.
Bandit - Bot will PK you and rob your ass on site.
Sociopath - Bot kills all things, especially if that thing started a fight. Will chase you down just to kill you too.
Hidden - Bot likes to hide. Through genjutsu/whatever.
etc. etc. etc.
These predefined "flags" will set the bot up for basic programming. I hate to use flags, but I'm a novice programmer and I think this might be the easiest since we're using a modified version of a player file. (Do we even use player files in SMAUGS?)
Next we define Life:
Hours active : Three fields, from time, to time. And then next to those fields defines what the bot is doing. Maybe 0400 - 0600 bot likes to LSC. 0600-1000 bot likes to go hunting bandits for items/ryo. 1000-1200 bot likes to eat ramen, then go to spa. Doesn't like to group at this time. Then bot goes to sleep, so you won't be able to access him past 1200. This is where bot habits will come into play too. I would imagine a trigger could be set for the bot to do based off of what room he's in, what item he sees, what mob he's with, blah blah blah. I don't know how this would work. I leave it up to imagination.
It's programming that specific part that's going to suck. I don't know much about how easy it would be to do, but I hope it's easy. It would certainly give bots their personality as well as a reason for players to play certain times, and give a greater sense of immersion.
Next we define Combat:
This is where the player uses the practices earned based off the bots level, favoritisms (needs to set percentages of skills based off of hp to determine what skill will be used in what hp range. Minimum for a skill is 20%, maximum is 60%, or something like that), and the bot's "flee" factor, similiar to wimpy.
Then we define Ambition:
What level is the bot, and what level does he/she want to be? What path does the bot follow? I think making the buttons, taijutsu, ninjutsu, genjutsu, and ningu is enough for now, but it leaves a lot of possibilities for the future.
then we define trade:
What item(s) does the bot want to attain? Right now ryo seems to be the only thing available, and what will the bot trade it for? it doesn't necessarily have to be items, it can be favors, like a spar, kill this mob for me, blah blah blah. Miniquests, almost.
At this point, I am totally unsure of how to proceed. I don't even think my coding suggestions are worthwhile, but I hope it at least plants the seed of possibility.
Bots! Smell the Immersion!
Re: Bots! Smell the Immersion!
Well, this is a meaty suggestion. I think it needs to be broken down into pieces to see everything that was suggestion here.
I think that is about right? Anything I missed? Once we break down this meaty fellow, it'll be easier to digest each piece.
- A way for players to create bots, possibly through a web interface.
Bots which represent story characters, as well as original characters.
Bots will move autonomously.
Bots will desire to have good equipment, and seek out better equipment.
Bots can trade their equipment with other players.
Bots can level up.
Bots will desire to gain levels and experience.
Bots will want to group up with players.
Bots would have a ability they specialized in, such as Taijutsu or Genjutsu.
Bots can and will sometimes have unique skills.
Bots may want to fight other players, either sparring or to the death.
Bots can have multiple spawn points, based on time of day.
Bots can present side quests to players which are unique to that bot.
Bots can have a goal, for example to gain Ryo or make friends, etc.
Bots can have personalities set via flag or similar mechanism, these flags give or take away a behavior listed above.
Bots should have a type of pfile which saves, so Bots persist across reboots and constantly grows.
Bots should occasionally be played by RP Imms to give them a greater depth.
I think that is about right? Anything I missed? Once we break down this meaty fellow, it'll be easier to digest each piece.
Gatz Seijuro,
Owner of NarutoMUD
Owner of NarutoMUD
Re: Bots! Smell the Immersion!
That sums it up.
Re: Bots! Smell the Immersion!
After chewing on this for awhile, I think I like the core idea, but it is a bit too much. I understand what the point is, bots fill the void left by not having many players. However, the complexity of adding in this level of detail is through the roof. I get the feeling that simplifying in spots and being clever in other spots will give the same effect, but with less agony. The following is my proposal which mixes your ideas, with mine and tries to make a fun idea cocktail:
A couple pre-built NPCs "skeletons", which would use our random name generation and have their level set to be whatever the designers wishes. We pepper these NPCs in places across the MUD, even giving them some unique progs to do things. Depending on whether or not we want the NPC to be a common character, we might not give them a random name and have them do more unique progs.
A new flag is created which uses the NPCs level and Village to generate stats, skills and equipment, to make this bot be unique. The flag would most likely not be used if the NPC was deemed to be a more permanent character with a set skill set. Bots would not level, learn new skills or be persistent. They would, however, try to wear any equipment they were given, or found on the ground, that was better than their old stuff.
A set of phrases could be used to setup a 'spar' or a 'group' session. Some NPCs will want to fight with players, some will want to spar or both. Initially, all NPCs desire to group with you could be based on level. So, a level 50 bot wouldn't want to join a level 20 player. Also, a bot wouldn't want to join a group if another bot is already with them. This would prevent weird stacking issues or a player running around trying to gather an army of bots. Maybe the max number of bots you can have with you might change based on rank? Student - 1 bot, Genin - 2 bots, Chuunin - 3 bots, Jounin - 4 bots?
Also, bots would show up on 'who' as special entities. Maybe even have a new command to list all bots that would group with you or spar you, a little like the challenge command works. That way players could quickly find bots to group with. However, the bonus group experience with bots would be halved, to still encourage players to seek out other players. I don't want players to avoid other players just because bots are around.
How does this sound? Good enough? Too different? My above proposal would be "easier" to do than the original and I think still pull off the same affect.
A couple pre-built NPCs "skeletons", which would use our random name generation and have their level set to be whatever the designers wishes. We pepper these NPCs in places across the MUD, even giving them some unique progs to do things. Depending on whether or not we want the NPC to be a common character, we might not give them a random name and have them do more unique progs.
A new flag is created which uses the NPCs level and Village to generate stats, skills and equipment, to make this bot be unique. The flag would most likely not be used if the NPC was deemed to be a more permanent character with a set skill set. Bots would not level, learn new skills or be persistent. They would, however, try to wear any equipment they were given, or found on the ground, that was better than their old stuff.
A set of phrases could be used to setup a 'spar' or a 'group' session. Some NPCs will want to fight with players, some will want to spar or both. Initially, all NPCs desire to group with you could be based on level. So, a level 50 bot wouldn't want to join a level 20 player. Also, a bot wouldn't want to join a group if another bot is already with them. This would prevent weird stacking issues or a player running around trying to gather an army of bots. Maybe the max number of bots you can have with you might change based on rank? Student - 1 bot, Genin - 2 bots, Chuunin - 3 bots, Jounin - 4 bots?
Also, bots would show up on 'who' as special entities. Maybe even have a new command to list all bots that would group with you or spar you, a little like the challenge command works. That way players could quickly find bots to group with. However, the bonus group experience with bots would be halved, to still encourage players to seek out other players. I don't want players to avoid other players just because bots are around.
How does this sound? Good enough? Too different? My above proposal would be "easier" to do than the original and I think still pull off the same affect.
Gatz Seijuro,
Owner of NarutoMUD
Owner of NarutoMUD
Re: Bots! Smell the Immersion!
It's your MUD, not mine xP. Just glad I at least witnessed an inception both in you and myself. It'd be interested to see how this play out, and what kind of foundation it sets for the future.