Level/world editor in ZGE?

All topics about ZGameEditor goes here.

Moderator: Moderators

User avatar
VilleK
Site Admin
Posts: 2274
Joined: Mon Jan 15, 2007 4:50 pm
Location: Stockholm, Sweden
Contact:

Level/world editor in ZGE?

Post by VilleK »

There is currently no level editor built into ZGE. Initially I expected ZGE to use mainly procedural content so I thought an level editor would be unnecessary. But I do sometimes see the need for it. I'm thinking it could also be used to create user interface, such as title/option screens.

If (and that is a big IF because it would mean a lot of work) we were to add such a feature what would it look like?

A simple 2d-tile editor (i.e. GameMaker)?

A 3d-tile editor (i.e. Minecraft)?

A free world 3d-editor (Unity etc).

Another kind of editor?

Or is an editor a bad idea? It would increase the runtime size etc.

Please share your opinions!
User avatar
Kjell
Posts: 1876
Joined: Sat Feb 23, 2008 11:15 pm

Re: Level/world editor in ZGE?

Post by Kjell »

Hej Ville,

I've thought about this before, and think a component based approach might fit ZGameEditor best. So for instance, you could have a Scene component that basically works as a array of SpawnModel components internally. And just like other components ( Sound / Mesh etc. ) you would have a contextual preview / editor when having the component selected* Similarly you could also have a tilemap component that is basically a old-skool nametable using a Material + Texture as tiles.

On the flip-side, it's pretty straight-forward to create your own editor in ZGE itself .. so if people really oppose the idea, that could always be a alternative ( to provide editors in the form of AppStates ).

K
User avatar
Rado1
Posts: 775
Joined: Wed May 05, 2010 12:16 pm

Post by Rado1 »

I'm not against a built-in level editor, but it's quite a lot of work to create a good level editor. Instead, I would rather suggest to use some external tools and to allow importing to ZGE. Maybe as the first step. For now, I see ZGE as a tool to "glue" the content into a working game or demo. Usually, fonts, bitmaps, 3d models, music is created in external tools. What is important that users are free to use their favorite editors.

I do not have too much personal experience with level editors except of Unity and Hammer Source Level Editor which are both quite advanced and I do not expect ZGE should provide something like this. Or at least not soon.

Anyway, to move the idea of level editor in ZGE further, I would recommend to have a look around - to evaluate existing editors and see their features. Then to decide whether to re-implement them or to provide importing of levels from favorite ones.

What I would recommend rather than (or in addition to) level editor are also some smaller steps toward "richer" game engine and editor, e.g., 3D particle system, built-in or library support for more realistic or funny 3D rendering (e.g. shades, flashes and shiny objects and explosions, toon scene rendering, or some normal mapping shaders e.g. bump). These features can be offered either in the form of built-in components or component extension or in the form of shaders put to the ZGE library. Of course someone can use external shaders, but almost always it is necessary to customize them for ZGE built-in shader variables etc. to work properly.
User avatar
jonaspm
Posts: 89
Joined: Fri Jul 06, 2012 3:51 pm
Contact:

Post by jonaspm »

i think that a menu/options editor is much more needed right now :3

but i vote for free 3D world like Unity.
fracteed
Posts: 43
Joined: Wed Apr 30, 2014 1:14 am
Location: Sydney

Post by fracteed »

A free world 3d editor would be top of my list! After a few weeks stint working on my 2d games, I am back into working on my 3d games..one in ZGE and one in Godot.

The thing that strikes me is how much easier ZGE generally is to use, compared to Godot, which has more of a Unity feel to it. Which has led to me recently contemplating what a ZGE workflow combined with a 3d world editor would be like. Hence I find your post very interesting 8)

ZGE is the closest thing I have found yet for 3d that has the Gamemaker/Construct2 ease of use, but having to spawn/setup levels purely from code is somewhat limiting to many users. If you want a procedural/randomly generated game the current workflow is great, but I would like to be able to manually construct levels or a combination of the 2 methods.

You would certainly attract a lot more attention/users even with a basic 3d editor. More mapping type support (normal/spec/environment) and some inbuilt shaders would also open it up to be more artist friendly.

Another possible intermediate route would be to use Blender as a layout editor and be able to import a .blend file into ZGE?
Imerion
Posts: 200
Joined: Sun Feb 09, 2014 4:42 pm

