Zemlaynin

Zemlaynin

Разработчик стратегической игры The Great Tribes https://thegreattribes.com/
Пикабушник
Дата рождения: 27 ноября
в топе авторов на 215 месте
1332 рейтинг 61 подписчик 11 подписок 66 постов 18 в горячем
Награды:
5 лет на Пикабу
10

Дневник разработки №50 - 10 лет спустя

Уже 10 лет минуло с тех пор, как я задумал сделать игру своей мечты. Так скажем, юбилей старта и заодно юбилейный дневник :) Всё начиналось с небольшого хобби и постепенно переросло в действительно масштабный проект. За всё время разработки я сталкивался то с подъёмами, то с «кризисами производства». В проект приходили новые люди: кто-то уходил почти сразу, кто-то держался некоторое время, а кто-то остался и уже много лет помогает проекту. Появились и хейтеры, которые не верят, что проект когда-нибудь дойдёт до финиша, — но им я тоже благодарен, они меня мотивируют :)

The Great Tribes в начале разработки 

The Great Tribes в начале разработки 

The Great Tribes десять лет спустя

The Great Tribes десять лет спустя

В прошлом году я в очередной раз наступил на грабли нехватки собственного опыта именно в организации разработки игры. Я уже давно занимаюсь бизнесом и привык оценивать риски в самых разных сферах деятельности, в том числе выходящих за рамки моих основных бизнес-интересов. Но игрострой — это всё-таки немного другое. Здесь приходится постоянно учиться и, к сожалению, довольно часто — на собственных ошибках.

Случилась проблема в планировании… Как вы могли заметить - я хотел выйти в ранний доступ еще в прошлом году, но так и не достиг поставленной цели. До конца 2025 года стояли задачи:

  • Художественное оформление - портреты - Выполнено

  • Художественное оформление - главное меню - Выполнено

  • Музыкальное сопровождение первой игровой эпохи  - Выполнено

  • UI\UX - главный игровой экран - Выполнено

  • UI\UX - иконки взаимодействия с наполнением карты - Выполнено

  • UI\UX - основное окно города - Не готово

  • UI\UX - окно религии - Не готово

  • UI\UX - окно культуры - Не готово

  • UI\UX - окно науки - Не готово

  • UI\UX - окно дипломатии - Не готово

  • UI\UX окно взаимодействия с юнитом -  Не готово

  • Программирование - реализация масштабируемого UI - Выполнено

  • Программирование - реализация музыкального микшера - Выполнено

  • Программирование - взаимодействие игрока c юнитами и деревнями - готовность 50%, осталось закончить систему выпадения тех или иных событий в зависимости от характеристик лидера отряда.

  • Программирование - основное окно города - Не готово

  • Программирование - окно религии - Не готово

  • Программирование - окно культуры - Не готово

  • Программирование - окно науки - Не готово

  • Программирование - окно дипломатии - Не готово

  • Программирование - поведение ИИ при различных событиях - еще конь не валялся.

Современный игровой процесс 

Современный игровой процесс 

В один прекрасный день организм просто сказал мне: «Всё, в таком режиме я больше работать не буду».

Последующие полгода прошли совсем не так, как я планировал. Вместо разработки большую часть времени пришлось посвятить врачам, обследованиям, лечению и попыткам вернуться в нормальное рабочее состояние. Я несколько раз пытался снова полноценно включиться в проект, но быстро понял, что работать в прежнем темпе пока просто не могу.

Наверное, это и была моя главная ошибка в планировании прошлого года. Я постарался учесть сроки работы художников, дизайнеров, композитора, объём программирования, зависимости между задачами — всё, кроме собственного ресурса. В плане я почему-то оказался той самой константой, которая всегда доступна, всегда работает и никогда не ломается :)

В результате всё, что могло двигаться без моего непосредственного участия, двигалось и в основном было выполнено. А задачи, завязанные непосредственно на меня, начали накапливаться. Именно поэтому ранний доступ, который я рассчитывал выпустить до конца 2025 года, пришлось отложить.

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

Сейчас я снова постепенно возвращаюсь в нормальный рабочий ритм. И, пожалуй, главное изменение за последнее время — я наконец начал решать проблему, которую слишком долго пытался игнорировать: The Great Tribes больше не должна настолько сильно зависеть от одного человека.

