[Bf-committers] UPBGE Discussion.

Jorge Bernal jbernalmartinez at gmail.com
Mon Nov 14 10:25:08 CET 2016


Let me introduce a bit more the purpose of this request for all people that
don’t know what UPBGE is.

During last BGE meeting, around one and half year ago, it was established,
at least, 3 ways to follow regarding the blender game engine. To summarize,
one of them was to adapt the blender code to embrace existing external
engines (under this way are Armory, Panda, Godot, etc), another one was to
create a new internal and tiny game engine (no one is working in this way
at this moment) and the last one was to refactor the BGE progressively to
reach a new up to date standard (UPBGE is a project that follows that last

Then, taking into account, that the current workflow that we were
conducting to modify the BGE (through developer.blender.org differential
diff/patches) was so slow for a big refactor as this one it was done a new
branch/fork in github (https://github.com/UPBGE/blender).

During this last year a great effort has been put by UPBGE/BGE developers
to refactor the code with that goal in mind. Now our purpose is to try
backporting all the new changes and refactors into the 2.8 branch (or a
parallel one) to bring the BGE to a new life (and successful one, we hope)
life. :-)

Here below there is a summarize of main modifications done to BGE (check
release notes in https://doc.upbge.org/ for a deeper explanation):

-          *Main Refactors*:

o    The event system was totally reworked. Now there is a Device folder
containing all device related code (keyboard, mouse and joysticks). With
this refactor we can assure, at last, that the game engine won’t lose
events even with low-very low fps anymore. Additionally, the joystick part
follows the new database standard defined by steam to homogenize the
joysticks nightmare.

o   A new common launcher system was developed. It was done to reduce
duplicated code between embedded player and external player.

o   New FBO renderer using GPU_framebuffer / GPU_texture. Off screen
rendering consists in render the scene directly to an off screen (FBO with
color texture and depth texture) and at the frame end render the off screen
to screen. Internally a lot of things are improved and simplified like the
2d filters, render textures and soft particles.

o   Multitexture mode was removed to fulfil with new OpenGL 3.3 & on goal.

o   Vertex Arrays + Display lists were removed too. At this moment, we have
only VBOs. The VBOs were improved a lot to overpass the Vertex arrays +
Display List performance.

o   Refactor of Rasterizer OpenGL calls. The goal of this refactor is to
reduce the opengl calls outside of Rasterize module.

o   New 2D Filter python Proxy. The user can now access to the filters from
the scene in python from a filter manager.

o   Variable vertex memory size implemented. A new system with template
vertex class is used internally. This system allows to reduce memory usage
by reducing the number of UV layers used, in the same way the mesh
transformations are optimized.

o   Triangle rendering. All the meshes are rendered as triangle now.

o   Lots and lots and lots of more tiny refactors and cleanups. You can
check them in the release notes.

-         * New features implemented*:

o   Geometry instancing

o   Parallax mapping

o   Subsurface Scattering

o   Realtime Cubemaps (including reflection and refractions)

o   Python components

o   Mipmap per texture

o   GLSL Text Highlighting

o   New LOD system

o   New movement Sensor and Joystick Vibration actuator logic bricks

o   Joystick Sensor adapted to Xbox360 joystick standard.

o   Constant material values

o   Geometry shaders

o   Ray sensor mask

o   Update of bounding box in realtime

o   New python console interpreter can be launched in-game

o   Soft particles (also called Depth transparency)

o   Static shadow rendering

o   Sky background render

o   Material Texture and lamp texture LOD bias

o   Access to Vertex UV list

o   Access to collision contact points

o   Access to additional properties of material and texture in realtime

o   ImageRender and ImageMirror HDR

o   Physics shape replacement and duplication

o   Physics suspend and resume

o   Access to Text Dimensions

o   Access to python polygon and vertex

o   Debug bounding box and armatures

o   Percentage closer filtering shadow

o   Material switch

o   Multiple vertex color per layer

o   World exposure and range

o   And a few additional ones. You can check in the release notes.

-          *Work on-going at this moment*:

o   GPU Hardware Skinning

o   Planar reflections

o   Audio effects (revert, echo, etc)

o   Deferred rendering

o   UV Scroll

o   Static Batching

o   SCA refactor and cleanup.

o   And a lot more.

-          *BugFixes*:

o   Lots of bugs (around 40-50) reported in developer.blender.org fixed.
Also fixes for bugs not reported.

For contact and discussion the UPBGE team are composed of

Official Blender BGE devs:
- panzergame (Tristan Porteries)
- lordloki (Jorge Bernal)

And only upbge devs:
- TwisterGE (Diego Lopes)
- youle (Ulysse Martin)

El 13/11/2016 5:24 p. m., "tristan panzer" <republicthunderbolt9 at gmail.com>

> Hello,
> I propose to everyone interested in BGE to talk about a possible
> replacement of BGE by UPBGE (upbge.org) this week on IRC. The discussion
> is
> to know if UPBGE can be choose, what change will be needed for BGE related
> to 2.8 viewport, and more…
> The team will be here all the week after 21 GMT in #blendercoders, and
> frequently in #upbgecoders.
> Tristan.
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> https://lists.blender.org/mailman/listinfo/bf-committers

More information about the Bf-committers mailing list