The Great Tribes
УРА-УРА-УРА🔥
Этот день наступил.
Минимум речей и громких слов, максимум действий. Вы же знаете какую кнопку кликнуть?
Выход в ранний доступ уже в этом году!
УРА-УРА-УРА🔥
Этот день наступил.
Минимум речей и громких слов, максимум действий. Вы же знаете какую кнопку кликнуть?
Выход в ранний доступ уже в этом году!
В ходе тестирования проекта The Great Tribes тестеры, время от времени, встречали очень странную ошибку: на карте появлялись юниты, стоящие на воде. Однако воспроизвести этот баг напрямую не удавалось.
Баг был очень редким и у нас даже появился локальный мем - “Это не баг, это зарождение новой религии в игре”.
Проблема оставалась загадкой, шесть месяцев я не мог отловить баг, просто не мог даже воспроизвести его. После того, как я ввел в игру юнитов с радиусом обзора 25 тайлов вместо трех стандартных, частота появления бага возросла. Данных юнитов я сделал для облегчения проведения тестирования, при таком обзоре было видно все, в том числе и поведение искусственного интеллекта.
Я проштудировал весь код и перепроверил все алгоритмы связанные с перемещением юнитов по карте. Причин я не нашел, баг так и не воспроизвел.
В рамках подготовки странички в Steam понадобились юниты с большим радиусом обзора и я сделал 50 тайлов обзора. И тут подобные баги стали вылазить с завидной регулярностью. Я генерировал карты в поисках красивых мест чтобы можно было сделать красивые скриншоты для гифок. Лишь в момент серии генераций карт я смог воспроизвести этот баг.
Я заметил закономерность, раньше я запускал проект в IDE, генерировал карту, что-то проверял и выходил из игры. Но как только я делал повторную генерацию, не выходя из главного меню, этот баг очень часто проявлял себя.
Все взаимодействия мира на сервере шли через один глобальный синглтон ServerContainer. При повторной генерации карты новый сервер запускался, но ServerContainer оставался старый, с ссылками на старые юниты и ошибками связи между данными.
У меня был реализован метод cleanup() у ServerContainer, который очищает все критические данные после выхода из игровой партии. Часть ресурсов (общие списки, шаблоны и настройки) сохранялось для ускорения работы генерации карты.
После этого причина нашлась моментально. Я просто забыл вызвать этот метод при выходе с сервера.
Не совершайте таких ошибок! Всем удачи и хорошего настроения!
Долго не решались, но по многочисленным просьбам тестеров и игроков решились.
Встречаете новую расу - Ящуры с Поволжья.
Точнее с Байкала, со стороны севера Гипербореи.
Редкий вид, особо живучий и размножающий был в 1-6 веках нашей эры.
Во второй половине 6 века пошел на спад благодаря заселению Русинов.
Раса будет доступна уже в первой версии игры, после выхода в ранний доступ в Steam.
Сделавшим предзаказ Gold Edition будет доступен бонус в виде пета Русина, а также вида одежды, от кленового листа с шапочкой из фольги, распашонки и шаровар до мундира времен первой мировой.
Подробности позже.
Как у меня подгорает сегодня! Опять на поиск очередного бага убил пару часов.
При удалении юнита обновляется информация на клиенте и на сервере. Но юнит опять появляется на карте клиента. Почесал репу, проверил логику, все правильно. Что делать? Написал проверку есть ли на клиенте юнит на карте - юнита нет. Написал проверку есть ли юнит на карте сервера - нет юнита. Но на следующий ход он появляется и только на клиенте.
Архитектура у меня такая, что на сервере содержится карта мира и карта видимая только игроком которая транслируется на клиент. Пишу проверку есть ли юнит на видимой карте клиента - юнит есть! Проблема значит в методе updateStateRemoveUnit на видимой карте игрока хранящейся на сервере.
Давно не было новостей. Решил наконец на прошлой неделе проблему с рассинхроном анимации передвижения юнитов. Взялся за рутинные задачи по привязке событий к интерфейсу и от этой рутины впал в тильт... Мозг хочет решать сложные задачи. Как избавиться от этой проблемы не знаю. Вероятный ответ - быстрее покончить с рутиной.
Крутые гости были у нас на стенде! Как преданные фанаты следящие за игрой несколько лет, так и новые игроки познакомившиеся с нашим проектом на фесте. Было очень приятно познакомиться и пообщаться с каждым из вас. Спасибо за теплые отзывы и дельные замечания.
Полный альбом фотографий можно найти по ссылке:
Пока только первый день. На днях будет и второй.