Is a new Armory AI technology the creator of demand or a response to it?

It is in the continuity of this Armory ignoring the Pose Mode?
Feel free to give your opinions and share ideas about this.

1 Like

I think that it would be good to keep the AI stuff in a separate project from the Armory3D core, but I like the idea a lot. With how Armory can load Logic Node packs, I think that it would be easy to create a single package that you could add to the Libraries directory of your Armory game to get the AI features.

We can also work with Armory core to provide ways to create plugins and hook into other parts of the Armory system if necessary.

1 Like

I would be interest in it for game getting clever ai like metal gear solid 5,splinter cell or gta.

For example team fps strategy ai, like two ai attacking front, one move and attack on flank, other enemies hiding and moving around covers backward to the player to attack from behind.
Characters able to cover anywhere, climb on roof or hill to get better view strategy.
Ai able to drive any vehicles like motorcycles, cars, helicopter, boats , find the best roads or paths, avoid pedestrians and use those vehicles to attack.

Or like Stalker game, creatures or characters with their own daily activities and travel around the map as needed to hunt, gather or attack other factions, while the player could be far away. Nothing scripted.

Those are the best usage i’m interested in and where deep learning could useful.
It is possible ? or better planed for Armory to get such api ?

@zicklag I would see for that, by taking this option, to separate things into three main areas of components for AI like:

  • Components for the worlds of the game (game culture training, capture of players’ uses, etc.)

  • Components for the graphic arts (computer arts, ambiance, style, motion capture, mise en scene, etc.),

  • Components for the rules of the game (gameplay, etc.)

  • Components for the self-generation (symbology for goals and constraints, deep reinforcement, etc.)

Then it might be a good idea to refer to this as something other than AI. The solution will be based on technologies from ML (Machine Learning), DL (Deep Learning), Neural Network. Idea?

For me, the panacea would be to have something that is intuitive and generative for game production, game in the broadest sense.

Let me explain. In my opinion, the tools we have must move from the current passive stage to a new generative stage. It is the inheritance and copying of CAD/CAE software that brings us to this point. Those game engine tools must now propose us new game designs that are entirely created by them.

For example, I find it tiring to have to explain to the game engine that this character must move from point A to B, then B to C according to the value of x, etc. while being sure that he will not put his arm through the wall, walk on water, not respect the context of the game, his style of character, his state… We should just be able to tell the character, I want you to realize that. You’re on your own to get there.

(something inspiring is like this IA having been widely educated on the history of art, from the Renaissance to the present day, it makes it possible to transform a simple sketch into an accomplished painting influenced by the works of Van Gogh or Picasso. https://vimeo.com/234655275 )

@MagicLord taking your fps example with team strategy description, I would see well to describe it by a syntax or an adhoc graphical tool that uses symbols of 2 main types, state or action, interconnectables, and that would allow us to easily formulate our objectives and constraints for the game we want to produce.

The context of a relationship between states or actions symbols would then consists of a set of meanings, general or particular, that have an impact on the meaning of that relationship.

It seems then to me a priori that we would also need a separation into only 3 main context classes to cover the example of @MagicLord.

  • a thematic context: the symbol is placed in a military, spatial, industrial … context and the application of a relationship will corresponds to nuances that will match the subject treated in the game.

  • an event context: the particularities of certain objects such as vehicles or of tactics would be incomprehensible if they were not located in a context such as historical, strategical, fantasy, science fiction etc.

  • a hierarchical context: the relationship is significant if related, for example, to the rank of a character or the power of an object planed for him/it in the game.

A symbol of the state type would also be differentiated, as taking again the example of the fps, if it’s a permanent or ephemeral state, full form or exhausted, serious or futile, aggressive or defensive, good or bad, essential or accidental, etc.

Thus the state in a way labels the actions and induces their own value in the game. Then it is up to the context to indicate the nature of these associated meanings/labels and to allow a measure of their importance. This is what we use in Deep Reinforcement Learning with actions, states, rewards.

Once the possibility to give our objectives and constraints in this way, the tool then generates itself one or more design solutions that match well with thoses requirements.

If we can then allow the AI to have some kind of connection with the way people use the game, it would change something fundamental in the value chain, i.e. instead of making people want your stuff, making stuff that people want.

More, the computer has the ability to imagine much more complex game plans than we can do when we are just a handful of people to design.

We can even think that, like the AI painting software, a game engine AI which would be trained with a vast game culture, by specifying only a few objectives and constraints, as in a sketch, we could use it to create games that are impossible to create otherwise.

So for me this is the vision I try to share here with you. That concerns the next step of the Game Engines which aims to use Machine Learning so that the software understands by itself the task to be performed (i.e. AI that is intuitive and generative ) and applies it to the design of 3D games for game in the broadest sense.

It’s only ideas about game problems where deep learning could be good usage.
It’s not a request i made about deep learning, you are free to do deep learning the way you want and for what usage you want.

So to make this sort of system useful, would you need a vast amount of training data in order to give the network sufficient information to generate the outputs? Your painting example, for instance, was fed maybe thousands or 100s of thousands, of paintings? Would we have to organize and host some sort of huge game database that would be used for the training, or would there be a way to make it smart enough even if I only have my own training data?

@zicklag I think preferable to envisage to train different NN in different domains of expertises, following the preliminary software components design considerations you have in my preceeding post. Some of them then could be done like in ATRAP with no need of training data to be provided.
Remember too that the great strength of Deep Learning is that giving training data that we consider with no relations, like could be registered video and inputs of gamers, we can obtain interesting results when then we ask questions to the trained neural network. We are more in the domain of probabilities than in the domain of determinist things.

OK cool. And what is ATRAP? From what I’ve gathered, is that where a network learns by itself, given patterns of goals and rewards?

1 Like

Yes.

And in order to complete
(pictures taken from the Youtube video here https://youtu.be/zlhQTxwBSnQ )

I would like something concrete we could use in Armory, like the Gym AI api.

http://gym.openai.com/envs/#mujoco

For example you define some character or creature, run the simulation to learn movement, and use the simulation results directly in Armory.

Ai for driving is great also.

Do you think you could bring it to Armory ?

@MagicLord I am hoping to make an IA logic node available for doing something like that too … actual test is to implement it using a shader approach in order to get the best perfo using the GPU for the NN training … not trivial :hammer_and_wrench: to design …