
"We are going to talk about three things," he said as he began booting a six-year-old ThinkPad.

Same thing happened with typeĮverything in here was made for either initializing the database for the season, for modifying a large number of matches (one player in a league dropped out and we almost completely re-arranged the schedule), or some other one-time purpose.SAN FRANCISCO-During last month's Game Developer Conference, longtime coder and designer Chris Hecker invited me to a game demo event with a tidy premise. You'll see things referred to as a "match" in some places, and a "bout" in others. This is mostly caused because I did the db design first, forgetting that match is a reserved word in Scala. Right now, everything is mostly done by hand. Build an admin UI for the tournament administrators.There's definitely some optimizations that can be made (especially on the db), but since the tournament is small (for now), they weren't high priority.


While SclManager has been battle-tested in Season 3 of the SpyParty Competitive League, there are some things I would like to do better. Note that this code makes extensive use of scalaz disjunctions (the \/ class). All of the code for parsing is located in the package, the main entry point for parsing an indivdual file is the fromInputStream function in the file Replay.scala. Player names are stored in the SpyParty replay themselves, so we can use that information to look up match data in the database. By design, there is no authentication here. I used my previous work in reverse engineering the SpyParty replay format (with an assist by Chris Hecker, the SpyParty dev) to build this system. jOOQ is used for database access, HikariCP is used for connection pooling (which is admitedly overkill for a small-scale project like this), Typesafe Config is used for configuration file reading (with an AWS Key Management Service layer I built on top for storing secure data). This project is built in Scala on the Scalatra web framework.

There is also an endpoint for the draft tool (the SpyPartyDraft repo) to interact with and post draft information so this code can link up map drafts to matches. This repo is the backend REST service for a frontend (not written by me) to interact with: upload completed games, retrieve lists of games, and get player standings. This is an online service for managing the SpyParty Competitive League (SCL).
