A server-end nomad engine, wherein a certain number of nomads are assured to always be in the game, and are treated by the game engine as actual players (except, of course, that they are actually AI's). If one is killed, another one will spawn at a random location on the map. These NPCs would have randomly generated stats, and depending on those stats, would do various things. Such as, build cities, or form factions. So in essence, the game would be "living" and constantly changing depending on the actions of players and NPCs alike.
So NPC factions could go to war with one another and such. So let's say as an example, an NPC is spawned with very high CH and speech skills. It ran into some other NPCs and managed to gather a few NPC followers. They proceeded to mine and get materials to build a city. They build a city. Other nomads come across this city in their travels and settle in it; they get jobs, and/or hire out. City grows. This same thing happens elsewhere. The two NPC factions both want the same mine. War breaks out. Quests open up as a result, for joining either faction and fighting for them.
To achieve this, an object is required to generate random numbers and plug them into stats for a new NPC. These values are stored and referenced in a database. The tables' fields would mirror those on the player registration page (ST, CH, Small Arms %, etc). An action table is crossreferenced with the NPCs' stats in an event- and schedule-driven way to determine what they will do. The event-driven crossreferencing is necessary so they may act accordingly when acted upon, and schedule-driven crossreferencing is necessary so they will "live" even when alone, or not being acted upon. The action table would likely be simple, containing only a few fields, but mostly just an action name, the action directives (which would likely be client/server commands that would be sent as if the actions were actually coming from a real player's fonline:2238 client; that is, the NPCs perhaps could be treated by the engine largely as other players), and parameters like required intelligence for a particular thing (an NPC with intelligence 1 is not going to be a doctor).
The way I'm thinking about it now, the actions in the action table could largely mirror a player's actions; take a job, go out and get brahmin skins, sell them to a vendor, build a base, and so forth. They could also take on non-player actions, such as: Be a vendor. This action might entail staying in the same spot for a period of time, or building themselves a shop to facilitate this. Additionally, if they built a base as I mentioned earlier, instead of only showing up on faction members' maps, it could appear on everyones' maps should they run across it. This would give additional depth to the game, and make raiding these NPC bases almost like "instance running" in other MMOs.
Beyond just bases, perhaps they could also build cities, along with a related faction. Depending on the NPC faction, you could potentially enter those cities. They may be guarded, unguarded, or downright hostile. These cities could also come and go, be taken over, and so forth.
Among the most important parts of this is that it a rather non-intrusive feature addition. The whole system I'm describing here would actually run alongside the game server, and connect to it; that is, this functionality could be entirely implemented in parallel to the game's current development, since all these AIs could be simply treated as other players by the game server. So this system could have its own database and its own process.
In summary, all of this functionality hinges on 3 small additions:
- An NPC stats database (easy to design and populate),
- An actions table (requires thought and manual entry; this will take more debate than anything)
- An engine to work with them (this might take some time, but mostly just does what I described above regarding plugging random numbers, using SQL to push those numbers to the database, running the database against the actions table (could be hardcoded or also placed in the database), and then feeding the results into the game server via client/server protocol commands to effect the NPC's actions in the game).
I really hope some of you reading this now will find this interesting, as I'd really like to discuss the idea of a living game universe in FOnline:2238. I feel the idea has a lot of potential, but I also feel that some healthy discussion would clarify things and perhaps improve it further.