Experienced Unity user looking to switch to Xenko

Hello guys, I am a programmer with intermediate knowledge of both C# and Unity. Xenko has caught my eye and I’m really liking the look of it so far but there are a few questions I have regarding Xenko, I’ll list my questions below:

  1. Can Xenko support unmanaged code?

  2. I have found the build times to be quite long when building/compiling a project, is this something that is down to the engine istelf or the way the code examples are written?

  3. I have a very strong background in OOP and I like to conform to S.O.L.I.D principles and use design patterns when I can. Unity makes this difficult because it uses a component-based architecture and locks you to it, I realise Xenko uses this architecture as well but does Xenko make it easier if you want to design systems in a traitional OOP way?

Thanks for reading my post guys, I’m looking forward to the responses.

-Joshmond

  1. Yes. In that you can use P/Invoke APIs to call native code etc. You would have to manage platform specifics etc. yourself. Xenko already uses unamanged libraries for things like the physics (Bullet Physics). There used to be a “Native Linking” sample back in the 1.X versions. I can’t seem to find it in 2.X.

  2. Agreed! Does seem pretty slow sometimes. Not sure what the performance problem is.

  3. The engine is open source so you can do pretty much what you like. There are also quite a few places where you can hook in/extend other than the entity-component system. That being said, I don’t see why you can’t implement things with good design patterns/S.O.L.I.D principles in an ECS (well Xenko’s anyways).

1 - Yep. No problem with that. As @dfkeenan said, you’ll need to manage platforms specifics by yourself though. :slight_smile:

2 - It usually is a bit long on the first build but after that it should be quite fast, unless you add a big chunk of code/assets of course.

3 - You can create classes without having them be SyncScripts/AsyncScripts. (you just cannot place them in the world but can use them), so I think that you can pretty much do whatever you’re thinking about. You will still have to use components on your objects to have them do stuffs. But if you want some alternative systems to run. This should not be a problem. :slight_smile:

Awesome, thanks for the quick response guys. I’ve notcied that the gamestudio/editor is separate from the engine which is great but I was wondering if the gamestudio component is written in C# as well, I thought it may have used WPF?

-Joshmond

The gamestudio has been made in C# as well, the reason we don’t have access to its sources though is that it’s been made with Telerik, which is proprietary (and thus does not allow them to share it). We’re still waiting on the updates regarding Editor extension plugin capabilities etc.

If not. I can already tell you that you can boot Xenko in a WPF app using a WinFormHost :stuck_out_tongue:
But then you have to pretty much create an editor yourself… xD

Yes, Game Studio is C# WPF. That source is only available if you pay for Pro Plus. Hopefully the extensibility/plugin system they have been talking about will come soon. Still a ways off based on trello board.

That’s really good to know, the fact that you can’t add plugins or extend the editor is not a deal breaker in my opinion because if I ever needed tools for my project I would just create the tools using WPF and make a standalone tool to be used with Xenko.