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.


  • 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.

  • 6
    \$\begingroup\$ Congrats on "releasing" this! Thanks for your excellent contribution to the community! \$\endgroup\$ Nov 13, 2016 at 19:22
  • 6
    \$\begingroup\$ But Java will make the controllers so much longer... \$\endgroup\$
    – mbomb007
    Nov 16, 2016 at 17:19
  • \$\begingroup\$ I'm confused. By longer, do you mean the size of the jar? That's true for any library \$\endgroup\$ Nov 16, 2016 at 17:20
  • 2
    \$\begingroup\$ @NathanMerrill No, mbomb means code size because we all hate Java a lot. \$\endgroup\$
    – cat
    Nov 18, 2016 at 0:29
  • 1
    \$\begingroup\$ (also, you should copy this into the repo's readme because not having a readme in the repo is mildly baffling) \$\endgroup\$
    – cat
    Nov 18, 2016 at 0:30
  • 1
    \$\begingroup\$ I've been wanting to add a readme, but I want more "how to use" instructions \$\endgroup\$ Nov 18, 2016 at 0:49
  • 5
    \$\begingroup\$ @NathanMerrill I believe mbomb007's comment was a joke in reference to golf, not an actual criticism :) \$\endgroup\$ Nov 19, 2016 at 21:42
  • \$\begingroup\$ Oh I figured that out :) \$\endgroup\$ Nov 19, 2016 at 21:57
  • \$\begingroup\$ How about linking to this from the KotH tag wiki? \$\endgroup\$ Nov 25, 2016 at 9:46


You must log in to answer this question.

Browse other questions tagged .