Project: Live Editor


#1

I’ve been using Xenko for awhile now. It’s a great engine and I love having the ability to use the latest C# and .NET features. Coming from Unity, one of the biggest things I miss is the “play in editor” mode with live editing and viewing of component properties. This last weekend I decided to see if I could build something similar for Xenko. I’ve managed to complete a proof of concept. Currently it is able to keep track of all the entities in the scene, their components, and the component properties. You can edit the component properties and they change in the game in real-time, and when the game changes the values, they update in the editor view in real time. I’ll be throwing this up on Github sometime this week. Setting this up in a project should be pretty easy. Just add a reference to the DLL in your Windows project that launches the game, and then add two lines of code to the Main method for starting up the live editor with the game.

I’ve attached a screenshot of what it looks like at the moment. I’m pretty bad at UI design, so forgive the ugliness.

Edit: this is on GitHub now - https://github.com/treplogle/XenkoLiveEditor


#2

Fantastic proof of concept! Thanks so much for sharing it.


#3

I have this on GitHub now: https://github.com/treplogle/XenkoLiveEditor

Here’s an updated screenshot. I added MahApps for some better theming and the numeric control.


#4

You just got your first pull-request :grin:.

Nothing fancy, just a quick fix to get the correct Xenko runtime libraries :slight_smile:.


#5

I’ve been checking new game engines for my next project.
Many AAA titles use Unity and UE.
Could you tell me what titles use Xenko(Paradox)?


#6

Please start a new topic with your question.


#7

Thank you, Kryptos. I’ll merge that into my code.


#8

new topic made.


#9

Quick question. Why chose a GPL v3 license? Is it because of the license used for Xenko? If so, you can actually any license as long as the project links to the official compiled libraries. The story would be different if you recompiled them yourself.

Just wanted to point that out. But you can also keep this license if you like it :slight_smile:


#10

I didn’t put too much thought into the license. I was thinking of this as more of a tool than a library you include in your project. However, based on the way you use it in its current implementation, it’s definitely closer to a library. I’ll update the license to something less strict.


#11

Looks like a pretty awesome idea. I was wondering how hard it would be to make it to work like “Snoop” does for WPF and it can just inject itself into a running Xenko Windows game.

Snoop is open source (MS-PL). So I started digging around the code a bit. Not sure how hard it would be to take that idea/implementation yet. I then started at looking at how to get the currently running game instance once you injected yourself into the game’s process. But haven’t spotted anything helpful yet. I was hoping there would be some sort of static method that could be called to get the current instance or something along those lines.

If I manage to find some usefully info I’ll pop back in here or maybe over on your github repo.


#12

Awesome, I’ve never heard of Snoop. I’ll definitely look into it. Since I’m not familiar with Snoop, I can’t really comment on how it works specifically, but I think my project works similar. It uses reflection to present the details for components it knows nothing about. Where I think we differ is that I have a bit of custom code for certain Xenko data types, and I’m definitely open to suggestions on how to handle those better. For example, I have special cases to show Quaternion, Vector3, Vector2, float, int, and Enum types. Next up is to add support for more detailed types like Lights and Sprites. I could go full generic with this, but I was thinking some direct support for the built-in types would be beneficial.


#13

Snoop is awesome when doing WPF development. Though VS includes similar functionality now. In case you haven’t found it yet…Snoop Quick Start so you can what it does without having to install it. And the repo is here


#14

Hi Avictus,
I’ve just sent through a pull request with some changes to support multiple scenes. Hopefully they pass inspection :slight_smile:
A.


#15

Took a bit of WinForm/WPF hackery but I figure this is the next logical step.


#16

Thank you for these updates, they look great! I’ll review the pull requests as soon as I have some time and get them pulled in.