Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UPBGE Development ideas #1136

Closed
14 of 27 tasks
youle31 opened this issue Mar 4, 2020 · 27 comments
Closed
14 of 27 tasks

UPBGE Development ideas #1136

youle31 opened this issue Mar 4, 2020 · 27 comments

Comments

@youle31
Copy link
Collaborator

youle31 commented Mar 4, 2020

  • Add more builtin uniforms to 2D filters (projection matrix, viewmatrix, a noise texture?, eevee utilTex for ambient occlusion filters? (maybe needs to delay the end of DRW_game_render_loop to have the textures available when filters are rendered)).

  • Add more 2D filter templates (Denoise, HBAO+...).

  • Restore libload if someone is interested to work on it.

  • Implement smaa (I read a bit doc about it here: https://github.com/dmnsgn/glsl-smaa + lordloki branch.

  • Remove WorldIpo/Replace with world->nodetree actions.

  • Recover ObColor/Lights Ipos.

  • Find why KX_GameObject.updatePhysicsShape sometimes needs several frames to update.
    Capture
    So this is not updatePhysicsShape the issue. This is that when you replace gfx, it needs several frames? Or when you add an object?
    A note was added to the release notes: bpy.context.view_layer.update() can be called before updatePhysicsShape() if we don't want to wait.

  • Recover ReplaceMesh use GFX/use physics.

  • LOD fade?

  • Add Lerp to smooth mouseLook movements (does it already exists?)

  • Create a "game workspace" like "modeling"/"sculpting"...

  • Recover some upbge 0.1.9 to 0.2.4 commits ? See upbge 2.7 git log.
    NOTE: We already are at UPBGE 0.2.2 level. (Thanks lordloki!)

  • Improve profile (remove some things from rasterizer and add it in other categories)

  • Clean up unused actuators.

  • Cleanup/reOrganize headers.... with source/tools.

  • Cleanup lights files/code.

  • Cleanup background code (zenith/horizon...deprecate...). Actually was already done i think

  • Cleanup python API.

  • Documentation (Thanks to lordloki for the work already done!).

  • Adapt UPBGE/testfiles repository to upbge 0.3

  • UPBGE Python console

  • In physics tab, add an option to choose if we want to create the shape from evaluated mesh or original mesh.

  • In physics tab, remove invisible option as we can already have the object invisibled in object tab > display as wire

  • Disable old SoftBodies UI as they are not supported using blender meshes. The physics behaviour works but the meshes can't be deformed as the deformers code has been removed. EDIT: SoftBodies have been restored now. Thanks Youle!!!

  • Restore python components templates

  • Implement a way to remove anchors (constraints between rigid body and soft body - like softbody pin). See createConstraint code

  • When logic/physics/render loop can't be executed at targeted framerate (default 60), physics and logic can be updated several times in the loop. However, there are 2 settings : Max Physics Steps and Max Logic Steps limiting the amount of potential updates per loop.

ideas:

  1. Check if we can merge Max Physics Step and Max Logic Step setting (see in the log why there were 2 settings, see if it could be interestin to keep both....). Also, in current code, only max step amount is taken into account but it can be confusing for user who wants to reduce these steps because he has to reduce both settings.
  2. See if there are potential not needed things which could be avoided when several logic and physics updates are done per loop: for example, we could try to avoid to call reinstancePhysicsMesh several times because it seems that there are very few cases where it could be needed: e149c2a
  3. Improve tooltips.
    .............
    List only editable by commiters, please.
@BluePrintRandom
Copy link
Member

I have 1 commit :D

but your list looks great.
only a few additions

  1. investigate using cycles or rtx to get at ATAA

  2. accelerate vertex skinning with a game optimized armature modifier

  3. a new blend type for alpha for water
    render 1 time opaque (to get SSR) - render again alpha - (to get at refraction)
    mix the two using Fresnel

-blur pass on alpha hashed materials

@RomStef
Copy link

RomStef commented Mar 6, 2020

I'm not a committer and i don't have enough experience for helping in development and upgrade upbge but i have searching how the other softwares manage the LOD Fade effect and the unity methods seems well documented if this can help

https://docs.unity3d.com/Manual/class-LODGroup.html

@RomStef
Copy link

RomStef commented Mar 6, 2020

workspace UI proposal for game logic

upbge_interface_proposal

@youle31
Copy link
Collaborator Author

youle31 commented Mar 6, 2020

I'd personally include the text editor in the opened things

@lordloki
Copy link
Member

lordloki commented Apr 17, 2020

I did this start blend mock-up
image
This mock-up include a new Game Engine workspace

@lordloki
Copy link
Member

lordloki commented Apr 17, 2020

OK, I don't really know how to activate eevee viewport shading to rendered from start. It always start in solid mode:
image

@youle31
Copy link
Collaborator Author

youle31 commented Apr 18, 2020

I like the first version without the file browser, but in solid mode. Else, I won't replace the point with a sun (but i don't really mind). I'm ok with the first version in solid mode.

