Upbge - 0.3.0

Is there a video on the exporting process of the run time?

thank you

Eevee rendering quality is great, performance should be good enough for indie games using linked scenes, only one scene is loaded and active for the player.
I’m not worried about Eevee performance and i prefer maximum quality.

Some people like Mark Telles are showing Upbge can do upbar quality games.
Add more diversity on textures, more scene details, more particles effects and you got a great Upbge showcase.

this should be able to support mega huge games already*

the ground is formed of tiles as you walk, snapping tiles off the back (saving them) and re-using them ahead, using kdtree.find_range()

new weld modifier was the last missing piece.

there is 1 huge graphics mesh made of ‘patches’ and then 100’s of physics tiles (invisible) that ‘own’ graphics patches

place physics tile -> place graphics tile - Wait a few frames -> update physics shape

(meaning the terrain is all 1 drawcall)

2 Likes

Why people try to make mage huge games, i really don’t understand :laughing:
Fallout 4 reduced their map, instead they put all interesting things and locations near each other, for the player to get less boring empty zones with nothing to do.

How will you place vegetation, buildings, characters or vehicles on this huge big world ?
Without procedural this will take lot of time.
How do you manage instancing and activation of objects and scripts, because i don’t think having the whole open world thousand characters active at same time will be good for performance.

1 Like

objects don’t exist when the tile is not there, I load them in when the tile is populated / load them out / save them when the tiles are loaded out or you hit save / quit

the world is literally made as you move
I have a system to construct buildings in game like fallout :smiley:

also the world is procedural but editable in game*

it’s almost all ready to go - it was a lot of hard work.

next up is some optimization stuff (draw call batcher using bpy)
to turn buildings all into 1 draw call (instead of a draw per module)

this is a tool to make games like fallout 4*

but it’s basically doing this - >

with tiles from behind you into the map ahead

3 Likes


Hello friends!
I’ve just now tested Upbge recent build and it actually plays Resilience Satelle … at 1.5FPS but it does play :smiley:
Everything looks exactly the same as in Eevee, I was expecting black materials and such, but no… It’s all here :star_struck:

…I Feel just like Clark Kent “I have so many questions!”.
I’ll need to catch up on Upbge, I don’t know much about it yet.

10 Likes

@rogper Looks Wonderful man keep it up are you making a game yet?
or still experimenting with 0.3.0?

Fred/K.S

Hello, Thanks! I was just testing Upbge. Resilience Satelle will be a virtual reality movie, that way will run at 30fps, but because it is all made for Eevee I was courios if it would work in Upbge and how good it would perform :slight_smile: Assets and materials are linked, materials have complex nodes and all just works! It’s Impressive!

3 Likes

just remember that joined objects can’t have LOD - but lots of single objects is not good for performance either

so it’s a balance - like each buildings draw calls can be absorbed into 1 call
also we don’t have GPU tessellation yet - so breaking up the ground / mountain into lots of patches with LOD is a good idea too

my terrain streamer attempts to get around the terrain issues - but I need some help filling tiles in C instead of py
right now in pure py it works pretty well,
but I guess that compiled C is like 26x faster

1 Like

Would you work on a Game Project sometime soon?
What are your thoughts on using UPBGE?

Fred/K.S

@BluePrintRandom:
Thanks for your comments! I have made a cycling game on the past for Unity, for a client, and I made all objects like you say. For example a house would be only one model with only one atlas for textures; Terrains were hand cut in chunks of 200 by 200 meters. Both houses and terrains with 3 levels of LOD.

For Resilience Satelle I wasn’t predicting that Upbge would get this nice, so I went for the safer approach of making it an off-line rendered VR experience and, as such, made everything with collection duplicates to save render and viewport memory.

If I restarted everything from scratch and made everything compatible with game engines I have no doubt that it could run at 30+ FPS with the exact same look :slight_smile:

@Fred_K.S:
Yes, if I ever made a new rice vr project I wouldn’t mind to add a bit more of interactivity to it.
Upbge, featuring all this compatibility with Eevee seems to be the perfect candidate for such task.
I made Blender Asteroids in the original BGE and loved the experience :slight_smile: I love the bricks logic too, so far it still is the best for me.
My only concerns for now is the output. I need to learn more about what options Upbge offers to distribute the final output. I’ll pay close attention to this thread from here on.

1 Like

super great news!

Render Attachments! in eevee! - > Aov = arbitrary output values = offscreen buffers!
https://developer.blender.org/D7010

This patch adds support for AOVs in EEVEE. This patch migrates Cycles AOVs to Blender AOVs. For EEVEE it generates the AOV code paths in the GPUMaterial. A generated GPUMaterial can have one output active. Based on the renderpass ubo the right output is selected. A future development would be to output multiple outputs in a single draw command.

Due to the loosely coupling between a viewlayer, material and 3d viewport it is hard to determine if the user wants a value or color output. This needs a different user interface in the node so it is easier to select what output is desired.
When doing final rendering upto 8 AOVs are supported. In the Viewport the user can select any AOV.
In order to do exactly the same as cycles did before we need to add a separate validate/verify function to the engines. Cycles implementation also had some limitations. We need to check which limitation is sufficient or that we want to add a special RenderEngine method for this.
Special note. Treat this patch as nice to have. It could still need some polishing.
1 Like

for a while, upbge has not been built with cuda support, or at least it doesnt work. with cycles as an available renderer, i think its a good idea to be sure that works.

1 Like

I think loki’s recent builds all have cuda :smiley:
@lordloki_reloaded coorect?

yes :slight_smile:

3 Likes

is OpenCL supported in UPBGE 0.3 ?

I’m not an AMD gpus user, but I guess it is supported. But CUDA and openCL are only used for cycles rendering, eevee uses openGL

so a upbge just uses the CPU ?

no - openGL is a language that compiles shaders on the GPU and draws them

eevee is like old bge + more modern openGL guts

2 Likes

Think i’ll go nuts with this! And i’ll get this straight cause seems we playing dumb right here ! CAN WE GET A GAME ENGINE INTEGRATED INTO BLENDER DONE ? SPEAK ENGLISH ? Got it deleted, now any other excuses for not get it ready and all the alternatives start to appear! I even deleted all my work because of this community discussion about how NOT to make a Blender game engine! When will it be ready? When can we start making games in Blender? I want to finish my project! Why is it taking so long ? Why it was deleted anyway? And why is this so irritating about about a tool toy not to be made? Why is this so important not to have game engine integrated into Blender? And why there is always something it’s missing? Especially basic functions! Why there are not enough tutorials? Why there are only 2 devs working on industrial scale program? Why this can’t get no funding and donations? Why is this taking FOREVER? Why it’s never stable? Will it be ever get done? We need to know if we can create games into this !