Project Hedra — амбициозная RPG с открытым миром и низкополигональной графикой, в которой игроки выбирают класс, исследуют бесконечные процедурно генерируемые миры, открывают навыки и выполняют процедурно генерируемые задания. Проект начался, когда его создателю было около 15 лет, как способ изучить принципы работы OpenGL. Вскоре разрастание объёма взяло верх, и через несколько лет проект превратился в полноценную трёхмерную игру и игровой движок. Объём кодовой базы составляет около 100 тысяч строк, с полноценной поддержкой Linux и Windows.
Игра предлагает широкий набор возможностей: процедурно генерируемые миры, задания и боссов, более 100 предметов с системой редкости и древо навыков с десятками умений. Игроки могут выбрать один из четырёх классов, каждый из которых имеет две специализации, а также ловить рыбу, создавать предметы, торговать, нанимать спутников и питомцев и перемещаться между различными измерениями. Движок не менее обширен: в нём есть современный рендерер OpenGL, поддержка скиннированных мешей и анимации, отражения в экранном пространстве и ambient occlusion, интеграция со Steam, поддержка модов и скриптов на Python, а также система чанков для бесконечных миров.
Среди технических особенностей — рендерер мира, который отрисовывает весь мир примерно за три вызова отрисовки с помощью multi-draw элементов OpenGL, и рельеф, созданный алгоритмом Marching Cubes, методом извлечения изоповерхностей. Название проекта происходит от тетраэдров — формы, используемой в алгоритме Marching Tetrahedra, который создатель изначально реализовал. У мира нет файла сохранения: хранятся только данные игрока и сид мира, а всё остальное генерируется во время выполнения.
Создатель отмечает, что модели игры хранятся в виде простых текстовых файлов .PLY и .DAE без текстур, то есть проект по сути представляет собой текст, который считывается и превращается в интерактивные изображения. Проект был опубликован на Hacker News.
Источник: Hacker News · Сводку подготовил HeadlinesBriefing