Dacia51 Posted February 19 Posted February 19 First off, I want to start by saying that I acknowledge the fact that we are still far off until we get any non-negligible AI into the game. The purpose of this post is hereby to provoke discussion alongside being used for review or reference by any party which seeks to do so at any given time, for any purpose. Note that this is quite a lengthy read and at the end of the day, it is just my thoughts here. Feel free to expand on anything you find here to brainstorm. Client-Side or Server-Side? To my knowledge, Indie Stone has never said anything as to whether NPCs supposed to be introduced into Project Zomboid in later builds (which are supposed to be 'sentient', akin to the lines of an LLM model) are going to be either hosted on an official server or if they will be integrated into the game locally. For all intents and purposes, Project Zomboid is offline-friendly, so I will assume that any AI models introduced into the game will be included locally in the game's directory. Despite my assumption, a rational yet critical outlook on both options is in order: Client-Side A client-side implementation is the logical choice for Project Zomboid, given its sandbox nature and incentive on modding. However, some concerns still linger, and they must be adressed: Storage: One of the most immediate concerns for implementing a client-side AI model would be storage. How big is the model? How compressed and optimized is it? Performance Impact: Running a full AI model locally on top of a game requires powerful hardware. Albeit, this could again be mitigated through numerous means. Modding Potential: Arguably the strongest argument to support a client-side model. With the game's incentive on modding, making the AI model client-side would allow for customizability, which is very important when talking about any game's longevity. This could result in custom models made by users which can be installed client-side, without charge. Memory Management & Optimization: Each character requires memory in order to store events and to memorize what happens to them. An important question here is, can this be made efficient? Inefficient memory management would lead to atrocious game/save file sizes, which would make the game a huge minus for a lot of people. How would memory be handled? An answer to this is, while hypothetical, text based memory. Depending on how 'smart' the AI model that the game utilizes is, memory could be turned into plain text, which the model then translates into useful data for itself. Json files could be used, as an example. Not only would this make the AI's memory readable for humans, it would also make it entirely customizable, allowing users to modify memory files according to their liking. Think of the potential here! Server-Side A server side implementation is easier, but riskier. It would require the game to be online 24/7, though it would solve storage issues, alongside requiring less optimization and compression. However, some concerns are immediate to point out: The Cost: Hosting a server of that size, operating for hundreds of thousands of players at any given moment, would be expensive. By all means, it would be inefficient, undoable and a hassle to deal with in general. Charging players for accessing AI is also (hopefully) not even a thought on anybody's mind. Lack of Modding/Customizability: One of the biggest turn-offs regarding server-side AI. No customization, no memory editing, no custom models, etc. We'd be effectively locked and we'd have to make do with what the game gives us, and that's not exactly ideal for a game with such a big incentive on modding. Server Outages: Imagine playing Project Zomboid, immersing yourself in a random drama happening on the map and then.... boom! The AI in the game just doesn't work anymore. You panic, wondering if something has gone wrong on your end, but nope, it hasn't. You check Indie Stone's server status and.... it'll be a good few hours till the outage is fixed. You check your schedule and... you have work in a few hours. Not only has your immersion been dropped dramatically, your mood has also been lowered for the entire day. Definitely not something anybody wants to deal with. NPC Behavior and Intelligence This is what truly defines the experience players would have with NPC's. The AI's intelligence here is thus the most important point to be discussed: Decision-Making and Autonomy For the developer's vision to be truly achieved, NPCs in the game must be able to respond dynamically and independently to what's going on around them. My thoughts on this: Memory: The NPC in question should decide which events to memorize and then to further decide which details of the event it should memorize. Ideally, memory should not be static; the NPC should be able to gradually forget details of an event over a long period of time until it has completely forgotten the event. This process could be faster or slower depending on individual variables of any given NPC, and it could be influenced by other factors in-game, such as illness, trauma, etc. It would also depend on how important the event is; important events may never be forgotten while minimal events could be forgotten in a day or two. The status of the NPC during the memorization process also matters; was the NPC experiencing strong 'emotions' during the event? Did the event lead to trauma? Decision Making & Action: NPCs should be guided by both short and long term plans. Short term plans could vary from responding to immediate events to a goal which must be achieved in a short window of time, while long term plans could effectively become life plans. Each NPC should be unique in how it acts, in how it proceeds and in how it thinks. Variables should also play a role here; depending on the NPC's mood, health, age, etc, it should act differently than to how it would act otherwise. Learning & Adaptability: NPCs should be able to learn from events and to adapt with time as it passes. For example, if you meet an NPC today, in two weeks he will not be the same. NPCs should (obviously) continuously develop and refine skills, learn how to handle themselves better in the apocalypse as time passes and, as they age, become more 'wise'. They should 'learn' how the world operates with time, 'learn' how to survive in this world and they should 'learn' how to base their world-view and mindset around the world. Or, in the cases of leaders, they should learn how to base the world after their world-view, not the other way around. As time passes, they should learn how to read situations better, how to act and how to fight better, how to establish connections and how to ensure their safety better, etc. Now, as in humans, time does not always lead to change; events could undo a lot of progress randomly, or time itself could lead to stagnation and degeneration. Social Dynamics & Emotional Intelligence: Each NPC should be unique here. Some would be more emotional while others would be pragmatic, some would be more social and know how to read situations better while others would be more of a strongman and be more reserved, speaking less and resorting to action more. Each NPC should have a variable degree of extraversion and introversion which dictates how they act. For example, veterans could be more reserved, speaking less and acting more. Older NPCs could be more wise; giving better advice on how to proceed in risky situations than, say, unexperienced NPCs. Violent or volatile NPCs could talk more and resort to action more, while social yet non-combative NPCs could talk more and not resort to action. Consistency and Coherence NPCs should remain consistent in their actions (alongside being influenced fluidly by change as time passes) and coherent to the player: Personal Consistency: NPCs should be consistent in how they act unless they are otherwise influenced or changed by an existing event. For example, a pragmatic survivor would not deviate from his pragmatism unless he is desperate, unless he is incredibly emotionally charged or unless he has been changed by an experience previously. Change must be natural and coherent; the same way it is to humans. An emotional survivor could turn pragmatic once an emotionally charged decision results in outrage and loss, and vice versa. World Coherence: The world should be coherent with one another, though its coherence would be more of a zombie apocalypse coherence than a standard world coherence. The player's actions should be heavily taken into account; a peaceful player could be seen as benevolent by some and weak by others, while a strong and intelligent player could be seen as a threat to some and as a respected figure to others. Information should travel fluidly and coherently; the world isn't inter-connected anymore. If you do a grave crime in a portion of the map and then move to another portion filled with different inhabitants, those inhabitants should not know of your past, unless revealed. Emotional Coherence: NPCs should react emotionally coherently and according to their state. For example, during the initial outbreak, an emotional NPC may panic and act irrationally; as time passes, they progress and become less emotional, allowing them to think clearer. Some would turn to desperation while others would turn to... others, for assistance. Faction Warfare Since groups are supposed to rise up dynamically, here are some points about that: Group Relations: These should be fluid and coherent. For example, a group with a well-standing to another group may refuse to help it in times of need because it simply can not, which might turn into a faction war afterwards. Faction wars are rarely to be about ideology or otherwise ideas; they should be about survival, about territory, and about 'doing what's right' in the eyes of leaders. Previous enemies could team up when facing a bigger threat, while allies could fragment over any small dispute. The Role of the Player in Faction Warfare: The player should be able to join factions, rise up through the ranks dynamically (or vice-versa), get jobs within the faction, etc. Alternatively, he should be able to form his own faction, which is to be dynamically influenced by other factions. It is all about player freedom; a player may choose to form and disband factions, he may choose to become a high rank in an existing faction or even take over it. Or, if he so pleases, he could just become a grunt, dynamically and non-scripted. Time: Naturally, factions should become fewer and fewer in numbers as time passes, with bigger factions occupying larger and larger territory. This should flow dynamically; factions being at each other's throats 24/7 would lead into many crumbling or fragmenting, while others would inevitably take the crown. The End. Closing thoughts are: these are just my thoughts and I've tried to cover a lot of what the developers haven't talked about The post could've been longer and more complex but this is a big enough read as it is.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.