Migration from Unity3D

Hi,

I’m considering migration from Unity and examining possible pitfalls. I’m interested in mobile platforms and making free-to-play multiplayer games. How easy is it to access native services and third-party solutions?

  1. Cloud networking. In Unity world we can use Photon Unity Networking to avoid complexity of writing homemade client/server interaction. Are there any examples of published games which use Photon or maybe other services?
  2. Advertising. How can I integrate Unity Ads or Fyber network? Are there any manuals for Xenko?
  3. In-app purchases. Are there .NET-wrappers for native libs for billing (Play Store, App Store)?
  4. Cloud storage. Is it possible to use Google Firebase or Parse-analogs for remote configs, realtime database, user-generated content storage, etc.?
  5. How does native interop look on Android and iOS? For example, Unity provides high level classes like AndroidJavaClass and AndroidJavaObject, which allow (restricted) programming “in Java” while programming in C#.

Thanks!

Well, another important question is:

  1. How responsive are developers on forum?

Xenko is a C# engine, so basically if a .Net library exists you can use it in your game. You might have to check for compatibility issue depending on the target platform(s).

  1. Xenko doesn’t have a built-in network layer. But you can find decent open-source implementation for .Net (or even wrapper around libraries written in other language/framework).
  2. Advertising is not part of an engine per-say. We prefer to focus on what makes a game engine. That say you can probably integrate any service easily as long as they either offer a .Net interface or a REST-api that you can access through .Net Api (WebClient, HttpClient, HttpWebRequest, etc.).
  3. For example https://developers.google.com/api-client-library/dotnet/apis/androidpublisher/v2
  4. If there is a .Net API then yes. Otherwise you might need to write a wrapper around whatever API is provided.
  5. Android and iOS are supported via Xamarin. That will be your entry point for interop scenarios.
1 Like

Thanks for answering!

…is not part of an engine per-say

I understand that most of listed features do not belong to engine itself (and do not have to). I’d rather mean infrastructure around in general. Like: if there are well-known ways to solve these particular problems while making games using Xenko. All this nasty boring stuff like platform specific authorization, payments, and so on. Not theoretical possibilities of .NET platform, but rather examples of actual approaches used by people developing with Xenko.

Unity only added that stuff in the last year or two, and there are much more critical things core to a game engine that have yet to be added to xenko, so I wouldn’t expect it anytime soon. Xenko doesn’t even have an asset store yet for third parties to create that for you, hopefully a store will be added soon.

Xenko doesn’t even have an asset store yet for third parties to create that for you, hopefully a store will be added soon.

I hope it will never be added, if it is like Unity’s Asset Store clone.

Let me be honest, Unity’s Asset Store is awful; managing plugins is such a pain. You import package, and after a while you have no idea which version it is, how it interferes with other plugins, where its files are located, which platforms become failing to compile, and how to remove it entirely. Asset Store in its current form is for “gamemakers”, not for software developers. I’d prefer Unitechs just bury it and provide standard NuGet for managing dependencies.

That’s certainly fine, even in Unity, UE4, or CE you don’t have to use it if you don’t want. I’m just speaking from a speed to market perspective. If you are relying on Silicon Studios alone to add features like ads, IAPs, etc. then it will be a long time (if ever). Currently they don’t have major parts of input, animation, LOD, etc. completed on par with their competitors and obviously those are much more critical. If you look at the Xenko roadmap you can see that years of work for a studio their size will be spent on these core elements first before they think about add on services. A third party asset store is the only way to speed things up because it doesn’t take internal resources to do it. Implementation of the managing of packages doesn’t have to look the way Unity does it that’s just one possible way.

1 Like

If you are relying on Silicon Studios alone to add features like ads, IAPs, etc. then it will be a long time (if ever).

No, I don’t think Silicon Studios has to implement all infrastructure. It’s fine if it’s implemented by some well-known third parties in a way that is integratable with Xenko. I have no experience in Xamarin on mobile, so I don’t know the gap between “implemented as .NET library” and “known to actually work in production”.

@Kryptos says: “If there is a .Net API then yes.” But if something is implemented as .NET library this does not necessarily mean that this works on mobile. For example, some managed library may reveal to be working only on desktop Windows, because it just PInvokes WinAPI calls. Better to know such pitfalls as early as possible.

Unity only added that stuff in the last year or two

I don’t use Unity’s API for networking, purchases, or ads; preferring third-party vendors. (Unity’s APIs are in general poorly designed. So are third-party’s API for “gamemakers”, though.)

What I want to hear is not only “I’ve heard Photon Cloud provides API for .NET, not only for Unity”. But rather: “I’ve actually succeeded using Photon Cloud on Xamarin.Android in my game made with Xenko”.

Since there are very few Xenko production games (only early access indie titles on steam) I don’t think you’ll currently find what you are looking for with someone verifying from production (though you could mail the authors and check). With Xenko’s Xamarin approach for IOS and Android (to avoid the library only working on windows) the main question for the third party (ie. Photon) is does their sdk support .NET standard (limited subset of the whole API). If it does then it should work but I have a feeling it targets either .Net core or the older variants (which will limit you to windows only). You should be able to ask on their forums though in regards to their .NET API (not PUN since that’s unity specific and on the asset store).

1 Like

I would advise not to at the moment. The engine is so young and still under development. It offers a tiny subset of features compared to Unity. However, it does have a much better and nice rendering pipeline and a scripting backend.
The editor, aka ‘Game Studio’ is horrible. It’s extremely demanding on the GPU and very buggy. It also lacks tons of features and the ones that do exists are poorly done (the grid in the asset view, the useless solution explorer, no drag and drop support for components, and much more) .

Also, Unity has the backing of Microsoft, tons of assets (free and paid), endless tutorials and lots of third party stuff, such as Firebase, Google Ads (AdMods) etc.

In my opinion. Xenko at the moment is like a Ferrari engine mounted on top of a naked car frame with no chassis , no dashboard, no buttons and no nothing. yea, its powerful, but good luck getting something out of it. Yes, it may be possible, but I don’t think it is worth the time.

I’ll keep an eye open and see how Silicon Studio is building and improving the engine. For now, I do not see any HUGE advantage over any of the big guys. in fact, I mostly see disadvantages.,

Good luck

1 Like