27 января 2019 г.

Дневник разработчиков CSTL #1. Матчмейкинг-платформа для тренировки и проведения турниров

Напоминаем, что в дневниках разработчиков мы рассказываем о состоянии разработки, своих обещаниях и технических трудностях, с которыми мы столкнулись. Эта часть дневников посвящена разработке нашего основного продукта — системы матчмейкинга для праков, турниров и игры в одиночку или с друзьями.

Разработка системы началась почти год назад уже весьма давно — тогда она носила название eBotEX. И в основе ее лёг, как мы уже рассказывали в прошлой части дневников, eBot от судьи ESL, который мы решили основательно доработать и написать свой интерфейс. Вялотекущей разработкой мы сделали к весне уже более или менее рабочий прототип, который планировалось обкатать на Тюменском этапе Кубка России 2018, но, увы, не сложилось. Правда прошлые сырые прототипы мы всё-таки использовали, сейчас расскажем, как они применялись и где, естественно и проблемы не утаим.

Первые шаги

Дебют eBotEX состоялся еще весной 2017 года — это были финалы Cases4Real Cup May 2017, который было решено захостить нами, однако его можно было видеть и перед ним — на локальном рофлотурике Metrostroi Cup May, проведенном нами.

Тогда система была довольно нестабильна, но все-таки отработала весьма «гладко» для нас на данном этапе разработки. После этих самых «тестов» мы не побоялись использовать наработки на Cyberia 1x1 Tyumen CS:GO Cup. Естественно, мы использовали лишь ограниченный функционал, да и после мероприятий поспешно ушли в двухмесячный инактив для продолжения разработки. Вернулись мы лишь в конце октября 2017-го с мини-турниром CSTL Tyumen 2017, в рамках которого полноценно проявились первые проблемы.

Теперь о проблемах и боли

Во-первых, мы столкнулись с оверселлом на хостингах (грубо говоря, ситуация, когда хостинг продает больше ресурсов, чем имеет на самом деле), а постоянные запросы к серверу от нашего ПО лишь усугубляли ситуацию.

Во-вторых, мы столкнулись с серьезными ошибками работы системы. Например, если пинг от сервера до системы был около 120мс и выше (а система стояла на сервере в Нидерландах), то некоторые события засчитывались несколько раз или не засчитывались вовсе. Например, в паре игр один раунд засчитывался дважды.

Кстати, на том же ивенте впервые появился и худ, но об этом мы расскажем в следующий раз.

Во время этого турнира уже согласовывался следующий — Tyumen Cyber Forum 2017, до старта которого нам удалось лишь чуть уменьшить влияние пинга на матчи, и, к счастью, более эта проблема не всплывала, однако это был первый, и довольно громкий звонок потенциальных проблем.

После этого мероприятия было небольшое затишье — мы решили доделать турнирный вариант системы и… доделали. Но, к сожалению, этому турниру так и не суждено было состояться, точнее говоря, турнир состоялся, но технически мы не приняли никакого участия в его проведении.

К этому турниру система обзавелась профилями команд и игроков, научилась собирать заявки на участие в турнирах, собирать матчевые лобби, проводить пики-баны и запускать после этого матч. Тот самый вариант системы к Кубку Тюмени. Дизайн предполагалось полностью переработать

Хоть этот функционал и не выглядит объемно, но система стала громоздкой, сложной и дальше грозила только усложниться еще, а первые (и явно не последние) проблемы уже были на виду. Это подтолкнуло нас к довольно радикальному решению — переписать полностью программное обеспечение без использования тяжеловесных решений. О том, как будет выглядеть новая версия, мы вам расскажем в будущих дневниках.

В следующем дневнике мы Вам расскажем про HUD

Sergei Riabinin

Sergei Riabinin

@polarwooolf

Igor Tkachenko

Igor Tkachenko

@alonerus