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.
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.
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.
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.
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.
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
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?