Собрал небольшую демо для win и linux. Этот экспериментальный прототип фокусируется на игре с видом сверху, и реализации системы бесконечного уровня в движке Godot. Биомашинки в комплекте.
Проект Биом задуман как аркадное путешествие по открытому миру/мирам, на биологическом или технологическом средстве передвижения. Конкретно в этой игре камера закреплена сверху и различные игромеханики рассчитаны на такой ракурс (хотя для записи видео и тестов я иногда использую нестандартный вид). Помимо чисто технических плюсов и минусов использования разных камер, разные ракурсы подразумевают и немного разный подход к организации геймплея.
В прототипе реализована система бесконечного уровня (пока только вдоль одной оси). На текущий момент доступен один уровень, по которому можно бесконечно ехать в двух направлениях, а прочие блокируются двумя стенами.
Пара слов о том, как это устроено (в принципе довольно базовые вещи, никаких особых откровений). Текущий игровой мир состоит из двух зон (условно зелёная и синяя), каждая внутри себя разбита на 4 участка. Когда машинка задевает триггер определённого участка, то уровень проверяет — требуется ли переложить одну из зон так, чтобы все выходы из данного участка вели к прочим участкам, а не в пустоту.
Игрок касается участка, прохождение которого выведет его за внешнюю границу уровня, и вторая зона перекладывается в направлении движения игрока, чтобы его снова окружали другие доступные участки.
Данная реализация несколько избыточна для текущего частично бесконечного уровня ограниченного двумя стенами, можно было сделать в каждой зоне всего по 2 участка, однако это задел на возможные полностью бесконечные уровни, продолжающиеся во все стороны (как будто путешествуешь по некоей планете).
В целях оптимизации уровня обе его зоны состоят из некоторого количества плиток, которые в редакторе отображаются простыми кубами (помимо всего прочего экономя память редактора), а на старте игры подгружают в себя нужный кусочек поверхности.
В скрипте каждой плитки выставлен ID, по которому она подцепит нужный фрагмент.
Теперь подробнее про сам геймплей. На старте игрок вбирает одну из машинок и появляется в игровом мире. Машинки умеют прыгать, стрейфиться, и стрелять, если подберут специальное живое оружие, бегающее по карте. Если машинка уничтожена (от вражеских выстрелов или соприкосновения со взрывоопасными грибами), то на её месте остаётся душа (нематериальная бессмертная сущность), которая может вселиться в новую оболочку. Машинка перевозит условные грузы (зелёные ящички), которые можно подбирать или выкидывать.
На карте присутствуют два специальных убежища, где отображаются заглушки интерфейса «купли/продажи». Два первых предмета из инвентаря можно «продать», обменяв на специфическую «валюту» — «свежесть» (вторая «валюта», «прах», пока не задействована, её просто можно увеличить нажав на самый нижний предмет). При выходе из убежища день меняется на ночь (или наоборот).
Видеонарезка с моментами геймплея демо-версии. Используемый игровой движок — Godot engine 3.2.3, рендер gles3
Скачать демо для своей ОС (windows 64 — .exe, linux — .x86_64) можно на страничке itch.io (вес архива около 60Мб):
https://thenonsense.itch.io/biome
Подсказки по управлению показываются в игре при нажатии кнопки Enter, внутри открывающегося инвентаря.
WASD — передвижение
мышь — частичное прицеливание (и влияние на автокамеру)
Пробел — прыжок
Левая кнопка мыши — выстрел
Q,E — стрейф
1 — включить/выключить автокамеру
2,3 — приблизить/отдалить камеру
PgUp — случайный импульс
Также оставлены специальные опции для тестирования, которых в норме не должно быть у игрока (отмечены красным во внутриигровой подсказке):
4 — большая степень приближения камеры
Home — превратиться в душу либо в базовую машинку
End — создать врага
PgDown — создать живое оружие
Недавно появившийся в прототипе летающий транспорт — веретенолёт.
Также есть видео из другого прототипа на Unigine engine, с более ранней версией этой биомашинки:
Проект Биом задуман как аркадное путешествие по открытому миру/мирам, на биологическом или технологическом средстве передвижения. Конкретно в этой игре камера закреплена сверху и различные игромеханики рассчитаны на такой ракурс (хотя для записи видео и тестов я иногда использую нестандартный вид). Помимо чисто технических плюсов и минусов использования разных камер, разные ракурсы подразумевают и немного разный подход к организации геймплея.
Архитектура уровня
В прототипе реализована система бесконечного уровня (пока только вдоль одной оси). На текущий момент доступен один уровень, по которому можно бесконечно ехать в двух направлениях, а прочие блокируются двумя стенами.
Пара слов о том, как это устроено (в принципе довольно базовые вещи, никаких особых откровений). Текущий игровой мир состоит из двух зон (условно зелёная и синяя), каждая внутри себя разбита на 4 участка. Когда машинка задевает триггер определённого участка, то уровень проверяет — требуется ли переложить одну из зон так, чтобы все выходы из данного участка вели к прочим участкам, а не в пустоту.
Игрок касается участка, прохождение которого выведет его за внешнюю границу уровня, и вторая зона перекладывается в направлении движения игрока, чтобы его снова окружали другие доступные участки.
Данная реализация несколько избыточна для текущего частично бесконечного уровня ограниченного двумя стенами, можно было сделать в каждой зоне всего по 2 участка, однако это задел на возможные полностью бесконечные уровни, продолжающиеся во все стороны (как будто путешествуешь по некоей планете).
В целях оптимизации уровня обе его зоны состоят из некоторого количества плиток, которые в редакторе отображаются простыми кубами (помимо всего прочего экономя память редактора), а на старте игры подгружают в себя нужный кусочек поверхности.
В скрипте каждой плитки выставлен ID, по которому она подцепит нужный фрагмент.
Игра
Теперь подробнее про сам геймплей. На старте игрок вбирает одну из машинок и появляется в игровом мире. Машинки умеют прыгать, стрейфиться, и стрелять, если подберут специальное живое оружие, бегающее по карте. Если машинка уничтожена (от вражеских выстрелов или соприкосновения со взрывоопасными грибами), то на её месте остаётся душа (нематериальная бессмертная сущность), которая может вселиться в новую оболочку. Машинка перевозит условные грузы (зелёные ящички), которые можно подбирать или выкидывать.
На карте присутствуют два специальных убежища, где отображаются заглушки интерфейса «купли/продажи». Два первых предмета из инвентаря можно «продать», обменяв на специфическую «валюту» — «свежесть» (вторая «валюта», «прах», пока не задействована, её просто можно увеличить нажав на самый нижний предмет). При выходе из убежища день меняется на ночь (или наоборот).
Видеонарезка с моментами геймплея демо-версии. Используемый игровой движок — Godot engine 3.2.3, рендер gles3
Скачать демо для своей ОС (windows 64 — .exe, linux — .x86_64) можно на страничке itch.io (вес архива около 60Мб):
https://thenonsense.itch.io/biome
Подсказки по управлению показываются в игре при нажатии кнопки Enter, внутри открывающегося инвентаря.
WASD — передвижение
мышь — частичное прицеливание (и влияние на автокамеру)
Пробел — прыжок
Левая кнопка мыши — выстрел
Q,E — стрейф
1 — включить/выключить автокамеру
2,3 — приблизить/отдалить камеру
PgUp — случайный импульс
Также оставлены специальные опции для тестирования, которых в норме не должно быть у игрока (отмечены красным во внутриигровой подсказке):
4 — большая степень приближения камеры
Home — превратиться в душу либо в базовую машинку
End — создать врага
PgDown — создать живое оружие
Бонус
Недавно появившийся в прототипе летающий транспорт — веретенолёт.
Также есть видео из другого прототипа на Unigine engine, с более ранней версией этой биомашинки: