Hi schema and Schine,
Just reading the thread "AI Learning Curve" by Dearthx about his idea for AI learning curve.
AI Learning Curve
It reminded me of something I've always wanted to do with online games and that's have an AI that plays as a player.
Then I thought, this could be useful for Starmade, because you wouldn't need to dedicate so many resources to the server.
All the server would need to worry about is the basic physics and object locations etc which is what it's really good at.
The idea would be to off load the AI processing to an alternative server or servers that connect via port 4242 or perhaps an alternative port like 4343 or something.
The same port would simplify things, but an alternate would lower latency for actual players and also allow for better security and management around AI.
You could also use this separation in game to ID a player vs AI more easily.
Benefits
Caveats
I know this sounds complicated, but I believe this could ultimately simplify the game development where those who only want work on the mechanics of the universe versus AI can do just that without the other being dependant or impacted by anything from the other.
Just reading the thread "AI Learning Curve" by Dearthx about his idea for AI learning curve.
AI Learning Curve
It reminded me of something I've always wanted to do with online games and that's have an AI that plays as a player.
Then I thought, this could be useful for Starmade, because you wouldn't need to dedicate so many resources to the server.
All the server would need to worry about is the basic physics and object locations etc which is what it's really good at.
The idea would be to off load the AI processing to an alternative server or servers that connect via port 4242 or perhaps an alternative port like 4343 or something.
The same port would simplify things, but an alternate would lower latency for actual players and also allow for better security and management around AI.
You could also use this separation in game to ID a player vs AI more easily.
Benefits
- off loading would lesson the bourden on the server
- AI would be mostly experiencing the server like a player
- server owners could spin up/down additional AI servers as required without altering or interferring with the universe.
- This would also allow Faction birth, growth, death like any player faction at any time in the life of the server.
- Server install simplified for those who only want to build a player only universe with no AI.
- AI Server component modular and extensible from a logical and physical perspective
- Moduler AI servers would allow you different types of AI including specialisation and server admin customisation.
- Also opens up the prostect of player developed AI uploads similar to blueprint uploads, but naturally admin controlled and secured appropriately.
- Server build and AI build can be managed and worked on independantly by different teams without too much impact to each other
- Different update streams would be possible with little impact to each other.
- AI creatures like Fauna/animals could be dynamically spawned on the fly using a different AI server module dedicated to Fauna. This would be way simply in build design to the NPC type AI.
Caveats
- Removing all AI code from the game or migrating it to a server based module could be major work.
- Player AI requirements would need a means to spawn AI to control traditionally BobbyAI controlled systems.
- This could change the way we use AI in our ships, e.g. turrets, fleets, etc.
- The AI could be NPC's players instruct/order to enter the core of the entity, ship, turret, whatever or perhaps only enter the BobbyAI modules.
- Perhaps when a BobbyAI is spawned in build mode, the actual AI is spawned on the AI server, then connects to the universe and is physically linked to the BobbyAI module with some kind of ID kinda like linking warp gates.
- And for it's life time, it exists inside the module until the module is removed/destroyed or it is ordered into another BobbyAI such as build changes or updates. At that point the AI would pop out as an NPC that reverts to existing NPC style behaviours perhaps. Like if it was in charge of a turret and was set to take out missiles, the NPC would pull out his pistol and start shooting missiles until it is killed.
- This means, the AI server would need to have more information provided to it by the universe than what a player would receive.
- Secure communications methodologies between AI and Universe servers would be required.
I know this sounds complicated, but I believe this could ultimately simplify the game development where those who only want work on the mechanics of the universe versus AI can do just that without the other being dependant or impacted by anything from the other.