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, привет первый пост.
Лига Разработчиков Видеоигр
6.7K постов22.1K подписчика
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"