- A website somewhere. The website would show the ladders in a nice list, you could register and log in to see your statistics, etc.
- A database. MySQL or whatever, really. Something that would hold all game statistics, won/lost matches, logins etc.
- A server for accepting data from the players clients. Eg. JSON format, UTF-8. That way this could be implemented eg. in Django pretty easily.
- NAT traversal server. The implementation would depend on the mechanism we want to use. STUN or whatever. TODO v1.0+.

Clients view of Internet games:
1. Clients start up and connect to a server somewhere on the internet. Login information is sent. TCP/TLS socket (might as well).
2. Clients are either asked to repeat login information or are redirected to games lobby. There should be somesort of "now online" list and a chat. We could eg. use IRC ? Or our own protocol ? Via Websockets/JSON to the Django server ? Need to be planned.
3. A match lobby for picking settings and chat. Ranked games will probably select lots of options for you, but in unranked 1v1 these could be more open for changes.
4. When a game is started (tournament, 1v1, other?), REC recording is started, and clients are told to create a peer-to-peer link between each other. This should use NAT traversal techniques if necessary. Also, this way we minimize the latency between clients.
5. When game is over, both clients send their RECs to server. Clients kill their p2p link and show the usual you won/you lost stuff etc. After this, both players are redirected to a statistics/lobby specific to only them, so that the players can see how much they suck compared to raptor and call each other names. Close button takes both players back to lobby.
6. In lobby, you may quit and go back to main menu whenever.

Last edited by katajakasa on Sat Jun 07, 2014 8:25 am; edited 1 time in total

- 1 vs. 1 challenge (both LAN/Internet): Challenge anyone in the lobby for a quick match.
- 1 vs. 1 Ladder game (Only Internet): Challenge an opponent selected for you to a ranked match.
- Tournament game (both LAN/Internet): Challenge a group of players to a tournament game. Ranking needs to be determined at later date.
- Else ?

Oh, and, about the ranking system. How about we give every player a "score". Higher score = better player. Low score = crappy player.

If you win matches, you gain points. If you beat a good player, you gain more points than if you beat a bad player.

If you lose matches, you lose points. If you lose to a good player, you lose less points than if you lose to a bad player.

Minimum limit is 0 points. I'm not sure if there should be a maximum limit for points. Maybe we should set some arbitrary maximum, and then reduce points gained for each match when approaching that limit.

The system should always attempt to give you opponents with equal score, with a margin of +/-25% or something like that ...