К команде присоединился Java-разработчик с большим опытом коммерческой backend-разработки. Сейчас он постепенно погружается в довольно немаленькую кодовую базу, которая копилась все эти десять лет :) Мы обсуждаем архитектуру проекта, разбираем существующие решения и определяем ближайшие технические задачи. А чтобы знакомство с проектом проходило не только теоретически, параллельно он уже занимается известными багами, до которых у меня самого долгое время просто не доходили руки.

 Рабочий процесс

Рабочий процесс

Для меня это довольно непривычное ощущение. Почти десять лет программная часть The Great Tribes в основном была моей территорией, и теперь впервые приходится не только писать код самому, но и учиться нормально передавать знания о проекте другому человеку, объяснять, почему здесь всё устроено именно так, а иногда и самому задаваться вопросом: «А действительно, почему я десять лет назад сделал именно так?» :)

Конечно, появление второго программиста не означает, что теперь разработка внезапно пойдет в два раза быстрее. Первое время всё скорее наоборот: нужно разобраться в огромном количестве существующего кода, понять архитектуру и внутреннюю логику игры. Но в долгосрочной перспективе это очень важное изменение. Я хочу постепенно уйти от ситуации, когда остановка одного человека означает остановку значительной части разработки.

Раньше проект в огромной степени держался на моём свободном времени и энтузиазме людей, которые к нему присоединялись. Сейчас ситуация начинает меняться. Второй программист работает над The Great Tribes фултайм. Художник, композитор и UI/UX-дизайнер также продолжают работать над игрой уже на коммерческой основе — с оплатой по факту выполнения конкретных задач.

Команда проекта

Команда проекта

Для меня это очень серьёзное изменение. The Great Tribes постепенно встаёт на коммерческие рельсы, а вместе с этим приходится перестраивать и сам подход к разработке: планировать бюджет, более чётко распределять задачи, контролировать сроки и по-новому выстраивать работу небольшой команды.

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

И это та часть разработки, которая обычно остаётся за кадром. На красивом скриншоте всё выглядит спокойно, но прежде чем этот скриншот появился, кто-то должен был найти очередной город не там, где он должен быть, странное поведение карты или ситуацию, о существовании которой программист вообще не подозревал :)

Скрины с тестов

Получился довольно необычный юбилейный дневник :) Наверное, десять лет назад я совершенно иначе представлял себе этот момент. Я точно не думал, что спустя столько времени всё ещё буду писать о разработке The Great Tribes и рассказывать, почему игра пока не добралась до раннего доступа.

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

Сейчас моя главная задача — не назвать вам очередную красивую дату выхода, а довести до конца то, что мы уже начали. В ближайшее время мы продолжим работу над незавершёнными интерфейсами и связанными с ними игровыми системами, закончим взаимодействие с юнитами и деревнями, а также постепенно будем приводить в порядок техническую часть проекта вместе со вторым программистом.

Когда я начинал The Great Tribes десять лет назад, это была просто идея игры, которую мне самому очень хотелось однажды увидеть. За эти годы несколько раз были моменты, когда всё двигалось очень медленно, были ошибки, неудачные решения и периоды, когда проект практически останавливался. Но была одна вещь, которая за десять лет так и не изменилась — я всё ещё хочу сделать эту игру.

Поэтому юбилейный дневник №50 — это точно не подведение итогов. Скорее, начало следующей главы :)

Спасибо всем, кто следит за The Great Tribes все эти годы. Тем, кто появился совсем недавно, тем, кто периодически спрашивает: «Ну когда уже?», и даже тем, кто уверен, что игра никогда не выйдет :)

Продолжаем работать.

Показать полностью 8
15

The Great Tribes

УРА-УРА-УРА🔥

The Great Tribes

Этот день наступил.

Минимум речей и громких слов, максимум действий. Вы же знаете какую кнопку кликнуть?

https://store.steampowered.com/app/3529930/The_Great_Tribes/

Выход в ранний доступ уже в этом году!

Показать полностью
11

Дневник разработки №49: История одного бага

В ходе тестирования проекта The Great Tribes тестеры, время от времени, встречали очень странную ошибку: на карте появлялись юниты, стоящие на воде. Однако воспроизвести этот баг напрямую не удавалось.

