Название (рабочее): Yoxel
Средства разработки: XNA, С#
Начало разработки: 26 октября 2012
Суть проекта: Воксельный движок с графикой в пиксель-арт стилизации
Цель разработки: Создание технологической базы для дальнейшей разработки игр с тактическими боями в относительно локальных условиях
Текущее состояние разработки: У меня все хорошо :)
Начальное состояние тестового полигона (по факту полигон заполнен однородным серым материалом №1)
Тестовый полигон после "расстрела" (радиальный излучатель в центре полигона + сфокусированный у центра левой нижней границы)
Видео работы сфокусированного излучателя (частицы вылетают, когда нажата кнопка)
Внедрено в движок:
• Воксельный мир (материалы, прочность, цвета, связи)
• 2д рендер
• Система визуальных частиц
• Система физических частиц (результат взаимодействия виден на картинках)
В активной разработке:
• Динамические объекты
Приоритет дальнейших доработок:
• Скелетная компоновка динамических объектов
• Улучшение 2д рендера (для красивой отрисовки сложных объектов)
• Оптимизация движка
• Редактор объектов
• Физическое взаимодействие мира/динамических объектов
• Инверсная кинематика скелетных объектов
каким образом рассчитываются повреждения? каким образом они визуализируются? если разрушение считается процедурно, почему отверстие от сфокусированного эммиттера строго прямоугольной формы?
На анимацию бы разрушения посмотреть.
Suslik
> строго прямоугольной формы
Разве может быть иначе, если движок - воксельный?!
skypo
> Разве может быть иначе, если движок - воксельный?!
Перечитай вопрос:
Suslik
> почему отверстие от сфокусированного эммиттера строго прямоугольной формы?
Частицы не должны создавать строго прямоугольные дырки;они должна быть рваными.
А как по мне,на сколько я понял, это специально сделанные отверстия в стенках,дабы проверить пролет частиц.
Suslik
> каким образом рассчитываются повреждения?
Сейчас достаточно просто - у вокселя есть прочность, у физической частицы запас энергии, который расходуется на пробитие прочности 1 к 1. А дальше по мере следования через каждый воксель проверяется.
Позднее, когда будет больше материалов, добавлю твердость, бронепробиваемость и, возможно, другие параметры, чтобы в игровом плане материалы ощутимо отличались (например, горючесть, хрупкость).
Suslik
> каким образом они визуализируются?
Раз воксель уничтожен, он не показывается на экране :) Если воксель поврежден, он просто темнее.
Suslik
> если разрушение считается процедурно, почему отверстие от сфокусированного
> эммиттера строго прямоугольной формы?
Скажу даже больше - оно квадратное в поперечном сечении и трапецевидное в продольном :) Оттуда постепенно вылетает поток частиц с дисперсией по поперечным осям, поэтому они выедают квадрат в сечении, а засчет дисперсии происходит расширение потока.
skypo
> На анимацию бы разрушения посмотреть.
Добавил видео работы сфокусированного излучателя.
занимательная штука
ИПавлов
Воксели - это не только майнкрафт, да :)
да воксели многих на геймдеве интересуют и как в плане разрушаемости, так и в плане повышения производетельности видео системы
ИПавлов
Воксели действительно позволяют решить или просто обойти ряд проблем. Кое-где можно красиво снизить ресурсы на разработку. Но при этом возникают другие вопросы и трудности, которые тоже надо как-то решать.
И производительность - это еще та задачка. Постоянно приходится метаться между затратами памяти, количеством расчетов, хитрыми и не хитрыми алгоритмами. Причем "ползунки" можно перетягивать между всем этим в очень широких пределах.
Приложение с тестовым полигоном занимает на диске 25кб + 4кб на шрифт, а в памяти разрастается до 160 метров.
В принципе, я планирую уместиться в гигабайт памяти при адекватном размере игрового поля для тактической игры - где-то 80 на 120 "фигурок". Например, похожий размер поля в XCom, Fallout.
TakeTurbine
не очень понравилось, что каждая частица взаимодействует с вокселями только на уровне "повредил-разрушил", поэтому оторванные воксели остаются висеть в воздухе.
Suslik
> не очень понравилось, что каждая частица взаимодействует с вокселями только на
> уровне "повредил-разрушил", поэтому оторванные воксели остаются висеть в
> воздухе.
Это специальный тип частиц, который будет использоваться для снарядов - он обладает более простой обработкой, но более динамичен. Они не совсем полноценно являются частью мира, хотя и присутствуют в нем.
А вот сейчас я делаю динамические объекты, которые уже являются полноценными кусочками мира и как-то в нем перемещаются.
Их реализация подразумевает физическое взаимодействие с окружением, в том числе ограничение движения, разворот от контакта, рикошет, ну, и силу тяжести (имеющиеся частицы тоже умеют двигаться с ускорением).
И вот уже после этого планируется добавить обрушения, когда после воздействия объекты или части объектов будут отделяться и двигаться в соответствии с причиной начала движения. Это достаточно комплексный обработчик, который должен будет обсчитать конструкцию и решить, что с ней делать.
Выглядит вполне! Жду игру в духе Voxtron, только круче! :)
вот это выгладит очень здоровско.
не хватает только перспективы
Интересное направление, воксели+пиксель арт... Возможно будующие пиксельные игры станут более интерактивными...
Мне задумка нравится, но работы еще крайне много для минимального функционала на котором будет возможно создать простую игру :)
Удачи!
Тема в архиве.