Сегодня хотел поговорить про визуальную часть The Great Tribes.
Если вспомнить с чего все начиналось, то самые первые скриншоты, которые мне удалось быстро найти, датированы 16-17 годами. Все текстуры террейна были позаимствованы из 3й Цивилизации. А вот над горами, реками, растительностью и прочими поверхностями я проводил свои эксперименты.
Тогда ни о каком 3D и речи не шло. Когда я начинал проект, у меня не было опыта работы с 3D, если не считать студенческие годы, я не планировал тогда делать 3D-игру.
Первое 3Д. Заработал генератор карт
Эксперименты с текстурами
Мысль о переходе в 3D пришла с мыслью, что нужно использовать аппаратное ускорение при отрисовке всей графики.
Объём выводимой на экран информации рос с каждым новым билдом и стало понятно, что доступными средствами Java, этого не сделать. Архитектура Java не позволяет напрямую обращаться к видеокарте и поэтому взор упал на низкоуровневую библиотеку - LWJGL.
LWJGL обеспечивает кроссплатформенный доступ к популярным нативным API для разработки как графических (OpenGL, Vulkan), так аудио (OpenAL) приложений и инструментов для параллельных вычислений (OpenCL). После двух лет разработки я с головой окунулся в 3D.
Большая работа по изучению возможностей LWJGL и в частности ОpenGL не прошла напрасно, в текущем рабочем билде игра выглядит так:
Очень много времени у меня ушло на понимание того, что я хочу получить на выходе. Многие меня упрекали что я уделяю мало времени геймплею, и в какой-то мере они правы, ведь на выходе я хочу получить игру:) Последние два года я усердно пилил игру, иногда отвлекаясь на исправление незначительных багов в графическом движке и в работе интерфейса.
Грядущее обновление
Последние четыре месяца я опять посвятил разработке движка, так как решил поменять концепцию структуры проекта. Ведь на первых порах я закладывал возможность, что игра будет сетевой, но потом понял что нужно отложить сетевую реализацию, так как один я не смогу реализовать столь масштабный пласт работы и все это затянется еще на более длительный срок. И по мере разработки я упустил и отдалился от этой концепции. Я держал в голове все изменения и планировал все исправить, но к проекту присоединились люди кто начал помогать мне с программированием и концепция начала ломаться в виду своей неочевидности.
Пришлось пересмотреть и внести коррективы в реализацию, четко разделив сервер и клиент.
В новой парадигме изменения коснулись и генератора карт, пришлось проштудировать весь код и устранить выявленные недочеты. Реализовать полноценную генерацию карты по сиду, что потянуло за собой переделку всех сущностей - океаны, моря, побережье, горы, холмы, реки, озера и леса.
Переделка зацепила и рендер нашего движка. Бала реализована параллельная загрузка ресурсов сохраняя и возможность их предзагрузки. Теперь модели и текстуры загружаются намного быстрее и не тормозят сам рендер.
В ходе работы был найден баг который ломал работу нормалей (Normal Map), но теперь все работает должным образом. Заодно я подправил освещение и тени.
Мне кажется картинка стала более насыщенной. Неправда ли?
Помимо гор, рек и прочей геологии мы наконец реализовали в игре все основные жилые постройки и районы рас первой игровой эпохи.
К завершению идет работа над персонажами в игре. Мы уже замоделили всех персонажей первой эпохи, осталась их анимация!
Думаю вы можете упрекнуть меня в редком выходе дневников разработки. Признаюсь, хотелось бы выпускать их чаще. Но бывают такие моменты, когда я с головой погружаюсь в работу и не вижу ничего вокруг. Яркими моментами я стараюсь делиться в лентах всех наших ресурсов. В следующем сезоне разработке постараюсь вернуться к традиции - выпуску дневников разработки раз в месяц.