Перші кроки в Xenko

Той, хто цікавиться світом ігрових движків, знає, що з першого грудня 2015 року колишній Paradox3D змінив назву на Xenko, але так як на Хабре немає туториалов ні за першим, ні за другим — я вирішив зробити невелику статтю для тих, хто хоче спробувати щось нове (або не дуже) та розповісти про особливості Xenko. Якщо вас це зацікавило — ласкаво просимо під кат!



Ліцензія

Движок практично 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 Універсальний, Phone), а також Android та іОЅ (тільки за наявністю ліцензії Xamarin), але Silicon Studio запевняє, що скоро буде і на MacOSX і Linux, і навіть на next-gen консолях.

Початок роботи

Насамперед потрібно встановити сам движок, а також додаткові елементи для роботи з .NET. Установка разом з завантаженням всього ЗА займає близько 25 хвилин. З Xenko launcher'а можна як встановити нову версію, так і перемикатися між встановленими версіями.



Запускаємо потрібний варіант, створюємо новий проект (всі налаштування можна залишити за замовчуванням) і чекаємо поки завантажиться наш Xenko Studio.

Нас зустрічає досить звичайний UI, що віддалено нагадує Visual Studio.



  1. Елементи сцени
  2. Оглядач рішень (всі папки та файли, які мають відношення до проекту)
  3. Перегляд ресурсів (ассетов). При виборі ресурсу, він на мить підсвічується.
  4. попередній Перегляд ресурсу; Історія дій; Залежності (тут дві вкладки: Referencees — показує всі ассеты, які потрібні для поточного ресурсу; Referencers — навпаки, показує всі ассеты, які залежні від поточного)
  5. Редактор властивостей
Для запуску гри досить натиснути 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.1 f;
}
if (Input.IsKeyDown(SiliconStudio.Xenko.Input.Keys.Left))
{
this.Entity.Transform.Position.X -= 0.1 f; 
}
//якщо натиснули стрілку вгору/вниз - рухаємо по осі Z (не Y, т. к. це вертикальна вісь)
if (Input.IsKeyDown(SiliconStudio.Xenko.Input.Keys.Up))
{
this.Entity.Transform.Position.Z += 0.1 f;
}
if (Input.IsKeyDown(SiliconStudio.Xenko.Input.Keys.Down))
{
this.Entity.Transform.Position.Z -= 0.1 f;
}
}
}
}
}

Зберігаємо в папці 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 з іншого безкоштовного движка (суб'єктивно; думаю, це тільки поки що)

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.