Skip to content

A website where people can design AIs to compete in simple games

License

Notifications You must be signed in to change notification settings

Brownshome/script-wars

Repository files navigation

Script Wars

Intro

Script Wars is a AI design competition designed for university software students. Participants write small AI programs using the supplied library and connect to a competition server. The AIs then compete against each other in simple games for glory.

How to take part

There is a running server!! Join here. Bring your friends and enemies and everything in between

How to contribute

While I would like to keep the development of the core system to myself there are several opportunities to speed this project along.

  • Creating a new game by extending the Game class. This requires no specialist knowledge or advanced java skills and the class is, or at least will be soon, well documented. All this needs is a cool idea.
  • Write more client libraries. At the moment the only client API is written in Java. The server is built to be language agnostic but I do need language specific libraries. The protocol for the connection is documented and relatively simple. I would prefer more widly used languages but feel free to build one for your favorite esoteric printer garbage lookalike, looking at you Malbolge.

For any of the items above submit a pull request or get in contact depending on how much work you are planning to do. As for contributing other features or fixes use your common sense. Ask me first before you start anything big in case it is A) already being implemented or B) not wanted. For small fixes or requests submit an issue as at this stage the code base is too fluid for pull requests to be worth anything for small fixes.

Building & Downloading

Download the git client (or the git command line tools) and fork the project into a directory, edit the files and make a pull request.

This project is using a gradle based solution. Install the gradle tool and use the command gradle war to compile the server files and gradle clientJar to make the client library. Drop this file in the server webApps folder (or equivalent). The deployment server is Tomcat 9.0. Your millage may vary with other versions / servers may vary.

To use eclipse with the project, install the javaee version of eclipse or upgrade your installation with the needed plugins. Install the tomcat server to your disk. Click new project and go to Dynamic Web Project point the project location to the folder you placed the git repo. Set the server runtime to Tomcat 9.0 and the module version to 3.1.

Click next and remove the src folder. Add server and client/java to the source path. Then click finish. You should be able to now build and run the project via eclipse.

The ability to run the project directly from gradle may be added later.

For more information please see the technical details document