I've been working on a project (Android Game), in which the player has to confront with some obstacles/enemies whom he has to destroy. So, is there a way in which we can monitor how the user of the game plays and accordingly to generate (and timely updating) that trained model, which can be used later in the game to make the user think of a different way to defeat an enemy unlike going in the same streamline flow which he has followed till now.

I've implemented Q-Learning and Genetic algorithms on the PC, to make the Game AI for some games like 'tetris' to make the computer play on it's own. But, haven't done it in Android till now.

Already searched: I've also referred to some websites in which they suggested using Neural Networks to encounter the same.

But, I'm unable to get an accurate procedure in which this can be done. Please suggest me a way in which I can monitor the user's input on how he plays.

Thank you.

  • 1
    $\begingroup$ There seems to be a great deal of emphasis on visual approach to machine learning. I find this question interesting because it is oriented on the player's tendencies and preferences. Welcome to AI! $\endgroup$ – DukeZhou Sep 1 '17 at 18:30
  • $\begingroup$ So, is there a way this can be made possible or do we have any tensorflow APIs to proceed with them, I'm really struck with this problem but, I really want to make this project. Please, suggest me.. $\endgroup$ – Praneet Pabolu Sep 1 '17 at 18:38
  • 1
    $\begingroup$ Unfortunately, all of my work is in highly compact, combinatorial games, not requiring visual learning, so I can't help you with specifics. But hopefully someone with experience in this area will find your question soon. $\endgroup$ – DukeZhou Sep 1 '17 at 18:41
  • $\begingroup$ Do you want to monitor the user's input in a game you've created (and have the source code) or a game provided by a third party? $\endgroup$ – Demento Sep 4 '17 at 18:41
  • $\begingroup$ User's input... And use that input as my model's input to train the model $\endgroup$ – Praneet Pabolu Sep 6 '17 at 5:12

The software that you require to provide your AI agent remote access is called Virtual Network Computing (VNC). A VNC is a desktop sharing system that transmits keyboard and mouse movements, over a network connection, from the server (the AI) to the client (training environment).

This allows your AI agent to use a computer like a human does, which is by looking at the screen pixels and operating a virtual keyboard and mouse. Infact VNC's are used conventionally for remote technical support and accessing files on one's computer remotely.

An excellent use case example is Open AI's Universe platform. Alongside Gym, which is Open AI's toolkit for developing RL algorithms. Universe launches programs behind a VNC remote desktop, which enables the training of AI agents by only showing them the screen pixels and allowing them to operate a virtual keyboard or mouse.

Since you want to train your AI agent on an Android based training environment, my suggestion is that you consider installing either Real VNC (android client) or Droid VNC on your Android device. You can then install the VNC server software on your training machine (i.e. an nvidia docker instance). Your AI agent will now have full access to the training environment screen for reinforcement learning.

I also recommend that you look at this similar question on the network.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.