TerraPath #0

Анонс новой игры TerraPath.


Я большой фанат RimWorld'а. Бесспорно рим очень великая игра. Но иногда мне хотелось просто взять человечка и как в режиме Adventure в Dwarf Fortress пойти гулять по миру, сохраняя при этом возможность строить. Идея оказалась интересной, только вот игр таких не оказалось. Ну что же если что-то хочешь сделай это сам.
С этого и началась разработка данной игры.

Основой в игре будет выступать планета. Её полностью можно будет обойти и она будет зациклена. Ресурсы будут ограничены. Ну потенциально. Ибо на огромных планетах будет просто нереально всё вскопать.
Планета будет состоять из биомов. Которые в свою очередь будут различаться местной фауной, полезными ископаемыми и растительностью, а также температурой. Я решил сохранить температуру как сильный игровой фактор. Что будет заставлять игрок при проектировании базы учитывать это. А также это позволить замораживать и изжаривать своих врагов. Также будут учитываться осадки.
Проекция будет двухмерной с видом сверху как в риме. Будут два слоя: [Объекты|стены|деревья и тд][пол]. В целом в графическом плане я буду ориентироваться больше на римворлд.
Развитие в игре будет идти поэтапно и больше будет напоминать TerraFirmaCraft. Это будет конечно сложно балансить по началу. Но думаю так будет интереснее, когда можно будет развиться от каменного оружия до высокотехнологических бластеров.
Ну и конечно самое главное в игре будет мультиплеер.

Теперь немного про технологический стек:
Игра будет писаться на Java с использованием LWJGL для получения апи к OpenGL и OpenAL.
Писаться будет на собственном движке(свой велосипед), на котором уже вышло 2 игры.

Основными источниками вдохновения являются: RimWorld, Terraria и TerraFirmaCraft.

Ну начнём...
Вот так выглядит игра на момент написания этой статьи(графика не финальная):

TerraPath #0 Gamedev, Игры, Разработка игр, Разработка, Rimworld, Terraria, Длиннопост

Здесь прогресс за 26 дней. Уже есть очень много разных фич: начиная от строительства и крафтинга, заканчивая генерацией и цветным освещением.

Началось всё с созданием проекта. Дальше накидав примерную архитектуру я приступил к работе. Был создан игрок в виде фиолетового прямоугольника. И чанки. Чанк был размером 16*16 и хранил в себе пока что только цвет пола.
Мир состоял из 3*3 чанков. Но я пошёл дальше и сделал его бесконечным.
Делалось это очень просто:
По сути дела эта были всё те же 3*3 чанка. Но теперь обращаясь к чанку в позиции [x, y] я делил координаты по модулю. Из-за чего каждый чанк ссылался на тот массив из 3*3 чанков. А так как игрок находился всегда в центральном чанке и они занимали всю область видимости экрана даже при FullHD, то игрок не замечал подвоха. А цвет сохранялся за счёт шумой функции которая его рассчитывала на основе позиции чанка.

TerraPath #0 Gamedev, Игры, Разработка игр, Разработка, Rimworld, Terraria, Длиннопост

При тестах сразу было выявлено что игрок ходит по диагонали быстрее чем по отдельным осям. Быстренько исправив это. Я приступил к проработке объектов. Они должны были удовлетворять несколько условий:

1)Они должны занимать несколько клеток.
2)У них может быть переопределен рендер, для наложение различных шейдерных эффектов.
3)Они могут содержать в себе динамические данные, такие как инвентарь, прочность, цвет и тд.
Но а как я всё это решил, я расскажу в след раз.

Ссылка на группу в вк:
https://vk.com/terrapath

PS: Прощай readonly, привет первый пост.

Лига Разработчиков Видеоигр

6.7K постов22.1K подписчика

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"