Иисус

Иисус

Баг был очень редким и у нас даже появился локальный мем - “Это не баг, это зарождение новой религии в игре”.

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

Я проштудировал весь код и перепроверил все алгоритмы связанные с перемещением юнитов по карте. Причин я не нашел, баг так и не воспроизвел.

В рамках подготовки странички в Steam понадобились юниты с большим радиусом обзора и я сделал 50 тайлов обзора. И тут подобные баги стали вылазить с завидной регулярностью. Я генерировал карты в поисках красивых мест чтобы можно было сделать красивые скриншоты для гифок. Лишь в момент серии генераций карт я смог воспроизвести этот баг.

Баг

Баг

Я заметил закономерность, раньше я запускал проект в IDE, генерировал карту, что-то проверял и выходил из игры. Но как только я делал повторную генерацию, не выходя из главного меню, этот баг очень часто проявлял себя.

Все взаимодействия мира на сервере шли через один глобальный синглтон ServerContainer. При повторной генерации карты новый сервер запускался, но ServerContainer оставался старый, с ссылками на старые юниты и ошибками связи между данными.

У меня был реализован метод cleanup() у ServerContainer, который очищает все критические данные после выхода из игровой партии. Часть ресурсов (общие списки, шаблоны и настройки) сохранялось для ускорения работы генерации карты.

После этого причина нашлась моментально. Я просто забыл вызвать этот метод при выходе с сервера.

Причина - отсутствие вызова этого метода

Причина - отсутствие вызова этого метода

Не совершайте таких ошибок! Всем удачи и хорошего настроения!

Показать полностью 2
0

Ящуры с Поволжья

Долго не решались, но по многочисленным просьбам тестеров и игроков решились.

Ящуры с Поволжья

Встречаете новую расу - Ящуры с Поволжья.
Точнее с Байкала, со стороны севера Гипербореи.

Редкий вид, особо живучий и размножающий был в 1-6 веках нашей эры.
Во второй половине 6 века пошел на спад благодаря заселению Русинов.

Раса будет доступна уже в первой версии игры, после выхода в ранний доступ в Steam.
Сделавшим предзаказ Gold Edition будет доступен бонус в виде пета Русина, а также вида одежды, от кленового листа с шапочкой из фольги, распашонки и шаровар до мундира времен первой мировой.

Подробности позже.

Показать полностью 1
7

Как отлавливать такие баги?

Как у меня подгорает сегодня! Опять на поиск очередного бага убил пару часов.

При удалении юнита обновляется информация на клиенте и на сервере. Но юнит опять появляется на карте клиента. Почесал репу, проверил логику, все правильно. Что делать? Написал проверку есть ли на клиенте юнит на карте - юнита нет. Написал проверку есть ли юнит на карте сервера - нет юнита. Но на следующий ход он появляется и только на клиенте.

Архитектура у меня такая, что на сервере содержится карта мира и карта видимая только игроком которая транслируется на клиент. Пишу проверку есть ли юнит на видимой карте клиента - юнит есть! Проблема значит в методе updateStateRemoveUnit на видимой карте игрока хранящейся на сервере.

Захожу в метод а там TODO… Там пару строк кода то надо было написать… А я видимо на что-то отвлекся и спустя какое-то время благополучно забыл об этом.

Вот как отлавливать такие баги? :)

Показать полностью 1
17

Генератор персонажей

Генератор персонажей

Начали работу над портретами персонажей.
Хотя я не называю их персонажами, а называю личностями. Это советники, дипломаты, генералы, губернаторы, религиозные деятели и какие-то квестовые персонажи.
У нас будет генератор персонажей вот с такими портретами для каждой игровой расы.

Показать полностью 1
9

Тильт1

Тильт

Давно не было новостей. Решил наконец на прошлой неделе проблему с рассинхроном анимации передвижения юнитов. Взялся за рутинные задачи по привязке событий к интерфейсу и от этой рутины впал в тильт... Мозг хочет решать сложные задачи. Как избавиться от этой проблемы не знаю. Вероятный ответ - быстрее покончить с рутиной.

Показать полностью 1
12

Массивная река

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

Массивная река
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества