Дневник разработки №46

Сегодня хотел поговорить про визуальную часть The Great Tribes.

Если вспомнить с чего все начиналось, то самые первые скриншоты, которые мне удалось быстро найти, датированы 16-17 годами. Все текстуры террейна были позаимствованы из 3й Цивилизации. А вот над горами, реками, растительностью и прочими поверхностями я проводил свои эксперименты.

Тогда ни о каком 3D и речи не шло. Когда я начинал проект, у меня не было опыта работы с 3D, если не считать студенческие годы, я не планировал тогда делать 3D-игру.

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

Объём выводимой на экран информации рос с каждым новым билдом и стало понятно, что доступными средствами Java, этого не сделать. Архитектура Java не позволяет напрямую обращаться к видеокарте и поэтому взор упал на низкоуровневую библиотеку - LWJGL.

LWJGL обеспечивает кроссплатформенный доступ к популярным нативным API для разработки как графических (OpenGL, Vulkan), так аудио (OpenAL) приложений и инструментов для параллельных вычислений (OpenCL). После двух лет разработки я с головой окунулся в 3D.

Большая работа по изучению возможностей LWJGL и в частности ОpenGL не прошла напрасно, в текущем рабочем билде игра выглядит так:

Очень много времени у меня ушло на понимание того, что я хочу получить на выходе. Многие меня упрекали что я уделяю мало времени геймплею, и в какой-то мере они правы, ведь на выходе я хочу получить игру:) Последние два года я усердно пилил игру, иногда отвлекаясь на исправление незначительных багов в графическом движке и в работе интерфейса.

Грядущее обновление

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

Пришлось пересмотреть и внести коррективы в реализацию, четко разделив сервер и клиент.

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

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

В ходе работы был найден баг который ломал работу нормалей (Normal Map), но теперь все работает должным образом. Заодно я подправил освещение и тени.

Мне кажется картинка стала более насыщенной. Неправда ли?
Мне кажется картинка стала более насыщенной. Неправда ли?

Помимо гор, рек и прочей геологии мы наконец реализовали в игре все основные жилые постройки и районы рас первой игровой эпохи.

К завершению идет работа над персонажами в игре. Мы уже замоделили всех персонажей первой эпохи, осталась их анимация!

<p>Думаю вы можете упрекнуть меня в редком выходе дневников разработки. Признаюсь, хотелось бы выпускать их чаще. Но бывают такие моменты, когда я с головой погружаюсь в работу и не вижу ничего вокруг. Яркими моментами я стараюсь делиться в лентах всех наших ресурсов. В следующем сезоне разработке постараюсь вернуться к традиции - выпуску дневников разработки раз в месяц. </p><a href="https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fvk.com%2Faway.php%3Fto%3Dhttp%253A%252F%252Fthegreattribes.com%26amp%3Bcc_key%3D&postId=1932852" rel="nofollow noreferrer noopener" target="_blank">www.thegreattribes.com</a>

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

www.thegreattribes.com
2323
7 комментариев

Спасибо, интересно.
А как вообще Java-игра с точки зрения быстродействия работает?

1

Все отлично работает. Задачи параллелятсяна ура.

1

Это выглядит просто потрясно

1

Ты фултайм работаешь над игрой или в свободное время?

В свободное от работы время. Единственный момент, зимой у меня много свободного времени :)