Emergent NPC AI
-
How difficult would it be to develop ML/AI as a plugin for game developers? I'm talking the basic functions that would allow the script to learn. (I dont program so I dont have an idea on the scope of the project.)
-
@Jetah said in Emergent NPC AI:
How difficult would it be to develop ML/AI as a plugin for game developers?
ML and AI are rather different in that context. Since you mention the script to 'learn', you're talking ML (AI in that context is basically a developer writing the AI functionality by hand and the only means of expanding being to add more). The real issue is not with 'how difficult' is this, but 'how expansive is this to maintain'.
I'm going to use a car analogy (and please note that is not 100% accurate).You can either purchase a car (large upfront cost, some maintenance cost, can always be used at a fixed amount, you are responsible for nearly everything), you can lease a car (constant cost, can always use at a fixed amount, responsible to a high degree), you can rent a car (cost when needed, can sometimes use, somewhat responsible), or you can call a taxi (cost when needed, can use once, not responsible at all). If you know that you're going to need a car often, or you have to rely on the 'safety' of having a car when you need it, you want to buy or lease a car. If you know that you're going to drive a lot over a specific amount of time, you best rent one. If you just want to get from A to B occasionally, you call a cap. Each solution can be cheapest and best depending on the circumstances.
It's a bit similar with computers, you can co-locate/rent a dedicated server to have a fixed amount of resources, regardless if you need them or not. You can try IaaS (infrastructure as a service) to have a certain amount of resources dedicated for you. You can go with PaaS (platform as a service) to get a certain amount of resources, but with some 'functionality' configured. Or you could take the route of SaaS (software as a service) to get a certain amount of resources, with a specific software in use.
SpatialOS (SaaS) is basically like calling a taxi, plenty of things are done for you, and it's cheap if you can get away with only using it 'periodically' (your game likely has high traffic and very low traffic times). ML and especially a constant evolving environment requires a constant, high amount of CPU (or better yet GPU). Imagine calling a taxi and 'using it 24/7', that is certainly possible, it's not really difficult, but it is incredibly expansive and nothing you would likely do.
-
@Logain said in Emergent NPC AI:
@deusex2 said in Emergent NPC AI:
So, basically, letting players make their own AI scrips? I got that, mostly, right?
You stated that an indie company doesn't have the resources to develop AI that allows for high performance and diversity, but doesn't rely on machine learning (ML). I concur. No indie company should try that. What they can try though is to 'outsource' the task to the hundreds of programmers who are up for a task like that in their spare time free of charge, simply because strength is in numbers there (brute force attempt at problem solution). Now, you'd say, but Logain, no programmer is stupid enough to do that in their spare time for free! Which is why I linked Screeps, a game that is basically doing exactly that right now, it provides programmers with the challenge to write an AI (and the programmers actually pay the company to do that ). You can't just copy Screeps though, you would have to go from a pull to an event based API and while you'd need a sandbox, V8 isolates are a bad choice there (they are great for Screeps, for a different reason). A cost effective solution would be to leverage WebAssembly, for example though an open source project like Lucet. Now, since you'd want more people to participate then 'just programmers', you'd provide your own visual programming interface (like Google's Blockly, just with a bit more polish). It's not an absurd or new concept, actually, Chronicles of Elyria is basically doing that with their planned OPC scripting. All of that said, it is basically impossible for Fractured, because Fractured relies on a SaaS model (SpatialOS), which means the cost would be intense. If you want to pull something like this off, you'd have to go on premise, or maybe IaaS and handle your own load balancing instead.
(Sorry for the long response with a few technical terms, but maybe you already guessed that's a topic I like and have spent a wee bit of time with).
WOW! That's a very long way of saying,"yes."
-
@deusex2 said in Emergent NPC AI:
(...)WOW! That's a very long way of saying,"yes."
Rather a long way of saying 'Yes, for other indie games currently in development, but not for Fractured, in my humble opinion'.