AI Engine
by Matthew Godsey · in Torque Developer Network · 05/11/2010 (7:46 am) · 0 replies
Hey all,
I'm planning a Senior Project for my software engineering degree, and I had the idea for an AI Engine.
Here is the concept:
Large single player games and MMOs both have something in common that I wish was different. The NPCs in the worlds are mostly static or scripted. If they are not, usually, the AI programming in the game engine can't handle large numbers of AI Agents at one time.
I would like to extract the AI control from the game engine, and build an AI Engine that is based on concurrent programming principles to make use of multi-core systems. I am targeting this for MMO games for starters and possibly integration with single player games to make use of the multiple cores found in most desktops and gaming machines these days.
Technical Detail Overview:
My idea is to create a task scheduler/queuing system for light weight AI Agents. These agents would not have any logic associated with them. For the logic piece, I will create a module system that allows you to add or create whatever logic modules you would want. The modules would be permission based so that you could give the AI Agents permissions to the modules that they would be using. There would be a limited memory component using a noSQL database for speed. The AI Agents themselves would be customizable as well, allowing you to set a type with specific characteristics that could be inherited by other agents.
The goal is not to create strong AI, but to create AI Agents that appear and act human, or however the logic dictates. I plan to only do this with Human NPC types for my project, but this could be used for any entity in the engine.
I also plan to build an API for integrating with this engine. So it can be used by multiple systems.
The current tech stack is F# functional programming language in .net running on Server 2008 R2 with a noSQL database like redis, and TGEA(because that's what I have a license for.)
Once I am finished with it, I would like to make it available to people.
So what I would ask of the community is:
1. If this was available, would you use something like this?
2. As I have described it, what would you need to make use of this?
3. Do you have any suggestions on design to make this easier for someone to install and use?
4. What features and controls would be useful to manage the agents?
Please ask me any questions you have, and I will try to answer as well as I can.
Thanks,
Matt
I'm planning a Senior Project for my software engineering degree, and I had the idea for an AI Engine.
Here is the concept:
Large single player games and MMOs both have something in common that I wish was different. The NPCs in the worlds are mostly static or scripted. If they are not, usually, the AI programming in the game engine can't handle large numbers of AI Agents at one time.
I would like to extract the AI control from the game engine, and build an AI Engine that is based on concurrent programming principles to make use of multi-core systems. I am targeting this for MMO games for starters and possibly integration with single player games to make use of the multiple cores found in most desktops and gaming machines these days.
Technical Detail Overview:
My idea is to create a task scheduler/queuing system for light weight AI Agents. These agents would not have any logic associated with them. For the logic piece, I will create a module system that allows you to add or create whatever logic modules you would want. The modules would be permission based so that you could give the AI Agents permissions to the modules that they would be using. There would be a limited memory component using a noSQL database for speed. The AI Agents themselves would be customizable as well, allowing you to set a type with specific characteristics that could be inherited by other agents.
The goal is not to create strong AI, but to create AI Agents that appear and act human, or however the logic dictates. I plan to only do this with Human NPC types for my project, but this could be used for any entity in the engine.
I also plan to build an API for integrating with this engine. So it can be used by multiple systems.
The current tech stack is F# functional programming language in .net running on Server 2008 R2 with a noSQL database like redis, and TGEA(because that's what I have a license for.)
Once I am finished with it, I would like to make it available to people.
So what I would ask of the community is:
1. If this was available, would you use something like this?
2. As I have described it, what would you need to make use of this?
3. Do you have any suggestions on design to make this easier for someone to install and use?
4. What features and controls would be useful to manage the agents?
Please ask me any questions you have, and I will try to answer as well as I can.
Thanks,
Matt
About the author