Choosing a game engine for an open Roblox/Kodu/Lego Worlds/LittleBigPlanet-like app

Hi everyone!

I’m looking for a game engine that’s suitable for an Open Source app that I want to write and share on GitHub. I’m evaluating Godot, Atomic, Urho3D, Blender and OpenSceneGraph. I’m hoping some of you here can help me determine if this engine is a candidate :slight_smile: I’m not ‘hawking’ my game idea, so sincerely hope this is the right sub-forum!

My idea for the app is “building and programming your own games - without technical skills” - along the lines of Roblox(https://www.roblox.com/), Kodu(https://www.kodugamelab.com/), Lego Worlds(https://www.lego.com/en-gb/worlds/), LittleBigPlanet(http://littlebigplanet.playstation.com/), Struckd(https://struckd.com/), Blockland(https://en.wikipedia.org/wiki/Blockland_(video_game)) (apparently defunct), Project Spark(https://en.wikipedia.org/wiki/Project_Spark) (defunct).

It will have a simple rule programming language to bring things to life. Aside from the app being Open Source, this language is the main differentiator to these other approaches. It isn’t text-based, it appears as simple 2D grids expressing rules, that are similar to spreadsheet formulae, and that react to scene object state changes.

The game engine should thus ideally make the following elements nice and easy:

  • 2D interface panels…
  • with scrollable selectors, grids holding text items, buttons
  • to choose and configure renderable game objects into scenes
  • to enter and edit the animation rules for those objects
  • that either pop up over the live scenes or appear inside them

The last point in the list above is because the rule editor, rule runner and game loop won’t be started and stopped, they will run continuously, even as rules are being updated.

  • API access to the states of scene objects, to read and write their properties and be notified of events
  • persistence of scene structures and their rules to a database or files
  • access to threads and the event loop to give my stuff plenty of CPU
  • easy API access and C/C++ code extension
  • building to Android and other common platforms

I would strongly prefer to write the rule runner in C, rather than C++ or Python. I’ve implemented similar systems in every language known to man, including these three, but C feels like the right low-level language to implement another very high-level language in. This is partly because of speed and resource usage, but also because C is very portable, so I’d find it easy to port the language to any other hardware or OS, including embedded systems, etc. Having said that, I’m open to strong arguments in favour of C++.

So my question is, can BGE easily support the bullet points above? :smiley:

Duncan

To be honest, after some more research and engaging with their active community, it looks like Godot is the best game engine of my list - Blender has seen better days and isn’t so active now.

Cheers!
Duncan

You know about minetest?

Oh yes, I was looking at that and other Minecraft alternatives, like Freeminer and Voxelands.

Why do you ask?

I’m tending towards more general game engine styles rather than voxels and other Minecraft style features.

I though you wanted digging.I had a idea for a game engine that had simple visual programming but with marching cubes.It would be as simple to use as the bge.

OK - well the list of similar apps I posted above is often put into the same category as Minecraft, but are actually distinguished from it by the end-user programming features.

I do love Minecraft and have had hours of fun there, but I think I want to go more general.

“visual programming but with marching cubes”

sounds interesting! that’s basically what I was planning while I was researching Minetest.

It would be as simple to use as the bge.

Would ‘Normals’ be comfortable using BGE? - I would aim for simpler to use!

What visual programming language would you be building/writing/using?

It is just idea i had.I would not know where to begin to do it.
Have you tried Amazon lumberyard-free AAA game engine?I don’t know it supports all platforms.
I do not know how much simpler it could be than logic bricks.

OK - I’ll go and look at that! Thanks for the tip!

I just tried Minetest on PC - previously I tried the Android port and it was soo buggy I gave up. PC one was much smoother.

Not everyone whom knows what they are talking about frequents the forum,

There is a developer whom has a large voxelized world in the bge.

You can’t export to android with BGE.

BGE is good for prototypes, if you want to throw together something quickly for a showcase or demo. Beyond this you would be best looking at other engines.

BGE users have created things that are ‘technically’ similar, but they are far from full-fledged sandbox games and the implementation of some things (such as per-block material and mesh operations) are downright insane due to engine limitations.

Honestly, the BGE would first need to have the ability to make the geometry and material data of each object created in-game unique (Godot can do this easily by fetching an object’s material or mesh and using the copy() function). The closest thing the BGE has to doing this is the Lib functions and they’ve always had a number of usability and other issues (unless the UPBGE project overhauled them).

In the case of UPBGE, it could perhaps ‘almost’ do it (due to it having things like batching), but the per-block operations may still be a major hurdle.

#1 = libNew()

index=0
for vertex in face:
(tab)vertex.uv = materialsDict[‘Material’][index]
(tab)index+=1

(this is to use a atlas to texture a generic cube)

also, name the new mesh
Material_mesh
(so if it does not exist create it if it does use replace mesh)

since there are only like 32 meshes (block types)
instancing could most likely do it*

There’s still other issues as well that the BGE would need improvement on.

The top thing would be performance, which is an especially big deal when you note that Minecraft actually has major performance issues when you try to do some things (and it is using a specially designed engine). The same thing with Roblox, you can’t go too crazy with the building part even with all of the work done to optimize it (and these two engines also utilize a language that is faster than Python).

Essentially, open-ended sandbox games can get pretty intense on even the beefiest CPU (depending on how crazy you allow your players to become). I’d say stuff like Minecraft would’ve been an almost impossible genre to do in any engine and language as little as 10 years ago.

Tbe rendering is all openGL
And a Kdtree can move occupied spaces behind you, in front of you and set the UV…

I will try this tonight :smiley:
(using instancing)

I would like to see it.

I got some animation stuff done for manic mack, and did not get time to try the cube thing, however I know it will work

(it’s basically like my tile system, but each mesh change done to the spawned in cube is much less intensive and many smaller mesh)

I will see if I can get to this monday after combos for my commercial game
(people are counting on me not ADHDIng this one)

This has a github link you could use to get it.
And it works on many platforms.
OpenGL 3D Terrain/Open World Engine | v1.1 Java Lwjgl
And it has been development recently.