@lordloki lordloki changed the title Development ideas UPBGE Development ideas Apr 25, 2020
@lordloki lordloki pinned this issue Apr 25, 2020
@lordloki
Copy link
Member

Closing the issue to make it not visible from tracker list. As it is pinned this is not a problem as it is showed in Top part.

@IzaZed
Copy link
Collaborator

IzaZed commented May 7, 2020

Concerning LibLoad, I get very low framerates and strange behaviour (some code not working, being applied at wrong times for example) when loading a file with the Game Actuator.

What would be the best way to completely jump to another .blend file at runtime?

Currently using a 0.3.0 build from April 17th

@youle31
Copy link
Collaborator Author

youle31 commented May 7, 2020

I tried to rework a bit on game actuator and we merged some work 13 days ago: #1191
@IzaZed : you can try with a more recent upbge 0.3 and if you have some bugs, you can report issues with the most simple test files you can (if possible without using logic nodes addon)

@IzaZed
Copy link
Collaborator

IzaZed commented May 7, 2020

It's good in recent builds 👍
calling python LibLoad still results in an ACCESS VIOLATION, but I think that's a known one

@youle31
Copy link
Collaborator Author

youle31 commented May 7, 2020

LibLoad has been replaced with scene.convertBlenderObject/scene.convertBlenderCollection, I won't work on it. If someone wants to work on it, the old code is still there but as we have convertBlenderObject/convertBlenderCollection and that we can use bpy.ops.wm.append or import_mesh_ply or import objects from different files types or another .blends then convert it into gameobjects, it seems to me that libload is not needed anymore. For Async, we'll maybe try to find something but with the new system (not with libload unless someone wants to put his hands in this extremely complex code).

@lordloki
Copy link
Member

lordloki commented May 7, 2020

I think import alembic is multithreading and asynchronous. I have to check it

@BluePrintRandom
Copy link
Member

another thing to consider - the new intel threaded container type should help us potentially - maybe we can use it in a few places?

@UnidayStudio
Copy link
Collaborator

Why not the same design that 0.2.5 have?

OK, I don't really know how to activate eevee viewport shading to rendered from start. It always start in solid mode:
image

Why not the same startup design that 0.2.5 have? Because it's already well known and tested. From my experience teaching upbge, more tabs opened by default may cause confusion for the very beginners. Thanks for your work! :)

@Trample-ingame
Copy link

there will be a chance to have all deform modifiers working in UPBGE during the game? it would be a great help instead of animate all with armature and shape key which is a boring long procedure

@youle31
Copy link
Collaborator Author

youle31 commented Jul 23, 2020

deform modifiers are working during runtime in upbge 0.3

@BluePrintRandom
Copy link
Member

BluePrintRandom commented Jul 23, 2020

could we make a way to overide the texture a modifier is using with another image buffer?

for instance replace a static image with a video texture?

@Trample-ingame
Copy link

youle31 i mean UPBGE not with blender and eevee
i tried today with cast, lattice, also displace, they keep the modified shape but don't animate during the playmode

@lordloki
Copy link
Member

Hi @Trample-ingame ,
Currently, we have not planned new development for Upbge 0.2.5. At this moment we will put several easier fixes on it but all the new development will go over Upbge 0.3.
This issue is a collection of ideas for 0.3.

@Trample-ingame
Copy link

