Blender Interactive Mode

Perhaps:

A. No coders typically hang out on BA except youle who feels pretty out in the cold I think, and LordLoki (or at least they are not commenting)

B. Right click select is not used by the BGE community

C. social media / facebook users and I touch base every day.

D. I use EVERY last bit of UPBGE and bge.

I know it’s flaws and even work around for those flaws,

maybe we could touch base sometime somewhere and discuss?

[I have used unity, ue4, godot, and blender and I know bge’s strengths vs weaknesses and have designed systems to dispel some of these issues]

maybe we could have a official date / time before the code sprint?

1 Like

As a user you can write a proposal for where you want the BGE to go and submit it to the developers in this post. If you can find a developer to take it on, great. But at the moment there is no developer actively working on the BGE within the Blender project, so there is no point in asking about all kinds of specific ideas.

If there are developers that want to have a meeting about the BGE / interactive mode for Blender 2.8, I suggest they mail bf-committers to arrange it.

3 Likes

I do not see this as a productive conversation.
On one hand BGE users feel they are being abandoned and are quite passionate about the state of things…
On the other hand we are clearly not being represented very well ( sorry Jacob…and Youle) for that matter…(they have good intentions)
Please remember that while most BGE users do feel neglected…we also realize no one has actually stepped up to take control of this situation in a tactful manner. Or have been unwilling to work within predefined guidelines.

I worry that future threads with similar topics will simply be overlooked, since most of them seem to have the same tone and BGE users are being ‘somewhat’ misrepresented. “the boy who cried wolf” scenario maybe…or just too much noise.

Since the code quest has not really taken off yet…it is probably too early to get concerned about everything and as stated this conversation feels non productive, if not, counter productive. I will leave you(any dev/module owner) with this and avoid any further noise to these discussions.

In a vacuume any voice sounds loud.

we have no champion, no voice.

If I sound angry, it’s probably because I have been watching this all play out for almost a decade.

I already forked UPBGE,
this discussion (about the design and function of the new engine)
should include the power users. (sdfgeoff, hadmi, Martinish, myself, etc)

and Justin, If you don’t think I speak for you, why?
(you in love with the BF like stockholm?)

Maybe you think you will gain favor by dissing us?
Youle has every right to be pissed. so does panzergame.

At the moment discussing details isn’t so useful mainly because we don’t have near term plans to work on interactive mode.

Most likely this starts after the code-quest since we need to get 2.8 stabilized before we start building on top of it.

Once a developer has plans to work on this, they can write a more detailed design and get feedback on that.

There was more news that Interactive Mode is going forward since this discussion was started. I was wondering if the work being done would be included in the daily builds and if there was a location online where I could follows it’s development. Thanks!

Development has not started yet, once there is a plan it will be announced.

I hope the interactive mode will not be just built for making games or game-like environments but also provides a good API so that roboticists can seamlessly can use it to do their research for manipulation and planning. I’m confident that Blender 2.8+ has the potential to address some of the major limitations of current popular 3D frameworks used by roboticists.

I have posted my opinions here in this post in length.

nowdays is very difficult to make specialized code because of the immense complexity of the hardware. So most libraries and features end up being generic because the author have no idea how the users will make use of them.

Take Unreal, its used for way more than making games and as a matter of fact EPIC even encourages it. For example is quite popular in architectural visualization.

Even the old BGE was generic enough to be used for a wide variety of tasks. Most likely interactive mode will be even more generic. Interactive mode will focus purely on making Blender interactive and not on game engine stuff mainly because Blender already has many of the ingredients of a Game engine. Real time rendering through Eevee, physics, particles, animation, python scripting , image and video editing, compositing, audio and much more.

Not brainstorming but.

Would be cool if instead of nodes, the whole system could work like unity’s api but in python…

e.g.

  1. each object with some bahavior has properties and some of them can be defined as a python class.

  2. each class is defined as a implementation of bpy.bge.Behaviour but should be able to be defined from scratch

  3. Behaviour class has a start(self, scene) and spdate(self, scene) functions. and there would be bulet properties on the class to help on the phisic logic like: self.collided_with or self.physics.contact_points

  4. Behaviour.start() is called once and Behaviour.update() is called every frame but there could be a property to define the rate of update of each object so we can save performance.

  5. Behaviour object can interact with the whole blender’s data though bpy.data including scenes, other objects and other Behaviour instances.

  6. and lastly everything should be able to fit on a sort of compiled executable for each platform.

In short… Wouldn’t be different from implementing per object handlers.

