Дневник разработки №48
Это видимо самый долгий по написанию и хотелось бы верить долгожданный дневник разработки. Спера дневник откладывался из-за обилия новостей о поездке на ИГРОПРОМ и потом множество ивентов смещало акцент от дневника в сторону.
За написание я садился не один десяток раз, но постоянно все сливалось в какое то нытье что все идет не по плану и полученный заряд энергии от ивентов уходит в сторону.
Я пишу действительно глобальную стратегию в которой должен быть виден масштаб всего происходящего с первых минут игр. И первое что видит игрок в нашем проекте, это масштабность игровых карт.
Я проводил сравнение размеров карт, возможно они уже не точны и что-то изменилось с тех пор.
Каждый свой рабочий сезон над проектом я начинаю с доработки игровой карты, рендера или допиливанием движка. Это позволяет мне быстрее включиться в процесс разработки.
За все время разработки я потратил много времени на изучение алгоритмов генерации карт и провел много экспериментов, чтобы найти лучшее решение. В результате моих усилий, новая система генерации работает очень быстро и позволяет создавать огромные карты быстро и без задержек. Я очень доволен результатом своей работы, думаю, что новая система генерации карт сможет удивить и заинтересовать игроков. Конечно, в будущем я планирую дополнять систему новыми элементами и возможностями, чтобы еще больше увеличить разнообразие игрового мира.
Весь зимний сезон я занимался параллельно несколькими взаимосвязанными задачами.
Первая задача была переписать всю генерацию под генерацию по сиду (Сид, (от англ. random seed от seed — зерно, начало) — значение, состоящее из символов (включая цифры), которое используется в качестве основы при генерации игрjвого мира).
Вторая задача - ввести понятие разности высот. Оказалось достаточно сложной задачей, особенно в плане прокладки рек.
Третья задача возникла в читерском режиме, когда игроку видна вся карта, была явная проблема с фризами при загрузке новых видимых областей.
Пришлось провести работу над оптимизацией загрузки ресурсов. Я решил использовать параллельную загрузку ресурсов в разных потоках, чтобы ускорить процесс загрузки и внедрил предзагрузку ресурсов, чтобы уменьшить время ожидания. Загрузка ресурсов стала значительно быстрее, что повысило общую производительность игры.
Но еще предстоит провести работу в плане дополнительной оптимизации процесса загрузки ресурсов доработать функцию кэширования.
Четвертая задача, это реализация всех юнитов первой эпохи для шести рас и анимаций для них. Мы справились с этой задачей.
Пятая задача состояла в том чтобы доделать паки строений всех рас. Мы практически справились с этой задачей, осталось совсем немного - специализированные здания (охотничьи лагеря, шахты, карьеры, лесолилки, пастбища и поля).
Шестая задача - реализовать программно масштабируемый интерфейс пользователя. И эту задачу мы решили - https://youtu.be/eUzagW2fErQ
Седьмая задача состояла в написании второй итерации музыкального сопровождения к игре. Тоже готово. Осталось теперь сделать переходы и паузы между музыкой.
Ближайший план
Планируемые задачи должны быть решены до 20 ноября 2024 года, новый билд повезем на ИГРОПРОМ.
Движок:
- Оптимизация функции кэширования.
- Оптимизация загрузки моделей.
- Реализация управления музыкальными треками.
Модели:
- Все модели строений первой эпохи.
- Модели животных и их анимация.
Текстуры - обновить текстуры карты. Задача сложная (либо затратная) и пока под вопросом.
UI/UX
- Реализовать основной игровой интерфейс.
- Новое оформления окна юнита и кнопок управления.
- Новые значки юнитов и городов.
- Наконец сделать интерфейс города.
Геймплей
- Придется переписать кучу кода в рамках новой парадигмы клиент-сервер. Огромная работа за которую даже страшно браться.
- Программная реализация интерфейса города.
- Доделать взаимодействие города с окружающим миром.
- Доделать потребление и добычу ресурсов юнитами.
- Реализация научной ветки первой эпохи.
Работа движется, уже начал потихоньку возвращаться к проекту после своего летнего рабочего сезона.
Скоро будет много интересных новостей!