I was trying Upbge 0.3 for making a side project (old school retro fps), mainly for fun and because Upbge workflow is great.
The game runs fine at 60 fps with 1080p resolution.
Adding logic brick loop idle animation to the npc character, the game frame rate drops to 16fps.
Re starting Upbge and the game, the issue remains.
(My Windows PC runs games like Cyberpunk 2077 in 1080p without issues).
The Npc model is low/mid polycount that should run fine on most today game engines.
Upbge 0.25b runs just fine at 60fps with 1080p and having Npc character playing idle animation.
I guess meanwhile the performance issue is adressed, it’s better to use Upbge 0.25b or the new Range engine version.
Most people using UPBGE are using the old version. Otherwise, you will be in an indefinite holding pattern as the team continues to bet the farm on Eevee (a generalist DCC render engine with accuracy in mind) becoming fast enough to make much more than walkthroughs.
There is also Armory and SABGE which are also projects made specifically with Blender users in mind, though I do not think either of them are truly ready to make exhaustive game titles yet.
I think you are right.
Eevee shaders and fancy effects are not designed for maximum real time performance.
Despite some improvments it is developped by Blender as a viewport rendering and not as a game engine rendering system.
I think it would need to rewritte rendering architecture as game engine to compete with others engines and open source ones.
I already deep tested Armory long time ago and there was too many issues while Sabge is work in progress so not ready and made on author free time.
You must be right better use 0.23 Upbge (0.25b has many bugs) or better new Range.
Switching to node based material instead of surface then assigning a texture with object UV coordinates, Upbge 0.3 jumped from 16fps to 60fps again running at 1080p.
The rasterizer stat running the game is back to a low value.
So something must be wrong when importing animated characters about the automatic material setup and it’s UV coordinates.
So the advice is change to shader nodes and assign at least a color map using object UV coordinates.
I see you don’t have the normal map applied, in this post (on a thread about the same performance issue), the suggested solution is to disconnect the normal map. I deduce the tangents required for normal mapping being recalculated per frame are the culprit here. As far as I can tell, BGE and UPBGE 0.2 do not update the tangents in game, this makes the normals look off or even inverted when the mesh deforms, but I understand it was a sacrifice for performance’s sake.
In UPBGE 0.3 there is an addon (normal map nodes to custom) that replace normal map node with an optimized version
Good to know, this could be directly integrated on Upbge 0.3 next releases as some checkbox option for animated models.
Also someone found Geometry nodes imrpoves performance, but there must be limitations.