Basic overview:
In my game, the player wanders through an endless neighborhood.
An NPC named “Gertrude” will accompany the player, and I want the player to think Gertrude is a real person.
Gertrude’s current state:
-Follows player
-When player stops moving, Gertrude will wander around until player resumes moving
-Will respond to a very limited amount of messages,
-if Gertrude doesn’t recognize something in the players message, he will just say “stop talking” (90% of the time this happens)
-After 5 minutes, Gertrude reveals that he isn’t real and will teleport the player to the next part of the game
But, Gertrude still does not fool most of the people that I’ve had test the game, and I know it can be improved; I’m just unsure how. Any ideas?
Below is a video that I took quickly on my phone of Gertrude, as I am away from my PC
Create a message analyze system like Siri or Google assistant, which’s anyway will have limited replies.
Use a generative AI like ChatGPT. Existing, through https requests, or if your’e insanely smart, create and train your own AI.
About moving, probably he should stop moving if distance between player less then some threshold, and start following if distance a bit bigger then threshold (for example stop moving if distance less than 10, and start following if bigger than 15).
Occasionally looking around will also be pretty cool.
I named it after one of my alt accounts, “GertrudeBertrude,” but you are correct, it doesn’t seem like a generic username. I will change the username, thank you for the suggestion!
There’s a built in implementation that allows text generation like an Ai ChatBot that doesn’t require you to use HttpSerivce: [Beta] Introducing Text Generation API.
Just implemented your AI idea, and it seems to be working great, video below demonstrating it.
Any ideas on why the messages are so spaced out now? I think it has something to do with how the AI is responding, I am using Gemini.
The biggest giveaway that it’s an NPC is the NPC not appearing on the leaderboard, do you have any ideas to fix this? Maybe try creating a fake leaderboard?
(sorry for bad quality, I just cropped Studio out)
As far as i know there’s no way you can modify CoreGui, so you can carefully put frame with Gertrude’s name into PlayerGui, so it look like normal playerlist, you can know needed size, transparent and other stuff on this path:
CoreGui > PlayerList > Children > OffsetFrame > PlayerScrollList > SizeOffsetFrame.
Every “ScrollingFrameContainer” frame is individual player
Or you can create your own playerlist as you mentioned
Edit: I think you can consider delay between message and answer as if Gertrude read and type message. But in this case will be proper to stop him from moving until he answer
I have a “pause” function where every 5 seconds there is a 10% chance the NPC just pauses, I should stop the animation when a pause happens, or remove the pause system entirely. I thought it would make it seem more human
I’m not sure if dressing up the NPC randomly would be beneficial, as this whole sequence is a secret inside of my main game and only intended to be played once.