Blender game engine fork UPBGE[EvEE]

So some bge developers have forked blender and have been adding very useful features at a high commit rate, including static draw call batching, instancing, hardware armature skinning and a host of other developments (movement sensor!)

With these enhancments, the bge will approach competing with commercial game engines. They need your support, more developers are always wanted, but they also need testers, and potentially a builder or buildbot to get test builds out there to be tested.

The drawing code improvments alone should warrent another look for, but the movment sensor adds a bunch of functionality to raw brick based logic, and there are plans on adding more events/sensors.

My favorite
if moved—python(animate actor)

In short,
Yay!

1 Like

Could you maybe explain a bit what this is about, how it differs from normal (beta), blender versions ??
And is this going to be part of main, or is it a side branch ??

Maybe describe a bit more things you like about it.

I’m not into gaming, but sometimes i use it for simulations, so i wonder if it could be usefully.

ok - static draw call batching = any objects using the same materials can be ‘clustered’ into 1 draw call, when this is done it removes many single draw calls, creating a significant boost in speed, if you are working off a atlas.

instances is good for anything you are using over and over like grass or leaves, that is under a certain number of faces*

hardware armature skinning will be a significant boost in animation speed per frame, so more actors can be present with less slowdowns.

motion sensor, is a logic brick that fires positive if true, so objects can decide how to animate or??? and only run the linked controllers when it moves on a axis, or in any direction, etc.

like

if moved local forward-----play walk animation

or

if moved -----python(handle all animations)

About simulations, there is talk of adding impulse data to.collision on a per object/collision basis,

and I have a longstanding issue with instances of objects sharing a compound root shape, meaning parenting objects to a object with compound checked in physics meant all copies of this object, when compound parented share the physics impact shape of the first assembly/hierarchy.

Tristan said this was solveable, not sure if he solved it yet though.

I hope it will grow into a solution for indie game developers, as well as be a nice physics sim arena,

These changes are going to merge in the master branch of the BGE? If they will, it probably means that this is kind a beta thing. And if they won’t. Why?

Master apparently would have patches marked for review for a very very long time, I think they were talking about having a addon version later, but for now they just want to prove that the engine is worth it. If they never merge back to master, that is fine, it would be better for both sides if the game engine was a well maintained addon, and would allow for updating the addon without having to compile all of blender.

But you would need to ask the developers themselves

I thought that they (these developers) were able to push into the source, maybe it conflicts with another section of the code where they don’t have access. It’s a shame that the BGE have been setting aside in this way. But I suppose that maybe it is a logical step in the new priorities of blender in general.

I think that the drawing code in the bge and the new openGL could and should be one, but some of the developers seem to think of it as dead weight, but if your not growing in this world, it means you are dying.

In reality I think that the ideal soulution to animation is a game engine that is also a 3d animation suite, not a 3d suite that has a game engine hanging off a corner.

For instance, the ui could just be a bunch of planes that when highlighed and clicked ran operations,

Basically making the ui legos…

If one were to restart Blender with bullet 3 at its core, and had it run like a multithreaded game engine, that sends data out to be rendered if you choose… It could have self contained operations that were like gameObjects…

Basically removing the need to compile most operations…

Mouse over + click = check what to do from code stored in plane,

So basically, you want to remove all of Blender except for the game engine and then rebuild Blender as a massive BGE game?

You are aware that Blender is used for far more than playing sequences of animation (rendering images and animations with Cycles and BI, rendering images and animations with external engines like Vray, game asset creation for external game engines like Unity, a pipeline tool for scenes being made in other 3D apps. like Maya, a complete creative tool for video editors, artists, sculptors, animators, and other types of people, ect…), right?

I’m not sure how you expect to have everything from sculpting to sequencing fully functional in this manner, and I believe that the more logical solution has always been the plan to make the BGE a true part of Blender (rather than the other way around).

As for UPBGE, I’ve already said most of my thoughts in the official thread, but I also wouldn’t hesitate to send patches for the regular BGE if you feel it would actually improve and clean the code in a certain area (that is working without issues in the fork itself).

You move data ace, that is what blender does, and it renders things,

Blender is a big game.

If the backbones of a game engine were in openCL / something threaded, operations done in blender currently could be ran inside of a game engine.

I love blender, and would love to see it grow in any direction that is beneficial.