Post by Imerion »

I agree with the last post, and the earlier as well. As it is now, I use ZGE for smaller arcade-ish style games and Godot for more complex adventure-type games or games that require complex GUI's. I still prefer the workflow and philosophy around ZGE more though, so if a 3D-editor and/or a GUI editor would be included, I would have great use of them and would probably make ZGE my only game dev tool.
If it can be implemented without sacrificing to much of the lean:ness of ZGE, I am sure it would be worth it user-friendly wise.

It's really awesome to check in to this forum a few times a week and see all awesome development news that keep coming! Thanks people! So cool to see this tool evolve and become better and better, and this thread really made me happy as some kind of editor like this is pretty much the only big thing I miss in ZGE.
User avatar
Rado1
Posts: 775
Joined: Wed May 05, 2010 12:16 pm

Post by Rado1 »

Thinking little bit more about level editor I came up with the following initial feature list:

- scene displaying and conventional space navigation in more convenient way it is done for Model preview at the moment. Also displaying XYZ axes would help.

- allow to define object types for scenes; e.g. in the form of Models

- allow to populate the objects in scene and visualize them on design time

- population can either be manual or programmed by scripts or components such as Repeat, Condition, RenderTransform*, ...

- the result of object population scripts should be executable in the scene preview to display the result

- scene editor should allow to change properties of manually populated objects either by Property view and visually in 3D scene. Snap to grid and defining grid size would also help; mainly for tile-based scenes.

- to effectively work with larger amount of populated objects, there should the possibility to group them and to manipulate whole groups of objects (e.g. change position and rotation)

- scene is very similar to Model or AppState. It is not just a group of populated objects, but should have initialization (OnStart), the dynamics (OnUpdate), post-processing (OnLeave). If the preview of AppState will be improved it can easily be used for scene definition. Alternatively, a new Scene component can be introduced

If ZGE needs a scene editor, it should be 3D. Alternatively, with the possibility to fix (look in the direction of) one axis for 2D. Maybe implementation of such a simple component-based editor in ZGE can be feasible. BTW Godot (+ many other 3D modeling tools) can be a good inspiration for some features.

Attached you can find one of my experimental projects where the scene is defined as a Model. Note that population of objects is done in a very inefficient way where the population expressions and repeaters are executed each drawing cycle. In real scene editor, the script-based population should run just once before scene previewing or on demand of a user. Anyway, this example demonstrates a relatively limited possibility to visually edit "conventional" scenes in the current ZGE.
Attachments
scene.zgeproj
scene testing project
(5.46 KiB) Downloaded 685 times
User avatar
Kjell
Posts: 1876
Joined: Sat Feb 23, 2008 11:15 pm

Post by Kjell »

Hi Rado1,
Rado1 wrote:population can either be manual or programmed by scripts or components
You could expose the persistent array that contains all the spawn data, so that scenes can be generated procedurally in design-time as well if you want.
Rado1 wrote:Snap to grid and defining grid size would also help; mainly for tile-based scenes.
You don't want to use a general 3D scene data-model for 2D / 3D ( such as Fez ) tile-based maps nor games like Minecraft ( pillar-based ). It's terrible for performance.
Rado1 wrote:Attached you can find one of my experimental projects where the scene is defined as a Model.
I know it's just a example, but for those kind of situations ( 900 identical trees ) you want to use instanced rendering* And not sure if nor how that should be part of the engine .. perhaps ( a-variant-of ) the Mesh component would be better suitable.

*And on legacy hardware you'd want to merge them into fewer meshes.

Interesting to see such demand for a 3D scene editor though ...

K
User avatar
Rado1
Posts: 775
Joined: Wed May 05, 2010 12:16 pm

Post by Rado1 »

Hi Kjell,
Kjell wrote:You could expose the persistent array that contains all the spawn data, so that scenes can be generated procedurally in design-time as well if you want.
Yes, the result can be achieved by persistent arrays, however, editing of persistent arrays is cumbersome. In addition, in reality you have so many parameters (size, color, shape, texture, physical properties, ...) so working with a large amount of arrays and/or multi-dimensional arrays to edit your scene is nonsense. There should be a visual scene editor with the possibility to show and modify populated shapes.
Kjell wrote:You don't want to use a general 3D scene data-model for 2D / 3D ( such as Fez ) tile-based maps nor games like Minecraft ( pillar-based ). It's terrible for performance.
You're right, but maybe small room-like 3D/2D tiled scenes could work. In any case, snapping to grid helps anyway.
Kjell wrote:I know it's just a example, but for those kind of situations ( 900 identical trees ) you want to use instanced rendering* And not sure if nor how that should be part of the engine .. perhaps ( a-variant-of ) the Mesh component would be better suitable.
Sure, I'm talking about instanced rendering. In general, a scene represents a set of instantiated objects. In addition, good scene editors provide also some run-time features in design time, such as animation of particles, moving kinematic objects, etc.

