Разработка игр многопрофильна по сравнению с разработкой бизнес-приложений и сервисов. Играм необходимы навыки дизайна, охватывающие интерфейс, звук, игровой процесс и художественное оформление. Это также требует инженерных навыков для графики, игрового процесса, звука, облачных сервисов и разработки. Иногда вам нужно перейти на более низкий уровень и поэкспериментировать с реестрами оборудования в сборке, чтобы оптимизировать производительность для конкретного устройства.
Вам нужно самостоятельно создавать все эти слои при создании игры, или есть способ лучше? Конечно, есть способ получше. Экосистема .NET предлагает множество вариантов для тех, кто хочет создавать игры, но не хочет создавать все с нуля. В предыдущей публикации я продемонстрировал разнообразный ландшафт разработки игр для .NET. В этом посте я рассмотрю некоторые из существующих игровых движков .NET и помогу вам выбрать, какой игровой движок подходит вам.
Разработчики привыкли каждый раз создавать свои игры с нуля. Теперь разработчики применяют техники переиспользования кода в своих играх, а также были созданы различные API-интерфейсы и инструменты, которые можно повторно использовать при запуске новой игры. Эти игровые движки содержат абстракции графики, ввода, медиа-API. Они также могут содержать инструменты дизайна и менеджеры для визуальных и звуковых эффектов. Вы можете думать о них как о IDE, но не только о коде. Некоторые игровые компании начали коммерчески использовать свои движки.
С ростом популярности C# все больше игровых движков начали поддерживать .NET. Среда выполнения Mono, теперь являющаяся частью .NET 5, была отличным выбором, поскольку она могла запускать код C# на многих платформах, включая Android, iOS, ПК, Mac и Linux. Mono также поддерживает игровые консоли, такие как Xbox, PlayStation и Nintendo. Теперь, когда .NET включает Mono с .NET 5, мы видим, что некоторые игровые движки готовятся к обновлению.
MonoGame можно описать как основу для создания игровых движков. Возможно, он начинался как многоплатформенная версия XNA, но вышел за эти рамки. MonoGame предлагает комплексные API-интерфейсы для разработки игр и инструмент управления ассетами. MonoGame только что получил обновление до версии 3.8, в которой используются .NET Core 3.1 и NuGet, и планируется перейти на .NET 5. MonoGame настолько гибок, что другие игровые движки используют его в качестве основы, например FlatRedBall. Многие инди-разработчики используют MonoGame для разработки кроссплатформенных игр.
Stride (ранее Xenko) — это еще один чистый движок C# и .NET, разработанный Silicon Studios. Это полностью интегрированный движок с графическим редактором. Stride теперь имеет открытый исходный код и не требует лицензионных отчислений. Благодаря модульной конструкции различные части движка можно использовать независимо. Stride также использует .NET Core 3.1 в своей последней версии 4.0. Мне очень нравится часть их документации, которая посвящена тем, кто раньше использовал Unity.
Другой движок .NET — это WaveEngine. WaveEngine бесплатен, многие его компоненты имеют открытый исходный код. Их последняя предварительная версия 3.0 была выпущена недавно, и она обновлена до .NET Core 3.1. Движок предлагает крутые функции, такие как запуск 3D-сцен в браузере с использованием .NET WebAssembly (Mono WASM), удаленный рендеринг Azure и поддержку HoloLens 2. WaveEngine имеет множество функций смешанной реальности, таких как пространственный звук, и все они готовы к использованию прямо из коробки.
NeoAxis Это движок, на который мне указали после того, как я опубликовал в своем предыдущем блоге сообщение об использовании .NET для разработки игр. Он также полностью написан на .NET, с открытым исходным кодом и без лицензионных отчислений. Он поддерживает полный набор функций, включая добавление поддержки Android в последней версии.
Unity, разработанный на C++, был одним из первых коммерческих движков, использовавших .NET для создания скриптов на C# и многоплатформенного таргетинга. Unity — это интегрированный движок с программным интерфейсом API, а также инструменты визуального редактирования графики, звука, профилирования и отладки. Unity быстро стал одним из наиболее часто используемых игровых движков для всех real-time графических приложений, таких как игры, VR и симуляции. Существует большая экосистема, поддерживающая Unity, от магазина ресурсов для плагинов и стартовых пакетов до игровых сервисов, таких как Microsoft Azure PlayFab. Unity — это коммерческий движок, но его можно использовать бесплатно до определенных пороговых значений дохода. Его также можно использовать в образовательных и личных целях.
Godot — это бесплатный мультиплатформенный движок с открытым исходным кодом, разработанный с использованием C++. Это полностью интегрированный движок для разработки игр. Он также использует .NET для создания скриптов C#. В последнее время Godot набирает популярность, и его сообщество стремительно растет. Он также получил поддержку и гранты от Microsoft и Epic games.
Известный CryEngine также использует .NET. Движок был построен на C++, но он использует .NET для скриптинга на C#. Это мощный игровой движок с богатой историей, лежащий в основе AAA-игр. Вы платите роялти только тогда, когда превышаете порог дохода.
Самый важный момент при выборе игрового движка — как получить поддержку. Для новичков обращение за помощью к коллегам схожего уровня или людям в сети является важной частью обучения и сохранения мотивации. Для профессионалов поддержка на уровне предприятия необходима для снижения технических рисков. Безусловно, у Unity одно из самых больших и активных сообществ. Он также предлагает платную высококачественную корпоративную поддержку. Кроме того, Unity также имеет одну из крупнейших экосистем сервисов и плагинов, поддерживающих движок. Godot тоже набирает все большую популярность среди любителей, и его импульс также увеличивается.
Еще одна вещь, которую следует учитывать, — это ваши собственные навыки и то, насколько хорошо движок вас поддержит. Если вы работаете с .NET и хотите использовать новейшие функции C#, возможно, вам лучше всего подойдет чистый .NET-движок, такой как Stride, WaveEngine или даже MonoGame. С ними можно использовать все знакомые инструменты, такие как NuGet и CLI.
Движок, который активно развивается, гарантирует, что ошибки будут исправлены, а новые платформы и функции будут добавлены. Коммерческие движки могут быть лучше для вас, если это вызывает беспокойство.
Важным фактором при выборе платформы является цена. Все упомянутые выше игровые движки бесплатны в начале работы. У некоторых из них прописаны роялти по достижении некоего порога дохода. Некоторые движки полностью бесплатны и не требуют лицензионных отчислений. Вы выбираете, куда пойдет прибыль, в зависимости от ваших финансовых планов.
Дизайн игры также может определять, какой движок вам следует использовать. Один движок может быть более подходящим, чем другие, для определенных типов игр. Например, использование полностью интегрированного коммерческого движка для создания текстового приключения может оказаться излишним.
У вас есть проект, плагин, библиотека или игра, связанная с разработкой игр на .NET, о которой вы хотите рассказать в блоге .NET? Или есть тема разработки игр для .NET, о которой вы хотите, чтобы я написал?
Вам нужно самостоятельно создавать все эти слои при создании игры, или есть способ лучше? Конечно, есть способ получше. Экосистема .NET предлагает множество вариантов для тех, кто хочет создавать игры, но не хочет создавать все с нуля. В предыдущей публикации я продемонстрировал разнообразный ландшафт разработки игр для .NET. В этом посте я рассмотрю некоторые из существующих игровых движков .NET и помогу вам выбрать, какой игровой движок подходит вам.
Игровые движки
Разработчики привыкли каждый раз создавать свои игры с нуля. Теперь разработчики применяют техники переиспользования кода в своих играх, а также были созданы различные API-интерфейсы и инструменты, которые можно повторно использовать при запуске новой игры. Эти игровые движки содержат абстракции графики, ввода, медиа-API. Они также могут содержать инструменты дизайна и менеджеры для визуальных и звуковых эффектов. Вы можете думать о них как о IDE, но не только о коде. Некоторые игровые компании начали коммерчески использовать свои движки.
С ростом популярности C# все больше игровых движков начали поддерживать .NET. Среда выполнения Mono, теперь являющаяся частью .NET 5, была отличным выбором, поскольку она могла запускать код C# на многих платформах, включая Android, iOS, ПК, Mac и Linux. Mono также поддерживает игровые консоли, такие как Xbox, PlayStation и Nintendo. Теперь, когда .NET включает Mono с .NET 5, мы видим, что некоторые игровые движки готовятся к обновлению.
Движки, созданные с .NET
MonoGame
MonoGame можно описать как основу для создания игровых движков. Возможно, он начинался как многоплатформенная версия XNA, но вышел за эти рамки. MonoGame предлагает комплексные API-интерфейсы для разработки игр и инструмент управления ассетами. MonoGame только что получил обновление до версии 3.8, в которой используются .NET Core 3.1 и NuGet, и планируется перейти на .NET 5. MonoGame настолько гибок, что другие игровые движки используют его в качестве основы, например FlatRedBall. Многие инди-разработчики используют MonoGame для разработки кроссплатформенных игр.
Stride
Stride (ранее Xenko) — это еще один чистый движок C# и .NET, разработанный Silicon Studios. Это полностью интегрированный движок с графическим редактором. Stride теперь имеет открытый исходный код и не требует лицензионных отчислений. Благодаря модульной конструкции различные части движка можно использовать независимо. Stride также использует .NET Core 3.1 в своей последней версии 4.0. Мне очень нравится часть их документации, которая посвящена тем, кто раньше использовал Unity.
WaveEngine
Другой движок .NET — это WaveEngine. WaveEngine бесплатен, многие его компоненты имеют открытый исходный код. Их последняя предварительная версия 3.0 была выпущена недавно, и она обновлена до .NET Core 3.1. Движок предлагает крутые функции, такие как запуск 3D-сцен в браузере с использованием .NET WebAssembly (Mono WASM), удаленный рендеринг Azure и поддержку HoloLens 2. WaveEngine имеет множество функций смешанной реальности, таких как пространственный звук, и все они готовы к использованию прямо из коробки.
NeoAxis
NeoAxis Это движок, на который мне указали после того, как я опубликовал в своем предыдущем блоге сообщение об использовании .NET для разработки игр. Он также полностью написан на .NET, с открытым исходным кодом и без лицензионных отчислений. Он поддерживает полный набор функций, включая добавление поддержки Android в последней версии.
Движки, внедряющие .NET
Unity
Unity, разработанный на C++, был одним из первых коммерческих движков, использовавших .NET для создания скриптов на C# и многоплатформенного таргетинга. Unity — это интегрированный движок с программным интерфейсом API, а также инструменты визуального редактирования графики, звука, профилирования и отладки. Unity быстро стал одним из наиболее часто используемых игровых движков для всех real-time графических приложений, таких как игры, VR и симуляции. Существует большая экосистема, поддерживающая Unity, от магазина ресурсов для плагинов и стартовых пакетов до игровых сервисов, таких как Microsoft Azure PlayFab. Unity — это коммерческий движок, но его можно использовать бесплатно до определенных пороговых значений дохода. Его также можно использовать в образовательных и личных целях.
Godot
Godot — это бесплатный мультиплатформенный движок с открытым исходным кодом, разработанный с использованием C++. Это полностью интегрированный движок для разработки игр. Он также использует .NET для создания скриптов C#. В последнее время Godot набирает популярность, и его сообщество стремительно растет. Он также получил поддержку и гранты от Microsoft и Epic games.
CryEngine
Известный CryEngine также использует .NET. Движок был построен на C++, но он использует .NET для скриптинга на C#. Это мощный игровой движок с богатой историей, лежащий в основе AAA-игр. Вы платите роялти только тогда, когда превышаете порог дохода.
Какой движок подходит вам?
Самый важный момент при выборе игрового движка — как получить поддержку. Для новичков обращение за помощью к коллегам схожего уровня или людям в сети является важной частью обучения и сохранения мотивации. Для профессионалов поддержка на уровне предприятия необходима для снижения технических рисков. Безусловно, у Unity одно из самых больших и активных сообществ. Он также предлагает платную высококачественную корпоративную поддержку. Кроме того, Unity также имеет одну из крупнейших экосистем сервисов и плагинов, поддерживающих движок. Godot тоже набирает все большую популярность среди любителей, и его импульс также увеличивается.
Еще одна вещь, которую следует учитывать, — это ваши собственные навыки и то, насколько хорошо движок вас поддержит. Если вы работаете с .NET и хотите использовать новейшие функции C#, возможно, вам лучше всего подойдет чистый .NET-движок, такой как Stride, WaveEngine или даже MonoGame. С ними можно использовать все знакомые инструменты, такие как NuGet и CLI.
Движок, который активно развивается, гарантирует, что ошибки будут исправлены, а новые платформы и функции будут добавлены. Коммерческие движки могут быть лучше для вас, если это вызывает беспокойство.
Важным фактором при выборе платформы является цена. Все упомянутые выше игровые движки бесплатны в начале работы. У некоторых из них прописаны роялти по достижении некоего порога дохода. Некоторые движки полностью бесплатны и не требуют лицензионных отчислений. Вы выбираете, куда пойдет прибыль, в зависимости от ваших финансовых планов.
Дизайн игры также может определять, какой движок вам следует использовать. Один движок может быть более подходящим, чем другие, для определенных типов игр. Например, использование полностью интегрированного коммерческого движка для создания текстового приключения может оказаться излишним.
Расскажите нам
У вас есть проект, плагин, библиотека или игра, связанная с разработкой игр на .NET, о которой вы хотите рассказать в блоге .NET? Или есть тема разработки игр для .NET, о которой вы хотите, чтобы я написал?
- Оставьте нам сообщение здесь.
- Напишите твит и отметтьте Abdullah (@indiesaudi)