ah :( , so about 0.3 i want to say, i honestly think the old blender is more intuitive and blender internal /render was very fast to create materials with texture and set texture parameters at once in 10-20 seconds and get some very cool stuff, now in the new one i don't even know where to touch, if the property layout would had meant to be closer to the old blender it'd had be much easier to use it, i still don't understand why blender 2.8 it's like a now software with new icons that confusing me in search of tools, i tried sometime to use the new blender but i go back after 10 minutes, i want to switch to the new lite eevee render mode but it's like i have to learn a new software with scene and materials creation much longer with nodes :/ it's stressing, also i'm waiting to have 0.3 much more stable,
i don't know how easy it is but you could improve the conversion of materials and texture to cycle to reproduce the exact same effect i have in blender internal when for example i set normals, alpha, influence color and hardness to a single texture, i tried it and the result was horrible, at least i wouldn't have to rebuild all materials of my games, it would be so stressful

@BluePrintRandom
Copy link
Member

ah :( , so about 0.3 i want to say, i honestly think the old blender is more intuitive and blender internal /render was very fast to create materials with texture and set texture parameters at once in 10-20 seconds and get some very cool stuff, now in the new one i don't even know where to touch, if the property layout would had meant to be closer to the old blender it'd had be much easier to use it, i still don't understand why blender 2.8 it's like a now software with new icons that confusing me in search of tools, i tried sometime to use the new blender but i go back after 10 minutes, i want to switch to the new lite eevee render mode but it's like i have to learn a new software with scene and materials creation much longer with nodes :/ it's stressing, also i'm waiting to have 0.3 much more stable,
i don't know how easy it is but you could improve the conversion of materials and texture to cycle to reproduce the exact same effect i have in blender internal when for example i set normals, alpha, influence color and hardness to a single texture, i tried it and the result was horrible, at least i wouldn't have to rebuild all materials of my games, it would be so stressful

  • I would finish your current projects in upbge <= 0.2.5 and then try playing with eevee,

it's actually very easy to use - the principled node can describe almost any material.
if you don't get hooked on it 0.2.5 repo exits if you want to do PR for it. (pull requests)

@RadhaMadhavaDas
Copy link

I'd like to see a UPBGE development fund, and dedicated paid team members, with a support team as a paid option to help users learn and troubleshoot the engine. There should be a marketplace for assets and prefabs, as well as promote games in development, as well as releases.

I can help with these things if I can find someone on the team who's willing to talk?

@sammtrend
Copy link

sammtrend commented Jan 25, 2024

Hi,
Not sure this is the right place to ask.
I would like to know if this is possible to request new sensor. I would like to use loadcells from here :https://www.phidgets.com/?prodid=229
in combination with https://www.phidgets.com/?prodid=1270. There is an API for multiple coding languages (C, python,...). I can do testing as I have those devices with me. Any workaround to make this work as an input in upbge to move an object based on the applied load would be very appreciated.
Samm

@Trample-ingame
Copy link

Trample-ingame commented Jan 25, 2024 via email

@JYamihud
Copy link

JYamihud commented Feb 27, 2024

Rendering

  • Make motion blur button in the render settings do something in the game.
  • Make Ambient Occlusions work in the game.
  • Add Z-Depth and other buffer types into the live compositor, so mist could be created without falling back to volumetrics.
  • Investigate making volumetrics with non-boxy shapes have their shapes visible in game.
  • Investigate into Shader To RGB node so it could be used on Transparent Node to capture the image underneath. At the moment, the texture captured this way has black color with 0 opacity. It could be used for various effects like for ripples in the water. At the moment it is somewhat possible with Screen Space Refraction, but it is not ideal.

Performace

  • Investigate running Depsgraph updates in a separate thread. As far as I understand it is CPU based and runs before the rendering ( on the GPU ) which could instead be done in the same time ( because those are two separate chips ). This could result in one frame delay. Basically the renderer will have to render the previously calculated frame, while the next one is being calculated by the Depsgraph. But since depsgraph takes about the same time as rendering ( at least in my case ) it could be very beneficial to have this delay option to improve performance significantly. See: Move Depsgraph to Separate Thread #1877

Stability

  • Investigate fixing jiggling at distances. Apparently the coordinates of various geometry points are stored in such a way that reduces their precision the larger the number gets. I understand it like this: say there is a point at X being 0.00000001 but if you add a 10 to it it will be just 10.0 because the 00000001 will get cut out to make room for the number on the other side to save some memory. In this particular case is not that big of a deal. But when you go into very large numbers territory it becomes an issue. To demonstrate it, you can launch an object with very fast speed away from the center, with the camera parented to it. You will see that this object will start jiggling and at some point it will get quantized into a blocky mess. I think to fix it, we could instead of using World Center as the center, use the camera position as the center. Or at the very least, shift all objects so the camera will end up in the center, once a certain threshold is crossed.
  • Fix the bug with full-screen messing up with screen settings, especially with multi-screen setups.

Physics

  • Add option to read collision impact forces. There is a documented method for it, but it is not for Bullet Physics.

Vehicle Constraints:

  • Add options to read applied forces on wheels.
  • Add options to read resistances applied on wheels from other objects.
  • Add options to read whether the wheel is touching the ground. Or what force is exerted on it's suspension.

@BluePrintRandom
Copy link
Member

BluePrintRandom commented Mar 28, 2024

I would recommend wrapping armature physics object using bt_multiBody, (maybe for 4.3?)

this can be used in conjunction with a 'target action armature' to attempt to match with the ridged body armature.

@JYamihud - Multiple passes is already planned by composition team (AOV / Depth etc)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants