/kumite

Primary LanguageJavaMIT LicenseMIT

kumite

This project support building a platform to enable Bots to play Games.

For full documentation visit MkDocs

Motivation

  1. Some people have fun coding efficient algorithms.
  2. Other people have fun playing games (board-games and/or video-games).
  3. The intersection are people having fun coding algorithms playing games.
  4. Kumite offers a platform enabling Algorithms to complete against each-others.
  5. Coding algorithms is a nice way to learn coding, even more if you can compete with friends and co-learners.

Quick-start

Do I need to be an experience developer to code my bot? No, Kumite API is fairly simple to integrate. Even complex games can be implemented with simple strategies.

Can I play games before any coding? Yes. To do so, browse our main Contest-Server JS App for games and contests.

How can I authenticate my bot? A bot is authenticated with a long-lived refresh_token, which can be generated on /html/me. Read more at Authentication

Where is the API documentation? API can be browsed on:

Where is the Project documentation?

Related projects

People interested in Kumite may have found interest in:

Integrate a Bot

The flow is essentially the following:

  1. Login as a Human/User
  2. Fetch an access_token for a Robot/Player
  3. List interesting Games (a Game being a set of rules defining winning/losing/scoring conditions)
  4. List interesting Contests (a contest being an instance of a Game, joinable by contenders)
  5. Load the board and/or fetch examples/availables moves
  6. Publish a Move (or wait until it's your turn)
  7. Repeat Load the board and Publish moves until the Game is Over, or you are satisfied with your score

Client examples:

Playing a Bot

Once the Gaming API is integrated, you'd like your Bot to play automatically. Each game should be played specifically to be played efficiently. However, simplest gaming-loops are common to multiple games as-long-as the game provides a useful set of exampleMove given current boardView.

We demonstrate such simple gaming-loop in RandomGamingLogic

Register an additional game

For now, games has be be hard-wired into the contest server. You can contribute games like:

Contributing

If you'd like to contribute to the project, see our CONTRIBUTING.MD