- PVSM.RU - https://www.pvsm.ru -
Тот, кто интересуется миром игровых движков, знает, что с первого декабря 2015 года бывший Paradox3D сменил название на Xenko, но так как на Хабре нет туториалов ни по первому, ни по второму — я решил сделать небольшую статью для тех, кто хочет попробовать что-то новое (или не очень) и рассказать об особенностях Xenko. Если вас это заинтересовало — добро пожаловать под кат!
Движок практически open-source (GitHub [1]), под лицензией GPL v3, использование его бесплатное в двух случаях:
Насчет других вариантов лицензии нужно связаться с разработчиками.
Последняя версия Xenko (на момент написания — 1.5 Beta) поддерживает запуск только на 64-битной версии Windows 7 SP1+/8+/10, для написания скриптов требуется наличие одного из следующих IDE:
Поддержка платформ для которых можно делать игры желает лучшего. Сейчас можно разрабатывать для семейства Windows (Desktop, Store, 10 Universal, Phone), а также для Android и іOS (только с наличием лицензии Xamarin), но Silicon Studio уверяет, что скоро будет и на MacOSX, и на Linux, и даже на next-gen консолях.
Первым делом нужно установить сам движок, а также дополнительные элементы для работы с .NET. Установка вместе с загрузкой всего ПО занимает порядка 25 минут. С Xenko Launcher'а можно как установить новую версию, так и переключаться между установленными версиями.
Запускаем нужный вариант, создаем новый проект (все настройки можно оставить по умолчанию) и ждем пока загрузится наш Xenko Studio.
Нас встречает довольно обычный UI, отдаленно напоминающий Visual Studio.
Для запуска игры достаточно нажать F5 — ваш проект скомпилируется и запустится с помощью MSBuild (что, кстати, не очень быстро).
Добавлять новые сущности можно с помощью "+" слева, а новые ресурсы — снизу.
Выбрав предмет, все его свойства можно просмотреть в окне справа (Property Grid). Здесь и трансформация, и текстуры, и физика, и другие компоненты.
Между прочем, без ресурса текстуры наша модель не будет отображаться (это можно сделать, нажав на небольшую «руку» во вкладке Material.
На этом визуальные способности практически заканчиваются. Среди недостатков навигации можно отметить сложность управления в 3D пространстве (главные функции осуществляются с помощью WASD и Shift/Alt + ЛКМ/ПКМ/СКМ) и невозможность отобразить область столкновения (collision volume), что в некоторых случаях существенно усугубляет ситуацию.
Поскольку Xenko Studio хорошо работает в связке с Visual Studio — я его и использую. Сверху в меню выбрав VS, нам откроется наш проект в Visual Studio.
В том же Solution Explorer можно увидеть, что сейчас есть только один файл (MyGameApp.cs в моем случае), который запускает нашу игру. Если вы при создании проекта выбрали больше платформ — у вас будет отдельные каталоги под каждую платформу.
Для примера заставим нашу модель двигаться. Сначала нужно создать отдельный класс Moving.cs и добавить в него код ниже.
using System;
using SiliconStudio.Xenko.Engine;
namespace MyGame
{
public class Moving : SyncScript //скрипт должен запускаться со Студии, поэтому делаем его public
{
public override void Update() //наш код будет выполняться каждый фрейм
{
if (Game.IsRunning) //проверяем, запущена ли игра
{
//если нажали стрелку влево/вправо - двигаем по оси X
if (Input.IsKeyDown(SiliconStudio.Xenko.Input.Keys.Right))
{
this.Entity.Transform.Position.X += 0.1f;
}
if (Input.IsKeyDown(SiliconStudio.Xenko.Input.Keys.Left))
{
this.Entity.Transform.Position.X -= 0.1f;
}
//если нажали стрелку вверх/вниз - двигаем по оси Z (не Y, т.к. это вертикальная ось)
if (Input.IsKeyDown(SiliconStudio.Xenko.Input.Keys.Up))
{
this.Entity.Transform.Position.Z += 0.1f;
}
if (Input.IsKeyDown(SiliconStudio.Xenko.Input.Keys.Down))
{
this.Entity.Transform.Position.Z -= 0.1f;
}
}
}
}
}
Сохраняем в папке MyGame.Game; проверяем нет ли ошибок (Ctrl+Shift+B билдит проект).
В Xenko Studio, выбрав нашу сферу, кликаем Add component -> Scripts и добавляем наш скрипт.
Билдим (ждём), и видим, что наша сфера двигается при нажатии на стрелки. Если у вас нет в списке нашего скрипта — скорее всего нужно перезагрузить проект (File -> Reload Project) или у вас ошибки в коде.
P.S. если ваша сфера двигается не туда куда надо — измените в коде -= на += и наоборот. Это зависит от расположения камеры
К сожалению, документации [2] не так и много, та, что есть, часто неправильная или просто отсутствует, а движок слишком сырой, чтобы было большое комьюнити.
Поэтому полагайтесь только на свои силы и на помощь зала [3].
Xenko — довольно интересный движок, но т.к. на стадии beta — не может пока предложить что-то очень новое для мира GameDev'а. Если вы работали в Unity — вам будет легко работать в Xenko. Для новичков же он покажется слишком сложным и непонятным, но, думаю, в ближайших релизах это исправят.
Плюсы:
Минусы:
Автор: SpyceR
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-2/110219
Ссылки в тексте:
[1] GitHub: https://github.com/SiliconStudio/xenko
[2] документации: http://doc.xenko.com/latest/
[3] зала: http://forums.xenko.com/
[4] Источник: https://habrahabr.ru/post/275859/
Нажмите здесь для печати.