UPBGE 0.2.5b release!

Out of the top of my head, relative to the 0.2 series:

  • Mesh manipulation is awkward, or cannot create meshes out of nothing (make a procedural wavy terrain is hard in the BGE, not so much elsewhere).
  • LibLoading was a touchy issue, did not try with 0.2.5 yet, but apparently we need to be careful when swapping scenes. Why not…
  • Python quirks: Spent a week trying to use a thread for networking in Python, turns out there’s quite some limitations when doing this. I won’t go into details, but what worked right away in a Python interpreter took me a week to understand why it was misbehaving in the BGE. Concluded that BGE added extra constraints which clearly limit this use case, to the point that it’s impractical.
  • Python quirks: Cannot use native Python extensions. Some missing header files. It is possible to cross install the extensions but it is a deep pain in the butt.

I remember also having others issues with the flow of things when writing code for a game, lack of control or feature… I’m not saying that because I like trashing on UPBGE. But some things are really awkward, and I don’t know how to fix that other than just using something else.

What’s currently included allow you to make some set of games, but I apparently tried to push UPBGE’s boundaries too far. My simpliest cutting-edge project was about making a rudimentary networked game (just being able to move and shoot on boxes) using the latest best practices and Python libraries, it was super awkward to write in the BGE. Lot and lots of quirks.

Can this be solved at some point? I don’t know, don’t care that much either. Still trying to see what works and what doesn’t, but as someone being paid to develop software, I can assure you that the BGE is not the most productive tool. Is it fun? Yes. Is it limiting? A lot. But if you have small projects it will be fun to toy around.

I don’t like writing huge posts like that, but I don’t come from anywhere.

2 Likes

Thanks for sharing about working with Upbge 0.2

Yes i mean Upbge 0.3 and coding is very easy and well suite for small scale solo games.
Sure i would not perhaps recommend Upbge to make big scope games or next gen open worlds and terrain with ocean, but perhaps this will change when Upbge 0.3 will get new optimization systems.

It’s sad about coding if Upbge gets limitations with other existing open source libraries.
I don’t know for LibLoading, but i think there will be lot of changes with Upbge 0.3 with new loading systems that should make it more suited for packaging distribution or selling.
About other Api usage i don’t tested it.

Upbge 0.3 i think is aiming to get rid of main previous Upbge issues and limitations. Graphics upgrade using Eevee is a huge step forward already.

Just wondering…

Does this release happen to fix all the bugs with compound parenting physics?

So upbge 0.3.0 has BPY meshes, making procedural content very easy when combined with the weld modfier

Tristan had a object mesh editing api exposed as his last act and it can still be applied to 2.5

1 Like

About compound physics

If you want to spawn new instances of a compound root, we have to unparent all object children using this core, and then spawn the new instance of the core, and then reparent all the other objects.

A quick fix would be a way to have a unique bullet shape per compound core if “make unique” is checked or something.

1 Like

I found it easiest to keep as much of the networking code outside of the BGE as possible. All of mine is inside a class that handles the threads itself. That class doesn’t interact with the BGE at all, so you can run it straight out of the interpreter. Then, each frame, I check that class to see if it’s got any actionable messages (they’re stored in lists and dictionaries) and adjust the game accordingly.

Sorry, what’s that racing game above? Fred KS, is that your game, made by you??!!

Off-topic, but keep in mind that your Python thread only ever runs while BGE is executing any Python code. Meaning that if on some frames no Python controller is triggered, your thread will be stopped/nothing will be listened to/executed.

1 Like

To clarify, are you saying it’s possible to create meshes during runtime now, or are you talking about using scripts to make content in the editor?

Also, congrats on the release!

2 Likes

He is saying that it is possible to create meshes during runtime using bpy as you can see in this BPR’s video :slight_smile:

2 Likes

when the fps is low, the actuator mouse stops working example.7z (2.3 MB)

The file runs smooth for me. Activate Render querys should be done only to see where are the graphic issues.
It consumes a lot resources.

click on the mouse to add the cube until the fps drops below 30-35 (sorry for my bad english)

ive budgeted for an RTX already lol, will sort myself later this year with a new rig bud i gotta produce quicker results and no more delays with what im currently using lol

Fred/K.S

Great work guys! So those changes that you are making to 0.2.5, will they stay in that version or will they come to 0.3.0 as well/ do they even affect 0.3.0 in any way?

2 Likes

0.2.5 is kinda like a bug fix release as far as I understand, to leave “Legacy” version in good shape

While the new work will all commence on 0.3.0,

0.2.5 will be bug fixes only

(unless someone besides loki or Youle feel like working on it)

Again this is second hand information and it is all up to change.

3 Likes

0.2.5 version will be the last version with “old” render. Maybe I will release a 0.2.5a with a couple of bugfixes (v-sync and something more).

All the new development is performed over 0.3 alpha

5 Likes

The added cube is TOO HIGH poly. Use the Decimate modifier to reduce polygon count :wink:

I did this to show the error. But nothing I already sent it to github https://github.com/UPBGE/upbge/issues/1201 and it is already being investigated

uncheck ‘Use Frame Rate’ in the System sub panel on the Render tab. It worked for me.