This is already possible

Anything user wise is exposed to the Blender Python API. The general rule of thumb is “if you can do it as a user you can do it with Python” . Blender Python API not only give control over the connections and creation of nodes for any purpose but also allows to create custom nodes that do not otherwise exist.

This workflow made it possible to make the animation nodes addon that is now in the process of being integrated as C code inside the Blender source as part of “all nodes” initiative.

So your feature request are very basic , technically speaking Blender Python API already allows for “interactive mode” you can make an addon that uses a modal operator to consume events and provide interactive behavior. The reason why none has tried that yet is because of the low quality of the Viewport which made difficult choice for live demos games etc. But now with Eevee everything has changed. This is the case because already the Blender Python API is very powerful and has not only complete access to user features but some of the inner mechanism of Blender that users cannot access. Of course this access is limited on a matters of stability and performance. Blender addons cannot create modifiers mainly because Python is a low performance language not designed for such heavy tasks. Interactive mode however is a low performance task well suited for the BPA (Blender Python API)

Modal operator are very flexible, they can run concurrently with other tasks and can block Blender from handling event or block specific events. That allows you for instance to use shortcuts as trigger that already used by Blender like “e” key is used for extrude. This is very flexible because it does not affect the key configurations setups.

So yes if you cannot wait for interactive mode you can already do this with Python. Interactive mode most likely will target people who don’t want the hassle of coding in Python but none the less it will have a Blender Python API like everything else.

Please note that the BPA (Blender Python API) is currently disabled in Blender 2.8 cause its about to go into some serious redesign to reflect the major changes that the new version brings to the users.

1 Like

I purpose we take UPBGE and make ‘sister commands’ where a user can choose to operate on BPY data, BGE data, or both.

if one was to modify the BGE scene in realtime - and this timeline / modifications over time were saved and occurred in the viewport timeline, anything would become possible.

UPBGE has a mesh creation API now,
we have BHTree from KX_MeshProxy()

there is nothing stopping old upbge from moving to new shaders.

The upbge code has been upgraded / refactored fror 24 versions now.

they have many huge commits lately.

@jacqueslucke Since you are now working on the interactive mode, I would recommend taking a look at this too.

I’ve been exchanging emails with Benoit Bolsee and had some nice conversations about future of the interactive mode. Of course, he is planning everything but I tried to be helpful by providing him information on new physics solvers. Here’s what he told me in one of his emails about his current plan:

" … I have indeed started a project to bring interactive mode in blender 2.8 to a point where it can be used for game prototyping, interactive simulations, robotics, etc. It’s a one year project but I’m only working 1.5 day a week because I have other projects on the side. The project plan is as follow:

  1-  bring 'continued physics' mode back : physics simulation runs even if scene frame is not incrementing - done already for rigid body
  2-  bring local time to animations so that animations can run independently of scene frame
  3- create an internal event system to exchange events and messages between scene entities
  4- create events from physics simulation and interaction
  5- create a logic node tree system to allow game logic (Points 3-5 will be done in collaboration with Jacques Luke who has been hired to create a real-time nodal logic framework in blender 2.8)

There is no guarantee that this interactive framework will be real time but it should be close to it. The graphic rendering will be Eevee. Everything will run from the 3D view, which can be customized to be just a window frame (or full screen) with no menus and buttons so that it looks like a game window. ..."

Based on the emails we exchanged later on, Benoit has also decided to use one of the latest versions of Bullet in Blender for better performance and more stability.

You can see some more updates on this in a parallel thread here where I discuss the choices for soft body physics solver that the Interactive Mode developers are considering.

2 Likes

upbge already uses the newest stable bullet…

Are there any news about the interactive mode?

1 Like

the only rule about interactive mode.

don’t talk about interactive mode.

check youle’s work out -https://github.com/UPBGE/blender/tree/eevee_merge8
here is bge - using eevee to render and BPY works in the engine

I would be surprised if we hear something before the 2.80 release, as they are obviously focusing on that at the moment.

I find it rather disrespectful towards the developers who are working way more transparent than ever before to make this kind of pointless claim.

There is also no need to mention UPBGE in every single of your posts. This thread is about the interactive mode.

2 Likes

You really need to work on putting your thoughts across. This passive agressive stance you have this entire thread doesn’t work at all, in fact it hurts your cause and undermines anything you write even if valid.

If you want others to consider it more then I would steer clear of all these toxic bits here and there.

Unfortunately it’s not only about what is right but also about what is presented in the right way. (or maybe fortunately)

3 Likes