Как стать автором
Обновить

Создание простого 3D приложения с помощью ShiVa3D

Время на прочтение 3 мин
Количество просмотров 29K
ShiVa3D LogoВ этом году на Хабре довольно популярными стали статьи про написание игр на Unity3D. Но почему-то ещё никто не рассказывал про конкурентов. Сегодня я расскажу о самом главном (на мой взгляд) конкуренте – ShiVa3D.

Небольшой обзор


ShiVa3D – трехмерный игровой движок с графическим редактором, предназначенным для создания приложений и игр для веб, консолей и мобильных устройств.
С помощью Шивы можно делать программ и игры для Windows, Linux, Mac OS, iOS, Android, Palm OS и Wii. Так же имеется плагин для просмотра 3D прямо в браузере.

ShiVa3D состоит из четырёх частей: Редактор, Игровой движок, Инструмент разработчика (программа для сборки проектов) и Сервер.

Игровой движок Шивы базируется на Open GL или DirectX графике и физике ODE. Движок умеет рисовать ландшафт, океан и различные трехмерные модели с использованием шейдеров. Имеется статическое и динамическое освещение и тени, динамические частицы, различные эффекты, анимации, элементы пользовательского интерфейса, возможность создания многопользовательских игр и воспроизведение звуков. Движок расширяется при помощи плагинов, можно например, заменить ODE физику на PhysX.

Встроенный WYSIYWG редактор позволяет создавать игры и приложения с использованием всех возможностей движка. Для программирования в основном используется Lua, но можно писать оптимизировать скрипты на C++. Редактор имеет 4 редакции: PLE (free), Basic (€169), Advanced (€1499), Educational (free). Чем «круче» редакция, тем больше плюшек доступно. Сейчас редактор работает только под Windows, но в следующей версии обещают кроссплатформенность.

Пример приложения


Хотя с редактором идёт много различных демок, я всё же расскажу, как сделать своё приложение. Я использую PLE редакцию, которую можно скачать c официального сайта.



На первый взгляд шива имеет не очень дружелюбный интерфейс. Но он имеет несколько плюсов:
— Все разделено на рабочие столы (по умолчанию их пять, но можно сделать до восьми)
— Любой рабочий стол можно настроить (расставить окна по одному из шаблонов и изменить набор табов)

Итак, начнём создание первого приложения.
Первым делом в окне Game Editor создаём новую игру (Game → Create). Далее нужно создать сцену, для этого в том же окне нажимаем Edit → Scene → Create. После создания, сцена сразу же загрузится в Scene Viewer.

Приступим к наполнению сцены. Этим принято заниматься на десктопе «Design».
Для начала создадим ландшафт. В окне Terrain Editor нажимаем Terrain → Create и в появившейся форме задаём Chunk Count = "4x4" (для начала хватит). После нажатия кнопки ОК мы увидим ровную плоскость в Scene Viewer. Для придания формы нужно выделить все куски (Chunks) и в разделе Geometry добавить карту высот шум (Noise). Внизу отмечаем чек бокс «Auto Update» и регулируем ползунки по вкусу. Далее разнообразим серую массу светом. В Terrain Editor в разделе Material отмечаем все четыре чек бокса, после чего находим в Data Explorer, в папке Models «DefaultDynamicLightSet» и перетаскиваем на сцену. Теперь мы можем увидеть что-то похожее на горнолыжный курорт, если вам это не нравится, то мы «натянем» текстуру земли. Для этого всё в том же разделе добавляем новый материал, поле «Albedo Map» в форме создания нового материала задаёт текстуру (я выбрал st_rockcanyon). После создания материала нужно нажать кнопку «Preview» напротив «Texture». Дистанция прорисовки текстур довольно мала, поэтому может будет нужным приблизить камеру.

Камера управляется с помощью трёх комбинаций клавиш:
— Alt + левая кнопка мыши – поворот камеры
— Alt + правая кнопка мыши – приближение/отдаление камеры
— Alt + средняя кнопка мыши – перемещение камеры по сторонам

Далее сделаем небо. Находим Ambience Editor (другая вкладка в том же окне где и Terrain Editor) и в разделе Sky ставим текстуры неба в соответствующие поля (для bottom можно не ставить). Мне нравятся текстуры skyblue.

Для полного комплекта не хватает воды… Океан делается в соответствующем разделе Ambience Editor (раздел Ocean). Всё что нужно, это отметить самый первый чек бокс «Enable Ocean» и настроить всё остальное по своему вкусу.

В принципе всё. Вот только кода для запуска не хватает…

Идём на рабочий стол «General» и создаём новый AI Model (Game Editor → Edit → User Main AI → Create).
Далее на рабочем столе «Code» нажимаем «Add Handler» и выбираем onInit.
В теле функции пишем
application.setCurrentUserScene("MyScene") -- MyScene нужно заменить на название вашей сцены

Сохраняем и компилируем код. Далее можно идти на рабочий стол «Preview» и смотреть, что у вас получилось. У меня получилось вот такое:


Итоги


ShiVa не сложный движок. Он подойдёт разработчикам игр с небольшим бюджетом. Так же на официальном сайте есть дизайны интерьеров, выполненные с помощью шива. Если вы захотите сделать что-нибудь более серьёзное на ShiVa, то будет полезным почитать туториалы и документацию на странице для разработчиков.
Теги:
Хабы:
+24
Комментарии 19
Комментарии Комментарии 19

Публикации

Истории

Работа

Ближайшие события

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн