Git Product home page Git Product logo

gbg's Introduction

GBG

Introduction

General board game (GBG) playing and learning is a fascinating area in the intersection of machine learning, artificial intelligence and game playing. It is about how computers can learn to play games not by being programmed but by gathering experience and learning by themselves (self-play).

A common problem in game playing is the fact, that each time a new game is tackled, the AI developer has to undergo the frustrating and tedious procedure to write adaptations of this game for all agent algorithms. The motivation for GBG is to provide a framework for educational and research purposes which makes it relatively easy for students or researchers to code new board games and apply all agent algorithms to it. Likewise, AIs can be compared to each other in game competitions and they can be evaluated on a variety of games.

GBG is a Java-framework for General Board Game playing and learning. It consists of classes and interfaces which abstracts the common processes in board game playing and learning. GBG is written in Java. GBG is suitable for arbitrary 1-player, 2-player and n-player board games. It provides a set of agents (AI’s) which can be applied to any such game. New games can be coded following certain interfaces and then all agents of the GBG framework are available for that game. New AI agents can be coded following certain other interfaces. Then, the new agent can be tested on all games implemented in the GBG framework. It can be compared with all other AI agents in the GBG framework.

For a quick overview of GBG see the GBG Wiki.

GBG Wiki - Install and Configure shows how to install GBG.

For an in-depth description of classes and interfaces in GBG see the technical report on GBG [Konen2022a]. This technical report describes in tutorial form the set of interfaces, abstract and non-abstract classes which help to standardize and implement those parts of board game playing and learning that otherwise would be tedious and repetitive parts in coding. Alternatively, you can reach the technical report after starting the GBG framework via Help - Show TR-GBG.pdf.

For publications and research on GBG see Research page GBG Wiki.

ArenaTrain ArenaTrain

Contributors

Johannes Kutsch, Markus Thill, Kevin Galitzki, Felix Barsnick, Johannes Scheiermann, Julian Cöln, Yannick Dittmar, Percy Wünsch, Simon Meißner, Tim Zeh, Ann Weitz, Meltem Seven, Wolfgang Konen

gbg's People

Contributors

annweitz avatar jlncln avatar johannes-kutsch avatar johannesscheiermann avatar kevga avatar leyalx avatar simonitor avatar tez90 avatar thanked93 avatar the-engineer avatar thot38 avatar wolfgangkonen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gbg's Issues

Sim GameBoard: who to move

Sim GameBoard: add during game play in the game board window the information who of the players is to move.

Sim GameBoard Bugs

The code for GameBoard visualization in game Sim (written by a student) is still buggy:

  1. Depending on the number of nodes, ArrayOutOfBounds-exceptions might occur. Will occur, if number of nodes is not 6
  2. If “Show V” is selected, the coloring of the not-yet used edges is often wrong.
  3. It is not yet clear: What is a good option to visualize the value of all available actions? The current way (the value influences the color alpha channel in BoardPanel.doDrawing and .getColor) might be conflicting in conjunction with the player colors. If color is the way to visualize values: Use a good (non-conflicting) color map instead of alpha channel for green.

3-tabbed window around GameBoard

Make the GameBoard window a 3-tabbed window, where only the 1st tab is game-specific: The 1st tab shows the game board (active during game play & game inspect). The 2nd tab shows the training progress plot (active during train & multi-train). The 3rd tab shows a scrollable message window which shows the messages during GBG’s operation (This is that what is now sent to the Eclipse console of the GBG program. But this would be not observable if we start it as runnable JAR or isolated program outside IDE.)

TDReferee.agt.zip not found

If during a training TDReferee.agt.zip is used in one of the evaluator modes, but not found on disk, then an error message is correctly displayed. But the program does not leave the train loop >> the message appears again and again.

Max-N distant losses

Observed in game Sim: If Max-N cannot win, then it takes often an early loss, where a later loss would be better (if it is assumed that the opponent makes mistakes from time to time). How to fix: add to loss positions a term *depth where depth is the distance to the loss (number of moves until loss occurs).

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.