I'd like to introduce KoTHComm. I've been working on this for many months now, and I feel like its at a (somewhat) stable point.
KoTHComm is a modular framework built to help write King of the Hill challenges faster. It provides:
- A communication system to communicate with other languages
- A downloader to automatically download the latest submissions from the site
- A tournament system, which allows you to organize players into games in a variety of ways
- A scoring system, which allows you to combine game scores in smart ways
- A map module, providing many types of extensible maps and map generation
- GUI components to easily show the current state of the game
It works too: I used it on my past KoTH, Stock Exchange, and I will be using it on my upcoming KoTH. All features are optional, and I've tried to limit the dependencies between the different parts.
I would like to note that the framework is still under heavy development, and I cannot guarantee backwards compatibility of any kind. I'm sure it has bugs, but I try to fix them as fast as possible.
FAQ:
- What language is it written in?
- Java 8. Yes, you must write your controller in Java. If you hate Java, tough luck. Submissions don't have to be written in Java, but I'd highly recommend limiting them to Java for speed purposes
- What do you plan on doing?
- Store scores in a persistent database (which means that you can start your controller multiple times, and save all of your scores)
- Hosting KoTHs on a website. This will not be an automatic process, and I will pick and choose which ones I will host. I'd also love to get a stack snippet to work with it as well
- Add tests and comments for all of my code
- Flesh out map generation
- Do you want help?
- Sure! Either send a pull request, or talk to me in chat
- Do you plan on porting this to other languages?
- No.
If you have any questions or feedback, post it below. If you have any bugs, post a bug report on Github.