Aurilika wrote:maraudingmarauder wrote:One thing I've noticed is that the preds that lead you back to their room will always try to force vore rather than asking if they can eat you, even if they're high up on the friend/romantic level.
Yeah, I'll make them a bit more flexible with that.
Watkacsa wrote:Bad news. I abandon the project since at 10 players it consumes around 1 GB of memory, and needs 0.625 sec to finish the decision on a Cofee Lake... time and memory scales exponentially, 8GB and 12 sec at 15 players... and it is not even finished yet. I will try to get back to it when I have time and in the mood and have a better plan.
Well, I'd be interested in seeing what you had, and glancing through your code, if you're okay with sharing it.
The code made some serious pre-planning involving how the others would step, what they can do and what would be the best outcome, simulating the story up to 10 steps (even simulating other npc's step simulation). The code itself is fairly smooth, runs on multiple threads and makes the decision while the player is thinking, that means no visible lag, but if the player steps too early, the app will freeze for a time.
With the code, it would be impossible to figure out what is going on, not to mention I have the variable and function names mixed in 2 languages. Also, I don't like sharing a messy code, not to talk about a failure.
Anyways, the base idea was to consider where friendlies, enemies, preds and preys are and act accordingly. Every npc has a long-term (later referred as ltg) goal and a short-term (later referred as stg) goal. The ltg is what determines an npc's basic behaviour. The others can't see this, so here are some ltgs:eat everyone, fuck everyone, escape everyone, hit everyone, or for endo, hold everyone. The second part: "everyone" can change to a player like this: eat playerID. The only time the ltg changes it's core when they are in a fight and they need to hit the other. Also when a pred comes to a fight with somebody, the ltg will change to eat this and no matter what, they will digest them.
The stg changes often depending on many conditions: For one example, how clean they are, how bad they want to be clean, are there anything else to do (as a pred, possibly eat sb, as a prey escape and get to a friendly or be eaten(even considering if their ored will like them dirty)), who are at the shower. After this, the simulation begins, making many different choices (different stg, different pathing, asking different people to follow them, also considering the chances if it is worth to ask them, if it is worth to intercept them and make a longer route, how safe the route is), and giving points to them considering how sucessful the plan is. The highest point plan will be executed. But not so simple, the npcs can acess the other's plan and make them rethink what they had in mind. One can rethink, The others not, the lucky npc will change always. The simulation is so accurate, without the player around 80% of a 1000 round game had the expected outcome. And It would run good enough, but the player is what messes the things up: all of the npcs will predict something, but after a step, they may be incorrect, needing to rethink everything, making others to rethink everything.
I have been working on this since March, and just have coded it, not expecting how much resources it will require. Well, I will rethink this as well, maybe the planning part will be nerfed to 3 rounds and instead of predicting where others will be, deploying a dynamic pattern on them where they could be and not allowing npcs to see the other's plan. I have no idea D: