---
# System prepended metadata

title: King of the Hill (#1)

---

# King of the Hill (#1)

What is a king-of-the-hill (KOTH) competition? It's a form of programming contest in which users submit programs which directly compete against each other while playing some sort of game, for example a board game.  Each contestant submits a bot, which acts like a player in the game. The bots take turns, during which they are fed information about the game/environment, and have to return their selected move/action. The MC@H staff will be hosting this competition, so we are responsible for running the controller program, which interacts with the submitted bots, implements the game logic, keeps score, etc.


# Game Ideas:

* D&D type Game
  - there would be (vastly simplified) classes, ability scores, spells, weapons, and magic items to choose from
  - you would have to create a character and also write the code to control that character
  - it would be a fight-to-the-death obviously
  - we would want to simplify the issues of space and geometry so that movement / spell ranges / etc are very simple or nonexistent
  - it could be 1v1 or two small teams in each battle.  (for team battles, we would shuffle the teams around every game, so we end up with a singular winner who has the highest win rate) There would be a round-robin mechanism to find the overall winner.
  - Strategy based
  - 2d graphics
  - Levels ranging from Beginner to Extreme
* Card game


# Language used (for the controller):

(IMO most of the stuff people have written below about language selection is probably irrelevant - pseudo)

* Python
  - Simple to put ideas into code
  - Slow compared to others if using pygame to code it
* C#
  - Able to be used with Unity which makes graphics easier
  - Also makes phyiscs 1000 times easier
  - Best option so far
  - Some of us have experience with this
* C
  - no
* Javascript
  - With a server in node, could be used to make a browser-based game (with 2d graphics thanks to html5)
  - Somewhat fast (highly depends on computer)
  - DB support + sockets, so accounts etc

