GithubHelp home page GithubHelp logo

mastainvin / xumes Goto Github PK

View Code? Open in Web Editor NEW
2.0 4.0 1.0 58.63 MB

BDD game testing tool using reinforcement learning in python.

Home Page: https://xumes.readthedocs.io/

License: MIT License

Python 97.92% Gherkin 2.08%
game-testing reinforcement-learning

xumes's Introduction

Xumes

Xumes is a game testing tool designed to be used on top of games without the need to modify the game sources. It provides a framework for observing and interacting with game elements, training models, and conducting tests.

Please check the documentation for more information.

Framework usage

The Xumes framework consists of two main components: the "Game side" and the "Training side". These components are implemented as separate Python modules within the framework: game_module and training_module. You will need to implement these modules to use the framework. The following diagram illustrates the architecture of the framework:

framework schema

Game side

The steps files and features files are responsible for implementing the tests that will be executed by the framework. They are written in Gherkin, a language that allows you to write tests in a human-readable format. The framework will execute these tests by interacting with the game through the game side component.

Training side

The training side of the Xumes framework is responsible for predicting actions based on game states. It leverages the stablebaselines library, which provides a wide range of reinforcement learning (RL) algorithms to facilitate the implementation of the training process.

Limitations

  • Randomness of the tests due to the stochastic behaviour of AI agents. We are doing t-test and let the user choose $\alpha$, by default $\alpha=0.001$. That means that there are cases of false positives and false negatives which is not good for testing.
  • Training time can be long, especially for big tests.

Those limitations make testing difficult and impose a good definition of the test cases.

Future work

  • Improve the error handling for the BDD (steps not written yet for instance).
  • Change the Observable implementation.
  • Add seed to perform same tests every time.
  • Add tags in feature files.
  • Improve code coverage with unit tests.
  • Create an architecture schema for the framework (not a usage schema).
  • Improve the documentation with descriptions of every class of the framework.
  • Improve the documentation with advices on how to make good tests and how to choose good alphas.
  • Convert the documentation to Sphinx.
  • Add a class to pass data from game to training (for the moment is Dict).
  • Add behavior observation (observe when a method is called).

xumes's People

Contributors

aminaferraoun avatar eight-winged-angel avatar fbour33 avatar mastainvin avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

fabiopetrillo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.