Gosu Gamers Integration
Introduction
This document details the potential integration with the Gosu Gamers web site. The intention is to streamline tournaments to limit the risks of technical difficulty for teams and tournament organisers.
This document assumes that Map Selection can take place on the Gosu Site. However, if its too difficult to implement, we will need to investigate the required work to move map selection from server creation to something that is picked right before the draft.
Workflow
The following is the proposed workflow for integration with Gosu Gamers site.
Initially, the gosu site will need to prepare the check. During team checkin, the gosu site needs to decide if a team needs to select a map or if NautDrafter should select the map. Meaning, if its best of 1 or Game 1, than the NautDrafter system can automatically select the map. However, if its Game X, than the losing team (should be known by Gosu Site) should select the map. Once the map information has been determined, the Gosu Site will need to either send a request to the NautDrafting System OR the NautDrafting system could pull the Gosu Site (say every minute).
Either through the push or pull requests, the NautDrafter system will require the following information to create a server hosted in the cloud.
- Server name: (Maybe something like this: [Awesome Cup] Team XXX vs Team YYY - Game ##
- Team Names: The name of red team and blue team
- Custom Draft Configuration Name: IE "Awesome Cup - Best of 1"
- Selected Map (optional): The name of the map for the server to use (not necessary if custom draft automatically selects)
- Password (optional): Could be randomly generated, a general password for the tournament, or no password (public)
Next the server is created and hosted in the cloud. Players than connect and run their draft. After the draft completes, the hosted server sends the summary of the draft to the gosu site (as part of the required information for completed games). The summary can be used internally to the site.
The cloud hosted servers will have an expiration time. Can be negotiable, but probably 1 or 2 hours. The servers will also expire 10 minutes after the draft has been completed.
After the players complete their Awesomenaut game, they submit their results to the gosu site. Once the next level in the bracket is created, this kicks off the checkin prep which starts the process over.
Possible Integration API
Pull Request - Drop Box
This option limits the customization required for the Gosu Gamers Site. New drafter server requests can be managed through a dropbox private share. So when a new server is to be created, the Gosu Site creates a new text file in the drop box folder. An example text file format is below:
redteam=BOSS blueteam=3HM draftconfig=Awesome Cup - Best of 1
The above is BOSS vs 3HM playing a best of 1. So the map doesn't need to be specified as its determined by the draft config.
redteam=BOSS blueteam=3HM draftconfig=Awesome Cup - Game X map=Ribbit IV password=Awesome Cup
The above is the 2nd game which requires the losing team to select the map. This should be done on the Gosu Site. If not possible, see comment at top about potential map selection integration for the draft.
Push Request - Java Client
This option would be a new java client that could be used by the Gosu Site. Essentially the Gosu Site uses the java client to send a request to the NautDrafter System to create a drafting server with the required information. Here is the javadoc for the project so we would have to invent an API specifically for this. It would contain similar information as above except it would also contain an ID field (used for authentication). If there is interest in this option, we can flush out a proper API.
Push Request - HTTP GET
The simplest method of spawning a new Drafting Server from the web could be to have an HTTP endpoint.
Meaning, the NautDrafter system could listen for an HTTP GET request that kicks off a dedicated Drafting Server. The suggested format is the following:
http://drafting.nautdrafter.monky-games.com/drafting/create?id=uuid&redteam=name&blueteam=name&draft-config=name&map=name&password=pass
Parameters
- id: the unique id given to tournament organizers
- redteam: the name of the red team
- blueteam: the blue team name
- draft-config: the name of the custom draft configuration
- map (optional): the name of the map
- password (optional): the password for the game