Of course, all this can be achieved in more efficient way, for instance, to merge all visible and static meshes with the same material to one. But my effort was to try to use the existing possibilities of ZGE to "simulate" scene editor... not very successfully.

Rado1.
User avatar
Kjell
Posts: 1876
Joined: Sat Feb 23, 2008 11:15 pm

Post by Kjell »

Hi Rado1,
Rado1 wrote:Editing of persistent arrays is cumbersome. There should be a visual scene editor with the possibility to show and modify populated shapes.
Of course :) Being able to access the data directly would only be a additional option to using the visual scene editor.

I don't think the most of the properties you mention ( color, shape, texture, physical ) should be part of the data that a scene holds though.
Rado1 wrote:You're right, but maybe small room-like 3D/2D tiled scenes could work. In any case, snapping to grid helps anyway.
It's not just performance, it's also workflow. When creating 2D tile-based maps you don't want to be placing tiles individually using snapping .. you want to paint tiles onto a grid ( akin to the room editor in Game Maker ). Hence my suggestion to have separate components.

K
User avatar
jph_wacheski
Posts: 1005
Joined: Sat Feb 16, 2008 8:10 pm
Location: Canada
Contact:

Post by jph_wacheski »

a "level" editor could be a great thing,. however just reading through this thread we see this means different things to each person.

(I would like to see a curve/spline editor first,. useful for so many things. animation, mixing, fading, transitions,..)

I have thought to build a 2d/3d level editor on several occasions,. by building it in game, and having the game save the level data outside the ZGE editor. Still yet to actually do much of anything interesting along those lines though,.

I think it may be useful for some simple components to aid in this pursuit without locking the engine into some particular work flow idea,. I suppose I agree with Kjell's first post "to provide editors in the form of AppStates" as this adds nothing to the editor/engine yet facilitates the functionality for users,. when the creators of such post and share them anyway,. I guess as I see it the engine/editor are already vastly useful,. especially given Rado1's many extensions through linkages to other packages,.

my fear of a level editor is that it makes it necessary to work around it, when it is not needed,. so I think what ever is done, that needs to be avoided. Most other systems turn me off with so much unnecessary (for whatever I am doing) facilities that I can not turn off or remove,. (zero that out!)

I will think about this some more,. just had a quick read through,. . and commenting quickly.

My initial position is, add more simple systems that can be used in a wide variety of ways, and not lock the designer to some "ideal" of what their game must be. Probably more simple sample games are needed to show people how things can work.
iterationGAMES.com
User avatar
VilleK
Site Admin
Posts: 2274
Joined: Mon Jan 15, 2007 4:50 pm
Location: Stockholm, Sweden
Contact:

Post by VilleK »

Many good suggestions have been made in this thread. I won't comment on them all, but just let you know I've read it all carefully and will give it some thought! In all likelihood we will ship 3.1 without an editor and this will be considered for next beta.
fracteed
Posts: 43
Joined: Wed Apr 30, 2014 1:14 am
Location: Sydney

Post by fracteed »

Sweet...I look forward to any news on this front 8)
Imerion
Posts: 200
Joined: Sun Feb 09, 2014 4:42 pm

Post by Imerion »

As do I! An addition of something like described above, especially for GUI's and 3D-scenes, would no doubt make ZGE my main of not only game dev tool. And considering how much I like it already today, that says a lot. I can understand it won't go into version 3.1 though, already so much new good stuff there. But if a future release gets something like this, I'd love to try it out and alpha/beta test it.
Imerion
Posts: 200
Joined: Sun Feb 09, 2014 4:42 pm

Re: Level/world editor in ZGE?

Post by Imerion »

Just curious, did you come up with any ideas for how this could be implemented? No stress or anything, merely curious. :)
Post Reply