Skip to main content
gamedev.net
🔒 Locked

Remote game editor - Web-based or Native code

Started by Althar Jul 19, 2014 at 12:40 AM 1 replies 2.8k views
Original Post
Althar
Althar

Hello all,

I have been tinkering with the idea of a remote game editor/framework to service the game engine I am currently working on during my spare time & have been looking into various ways of doing it. I have read about Insomniac's Luna server, Bitsquid as well as a blog post which is what brings me here :

I have decided to go "remote" for a couple reasons :

  • I like the approach & have had the chance to "try it out"
  • Ability to attach the editor to the game at any point in time (provided the game is running a server)
  • Separation of processes between the editor/game-engine
    • Better flexibility in the event of bugs/crashes
    • Loose coupling favours a plugin architecture & enables easier parallel development

I am currently using SFML as my core library and thought I would mess around with TCP sockets to get something basic up and running. The result is a game communicating with the editor.

Establishing a channel to send messages around was piece of cake, but I actually feel like I wasted most of my time trying to get the editor up and running (using wxWidgets) least to say looking nice : I cannot fathom building a flexible plugin-friendly editor this way...

Although my web knowledge is quite rusty, I am quite intrigued by the additional benefits that a web-based editor would give, namely :

  • Ability to run the editor from any modern device (tablets included)
  • No compilation - simply edit in the text editor of your choice
  • Easy to turn into a plugin architecture / edit to add new features
  • Customizable themes (JQuery UI looks pretty slick already)
  • Database/data friendly - just pick any : SQL, MongoDB, etc.

All in all, I was hoping you guys would share your thought and opinions about the following questions :

  • Has anyone got any experiences using either HTML5/JQuery with websockets or TCP/Native code to build a game editor?
  • Did it work for you?
  • What kind of issues did you experience or had to work around?
  • If you could do it again, would you flip sides?

Thanks,

References :

Ashaman73
Ashaman73

It depends on what you understand as editor. I'm a big fan of web-based engine tools, my engine includes a basic web-server and I wrote some javascript/html5 tools to tweak the ingame properties (animation speed, color selection, debugging etc.). It works great, but on the other hand it is slow at times.

If you want a fully featured game editor (to design levels etc), then I fear that this approach is quite complex and prone to low performance. It all depends on what your goals are.

Althar
Althar

Hey,

Thanks a lot for your reply. What I meant by editor was, as you rightly point it out, more like a service/window to the game engine. Essentially, the editor should be able to ask the engine to do various things; that being said, I would like to avoid having an editor that dictactes what features the engine should have.

The kind of features I am considering are :

  • GameObject/Property tweaking
  • "Hand of god" : i.e. being able to manipulate a debug camera & feed back any selected elements back to the editor
  • Debug Console
  • Asset live-editing/compilation : currently my engine loads resources separately; there is no compilation/packaging step involved yet but being able to notify the Engine of a resource change to trigger asset recompilation would be useful.
  • Plugin system with "slave" scripts : to be sent over to the engine for execution. I am not too sure yet whether this will work well in the long run, but I am hoping this will help with engine/editor decoupling. Writing a new plugin/tool should then just be a matter of writing a "slave" script that uses the engine's scripting API & have the engine download it prior to using the tool (either every time the editor connects to the game, or saved to a cache for later re-use).

As you can see, I am not planning on having any time-critical behaviour/ data-heavy processing to take place between the editor/engine.

My game will be mostly procedural, so level editing shouldn't be of much concern, as I only expect it to be restricted to a bunch of sliders, rather than a myriad of hand-placed assets.

Bitsquid, and more specifically Insomniac games with their Luna Server seem to have manage to leverage a complete web-based editor suite. That being said, they seem to have embedded their native code into a browser, rather than built it entirely as HTML5/Javascript.

When you say slow at times, do you have any particular case-scenarios you would like to share? Is it due to the large amounts of data you have to send/receive in certain cases or just the overall speed of the web backend?

I am currently veering towards my TCP solution for the time being, since I already have a basic implementation up and running - provided I play my cards well, substituting for a different protocol should be fairly trivial from the game side.

In the meantime, I am very happy to hear more about your web-based tools and/or if anyone else would like to shine their light on the subject.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.