Truepicker.com — “When it’s all about the right choice”

Purpose: automatic game team building based on statistical data

Features:

  • Page design
  • Some assets
  • Programming & system administration
  • Team leading & technical part responsibility

Technologies:

Gamer’s Call

Truepicker is a gamer’s tool to help him build an optimal team to both counter his enemies and match his allies in online multiplayer games like Defence of the Ancients (promoted by Valve, also called “DotA”) and League of Legends.

These games feature two opposing teams, each consisting of 5 players. Each player picks a hero from the list of more than 100 faces and uses his abilities to defeat enemy heroes and eventually destroy their base.

The gameplay highly depends on relations between picked heroes. Since each hero has only 4 “abilities” (special moves he may use like teleportation, invisibility or remote strike) player has to match his choice with the rest of his team so their abilities become stringer when combined; he also has to account for enemies’ abilities to counter them efficiently. This requires knowledge of all other game heroes which because of their number isn’t available for everybody, especially newbies. If the player makes wrong choice outcome of entire game might be predetermined.

Backend

Truepicker automates this process. It uses vast statistics (more than 500 000 of rows at the time of this writing) on all possible hero combinations as voted by players themselves combined with statistics of real game win ratios. To collect this data a distributed crawler engine, Sqobot, was written. It was split over 4 different servers to speed up the process.

Database architecture has been optimized by creating two data layers: first containing verbatim statistics drawn from the abovementioned resources, and second — merged from the first layer with optimizations for certain queries (for example, one recommendation takes exactly one query on the single table without JOIN). Both layers are kept in sync by the backend.

Frontend

Shield illustration
Some assets were created by me in Adobe Illustrator.

Truepicker is a resource used when time is short. The site’s two sections: recommendation page and per-hero playing guides are used right when a game is about to commence. Player has to make decisions quickly and see all the information at a glance.

User interface was specifically designed with these requirements in mind. Recommendations page is fit on a single screen (of standard 1024×768 resolution); it combines quick and concise help to get new users started with visual shortcuts and keyboard hotkeys to allow advanced users work even faster. On the other hand, hero guides use tabbed UI and fill the maximum available space (while still fitting on one screen up to 1400 pixels wide) with visually distinct blocks. Player locates essential data immediately within a few seconds grasping the info he needs to have a good game.

Server setup

Truepicker is a dynamic young project with yet unclear performance demands. For this reason Pagodabox — well-known cloud hosting platform was chosen. It is highly scalable offering almost instant and lag-free redeploying of the entire application (code, database and cache) with more resources. Git version-control system is used over secure SSH connection with automatic updates of live site when application is changed.

Collaboration

I was the project’s team leader responsible for task management, general workflow and system administration. Other members lived all around FSU and had diverse roles from analytics to SEO.

We used Redmine for CRM. It is a Ruby on Rails application running under nginx + FastCGI + Unicorn on a high-end VPS (powered by CentOS 6). It was set up and administered by me.