Лицензия
Движок практически open-source (GitHub), под лицензией GPL v3, использование его бесплатное в двух случаях:
- Если вы используете оф. релизы, то можете делать сколько угодно игр без открытия исходного кода
- Также вы можете модифицировать и компилить движок, но тогда вместе с игрой должны выложить и исходный код
Насчет других вариантов лицензии нужно связаться с разработчиками.
Особенности разработки
Последняя версия Xenko (на момент написания — 1.5 Beta) поддерживает запуск только на 64-битной версии Windows 7 SP1+/8+/10, для написания скриптов требуется наличие одного из следующих IDE:
- Visual Studio 2012, 2013 или 2015 (начиная с версии Professional)
- Visual Studio Community 2013 или 2015
- Visual Studio 2012/2013 Express
- Xamarin Studio
Поддержка платформ для которых можно делать игры желает лучшего. Сейчас можно разрабатывать для семейства Windows (Desktop, Store, 10 Universal, Phone), а также для Android и іOS (только с наличием лицензии Xamarin), но Silicon Studio уверяет, что скоро будет и на MacOSX, и на Linux, и даже на next-gen консолях.
Начало работы
Первым делом нужно установить сам движок, а также дополнительные элементы для работы с .NET. Установка вместе с загрузкой всего ПО занимает порядка 25 минут. С Xenko Launcher'а можно как установить новую версию, так и переключаться между установленными версиями.
Запускаем нужный вариант, создаем новый проект (все настройки можно оставить по умолчанию) и ждем пока загрузится наш Xenko Studio.
Нас встречает довольно обычный UI, отдаленно напоминающий Visual Studio.
- Элементы сцены
- Обозреватель решений (все папки и файлы, которые имеют отношение к проекту)
- Просмотр ресурсов (ассетов). При выборе ресурса, он на мгновение подсвечивается.
- Предпросмотр ресурса; История действий; Зависимости (здесь две вкладки: Referencees — показывает все ассеты, которые нужны для текущего ресурса; Referencers — наоборот, показывает все ассеты, которые зависимы от текущего)
- Редактор свойств
Для запуска игры достаточно нажать 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. если ваша сфера двигается не туда куда надо — измените в коде -= на += и наоборот. Это зависит от расположения камеры
Поддержка, сообщество и документация
К сожалению, документации не так и много, та, что есть, часто неправильная или просто отсутствует, а движок слишком сырой, чтобы было большое комьюнити.
Поэтому полагайтесь только на свои силы и на помощь зала.
Заключение
Xenko — довольно интересный движок, но т.к. на стадии beta — не может пока предложить что-то очень новое для мира GameDev'а. Если вы работали в Unity — вам будет легко работать в Xenko. Для новичков же он покажется слишком сложным и непонятным, но, думаю, в ближайших релизах это исправят.
Плюсы:
- Open source
- Бесплатное использование в 99% случаев
- Отличный движок для рендера «с коробки»
- C# — отличный язык для скриптового программирования (субъективно)
Минусы:
- Поддержка только нескольких платформ, а сам Xenko Studio работает только на Windows (обещают исправить)
- Для разработки на Android/iOS нужна лицензия Xamarin (во втором случае — Business и выше + наличие MacBook)
- Недостаточно документации и небольшое сообщество, из-за чего не подойдет для новичков
- Нет причин переходить на Xenko с другого бесплатного движка (субъективно; думаю, это только пока)
Комментарии (20)
SirEdvin
25.01.2016 22:55+1Почему все внезапно начали писать игровые движки на C#? Есть какой-то невидимый профит?
SpyceR
25.01.2016 23:54C# — отличный язык для скриптового программирования (субъективно)
Думаю, это единственная причина. А еще Unity его использует — вот все и гонятся.
yadobr
26.01.2016 12:46Для скриптинга в играх он очень хорошо подходит. Удобночитаемый синтаксис. Много синтаксических фишек, по сравнению с С++.
Я, честно говоря, устал делать простые вещи на С++ в UE. C++ он для более низкоуровневых вещей. Если вам нужно, например, как в статье, менять положение модельки — С# очень хорошо подходит.
Для меня загадка, почему Epic не сделают поддержку C#.SirEdvin
26.01.2016 13:18Не особо понимаю, почему именно он.
Есть куча других языков, которые даже еще и кросс-платформены.yadobr
26.01.2016 13:57Видимо потому, что есть много разработчиков с опытом программирования/гемй-дева на си шарпе.
Ogoun
01.02.2016 18:07Отличная IDE (лучше еще не видел), приятный синтаксис языка (говорю сравнивая с C/C++/Delphi/basic/Javascript), наличие хорошо структурированной документации, кроссплатформенность. Открытый исходный код. Нет причин почему бы не выбрать этот язык.
UPD: конечно же строгая типизация еще
elmm
26.01.2016 12:51Судя по описанию и скриншотам это попытка сделать опенсорсный юнити.
Но пока единственным преимуществом выглядит поддержка более свежего шарпа. (чего в юнити с il2cpp вроде пока не предвидится).
Но при этом минус — надо покупать xamarin, который тоже денег стоит.
KumoKairo
А можете написать немного своих собственных впечатлений от работы с этим движком?
SpyceR
Мне он понравился, но я все еще использую UE4 и Unity для 3D игр. Если срочно нужна будет платная лицензия, а я не смогу ее позволить — подумаю, может буду пользоваться Xenko. Или они внезапно сделают что-то очень уж интересное и новое.
gltrinix
Если вы используете и UE4 и Unity, то не могли бы дать ссылку на качественное сравнение этих двух движков (или сами сравните), ибо всё что я находил субъективно в сторону одного из движков.
SpyceR
К сожалению, ссылку дать не могу, т.к. сам не знаю таких :)
А вкратце сравнить могу:
P.S. Это тоже очень субъективно.
Singerofthefall
SpyceR
Именно. За Pro версию Unity (если вы делаете игры для Android+iOS) нужно будет заплатить 4500$ или 225$/мес.
Leopotam
С 5-ки все платные штуки прошки — только онлайн сервисы, которые нужны для ускорения / оптимизации работы крупной конторы, а не инди-разработчика / небольшой команды.
elmm
В не про можно их облаком для сборки билдов пользоваться, там ограничение на частоту билдов, на сколько я помню.
Leopotam
Я просто хотел сказать, что смысла в про-подписке для инди нет совершенно. Может только из-за level11, но оно сомнительно.
elmm
А чем вариант — нет денег, Unity без про версии?
С пятёркой там много плюшек доступно, которые в 4 были только в про.
bashis
Интересная особенность Xenko — в отличие от Unity, здесь заявляется поддержка .Net 4.6 и, соответственно, C# 6. Unity, если мне не изменяет память, застряла где-то на .Net 3.5. Хотя, говорят, если компилировать через Visual Studio, этот эффект насколько-то можно нивелировать.