TerraPath #0
Анонс новой игры TerraPath.
Я большой фанат RimWorld'а. Бесспорно рим очень великая игра. Но иногда мне хотелось просто взять человечка и как в режиме Adventure в Dwarf Fortress пойти гулять по миру, сохраняя при этом возможность строить. Идея оказалась интересной, только вот игр таких не оказалось. Ну что же если что-то хочешь сделай это сам.
С этого и началась разработка данной игры.
Основой в игре будет выступать планета. Её полностью можно будет обойти и она будет зациклена. Ресурсы будут ограничены. Ну потенциально. Ибо на огромных планетах будет просто нереально всё вскопать.
Планета будет состоять из биомов. Которые в свою очередь будут различаться местной фауной, полезными ископаемыми и растительностью, а также температурой. Я решил сохранить температуру как сильный игровой фактор. Что будет заставлять игрок при проектировании базы учитывать это. А также это позволить замораживать и изжаривать своих врагов. Также будут учитываться осадки.
Проекция будет двухмерной с видом сверху как в риме. Будут два слоя: [Объекты|стены|деревья и тд][пол]. В целом в графическом плане я буду ориентироваться больше на римворлд.
Развитие в игре будет идти поэтапно и больше будет напоминать TerraFirmaCraft. Это будет конечно сложно балансить по началу. Но думаю так будет интереснее, когда можно будет развиться от каменного оружия до высокотехнологических бластеров.
Ну и конечно самое главное в игре будет мультиплеер.
Теперь немного про технологический стек:
Игра будет писаться на Java с использованием LWJGL для получения апи к OpenGL и OpenAL.
Писаться будет на собственном движке(свой велосипед), на котором уже вышло 2 игры.
Основными источниками вдохновения являются: RimWorld, Terraria и TerraFirmaCraft.
Ну начнём...
Вот так выглядит игра на момент написания этой статьи(графика не финальная):
Здесь прогресс за 26 дней. Уже есть очень много разных фич: начиная от строительства и крафтинга, заканчивая генерацией и цветным освещением.
Началось всё с созданием проекта. Дальше накидав примерную архитектуру я приступил к работе. Был создан игрок в виде фиолетового прямоугольника. И чанки. Чанк был размером 16*16 и хранил в себе пока что только цвет пола.
Мир состоял из 3*3 чанков. Но я пошёл дальше и сделал его бесконечным.
Делалось это очень просто:
По сути дела эта были всё те же 3*3 чанка. Но теперь обращаясь к чанку в позиции [x, y] я делил координаты по модулю. Из-за чего каждый чанк ссылался на тот массив из 3*3 чанков. А так как игрок находился всегда в центральном чанке и они занимали всю область видимости экрана даже при FullHD, то игрок не замечал подвоха. А цвет сохранялся за счёт шумой функции которая его рассчитывала на основе позиции чанка.
При тестах сразу было выявлено что игрок ходит по диагонали быстрее чем по отдельным осям. Быстренько исправив это. Я приступил к проработке объектов. Они должны были удовлетворять несколько условий:
1)Они должны занимать несколько клеток.
2)У них может быть переопределен рендер, для наложение различных шейдерных эффектов.
3)Они могут содержать в себе динамические данные, такие как инвентарь, прочность, цвет и тд.
Но а как я всё это решил, я расскажу в след раз.
Ссылка на группу в вк:
https://vk.com/terrapath
PS: Прощай readonly, привет первый пост.


Так блэт, привет коллеге-тайлодрочеру, я пришёл критиковать твой графон (я в курсе, что он не финальный).
Спрайты игрока и, в меньшей степени, деревьев выглядят стрёмно по сравнению со всем остальным из-за пикселизации кривых. Почему бы не накатить немного сглаженных контуров?
Вода/песок, видны стыки, учти в будущем.
Сходство цветов стен с образцом-РВ слишком большое, мне пришлось лезть в текстуры РВ, чтобы убедиться, что они не тупо спижжены))
Коммерческое использование планируется?