В первые дни разработки было решено собрать фокус-группу из своих знакомых для теста игры. Как-никак, имея дело с ММО, тестировать в одиночку было проблематично. Так я запустил закрытый бета-тест игры, сделав доступ к боту по одноразовым ключам. Сгенерировав таких 10 штук, я разослал их своим знакомым в Telegram. Реферальная система уже была добавлена к этому моменту, хоть и не работала по факту в виду закрытости тестирования. Её суть в том, что за каждого зарегистрированного в игре человека по твоей реферальной ссылке, игрок получает +1 к максимальному запасу выносливости и немного крышек (местной валюты) на карманные расходы. Это привело к тому, что спустя 2 недели с начала закрытого бета-теста, в нём принимало участие уже 50 человек, а мои личные сообщения были забиты просьбами людей дать им еще 1-2-10 ключей для своих друзей. Вместо того, чтобы постоянно генерировать новые ключи, я принял решение сосредоточиться на исправлении найденных в тестировании багов и запустить открытый бета-тест, отменив регистрацию по ключам. За первый день открытого бета-теста в игре зарегистрировалось 120 человек. Спустя месяц суточный онлайн составлял 200-250 человек в день, а общее количество зарегистрированных игроков приближалось к 800. И всё это без каких-либо движений с моей стороны по пиару игры. Игра становилась известной исключительно благодаря сарафанному радио и реферальной системе.
В игре полно таймеров (2 минуты на переход между локациями, ожидание битвы и т.д.), и запуская их в отдельных потоках, создавалась утечка памяти.
Я не питонщик, можете подробнее? Эти таймеры тикают в рантайме? Вариант с записью времени начала события в базу не годился?
Таймеры обрабатываются в одном потоке для каждого типа)