Imagine if adding a icon, linked to a operation like a python script that was downloaded with the icon, imagine if you could manipulate everything as easily as we manipulate game data, but not with a single thread…

Imagine if a model that you are mousing over in bge knew what vert was closeset to where you were aiming, mouse over.hitVertList() maybe or something, returns all verticies under the mouse, so you can use cycle list to choose a vert, and then manipulate it, or a list you build of verts, and imagine if you could create textures in game in real.time and save them… This is blender.

1 Like

First off, you can’t just code any threaded algorithm in OpenCL, having to recode everything for the GPU means that the vast majority of code would have to be scrapped and that a lot of features we enjoy now will have to be removed. Game engines can indeed make use of traditional threaded architecture like in the CPU, but a ton of code would have to be rewritten, a ton of time spent, and a ton of money expended, for a result with no guarantee of being superior.

Second, we really need to define what ‘game’ is. Usually, a game is something that creates an end goal unless it’s a sandbox game (which even then you often have a set of rules that governs everything). If Blender is already a game, then so are apps. like Microsoft Office, Photoshop, and even Windows.

OpenCL runs on gpu or cpu…

You have a UI, and a viewport,
You select data, and perform operations on it.

And also, this is like a blender 3.0 style idea.

Once 3d tracking tags are cheap, and accurate, you will see people using realtime mocap in a game physics engine, interacting with objects that don’t exist in real time.

I am far off topic ace, but bottom line, if a game engine were built from the ground up to do 3d operations inside of, it would be a very powerful tool and game engine. Also much of the old single thread stuff should be rewritten anyway, some operations are just to much data now for that

Collison.hitVerts

mouseover.hitVerts

own[‘SelectedList’].append(mouseOver.hitVert)

own[‘SelectedList’].moveVerts(own[‘SelectedObject’].worldOreintation.col[2]*.05,0)

own[‘SelectedList’]=“Empty”
(move vertices up on local z .05)

if these backbone operations were multithreaded, and ‘rebuild draw and physics’ were threaded… they could update after you change anything…

OpenCL is also not near as expansive in terms of being a multi-threading API as the more traditional threading approaches already being seen in Blender development.

Also, some game engines already have an API that is capable of allowing users to write their own modeler inside of the editor complete with UVmaps (including Unity and Godot). In that case, why not try to convince Ton and the dev. team to proclaim end of life for Blender and join the Godot devs. (so you can have that magical do-everything app. that you’ve always wanted).

Remember that Blender is being made according to the needs and wants of the community along with the expectations of the larger CG industry, not the needs and wants of BPR.

I don’t need anything to change,
I see a road, and a few ways to go,

one road if very very fast, but must be rebuilt each time you add another exit, (the whole road)

I see another road, that is slightly slower at first, but you can add new sections of road very very fast.

Click -> python -> links to native code = blender
Click -> python -> links to native code = BGE

I am saying that in theory at the roots of both applications, you expose a API that operates on data, and shows you this result, and can save, or load data. sometimes you can send some of this data to operations like render, that then use the data to produce other data, and save it as a file.

MouseOver(Icon) + click = LookUp what to do with mouse.hitPoint

I wish I knew how to wrap C++ in python or how to write C++ for that matter.

I would start by adding the ability to move vertices in blender game engine using a API that made it simple. then I would gradually add texture generation abilities,

BGE is not a parasite, it could be a symbiote.

Edit: VS 2013 installed ->Git cloned -> compiling UPBGE with youles help now.

edit: Success! I am now a blender test builder!



and here is a feature I requested and they added!

No more polling -> did he move?

Why are you so negative, Ace? There’s no point in telling him it can’t be done. If he wants to fork Blender, that’s praiseworthy. If he fails, he’ll have learned something. If he succeeds, that’s great. Let him go right ahead.

Not me!, it’s already forked by some bge developers who already know what they are doing, I am just learning now, and building test builds/bug testing :smiley:

1 Like

--------------Deleted--------------

Putting all of my personal feelings about the BGE aside, how would it even be possible to make an addon out of it. I thought that it was integrated into Blender core pretty deep?

I am not sure, I will have to poke around and see where it was mentioned again, it was during the discussion about how to.move forward with the bge, but there have been a few.

I know now that a lot of data is converted when you press play right now,

When a couple of weeks merge conflicts between his tree and trunk will be obscene, BPR will realize that the “fork it” slogan is FOSS biggest lie.