The Biggest Blender Release expected in 2018 (Eevee) - The Workflow Project !!!

Yeah, been able to switch to java would be nice too.

Jython exists, but it seems (?) frozen at 2.7.

I don’t think it’s very likely. Making a game engine is already a really difficult task, much less porting its scripting language to run on different platforms. It’s not impossible, but it seems more likely that BF would want the cleanest and most efficient way forward, and would just choose a language that is an efficient language. Doesn’t really make sense to try to make an engine look amazing and then choose a relatively slow language for code execution, especially if you don’t have to and speed is a concern (which it is, for games).

The thing is, Python is designed to be able to run C code (and to be able to run Python code from C), but what we lack is a strong environment to do so. I mean, there is a way to make C libraries for Python (think of NumPy, OpenCV, etc…), and I would love to make some librairies for the BGE, but the hardest part is to get the good dev environment for it.

I’m more of a Python dev, I love Python, but it can lack a bit of power in some cases (in most situations writing good algorithms is the only limitation with Python). Now, I have little experience in C/C++ coding, so I might be able to develop some functions or so, but I have no clue whatsoever as to “how to setup the damn C env”…

Is there a way to design Blender-specific CPython librairies ?

Coding bottleneck problems in C while keeping the fluentness of Python for the general logic would be awesome.

I couldn’t disagree more that Python is a nice language!
I am used to type-safe, compiled languages. That means my workflow is that I code and depending on the IDE, I have to compile it first or I can directly hit run. The result of that is that at least all the changes in the code I have made are checked. If there is a typo, any kind of syntax error or type mismatch, the compiler tells me that immediately and also exactly where.
In Python you have to execute all possible branches in the code to be sure. Meaning, you have to write additional code, just to prevent syntax errors from happening. In the case that you made a typo, the compiler doesn’t even know that. When I code e.g. in C#, I can basically focus on what is supposed to happen, as the compiler is going to tell me about all the syntax and typo issue. In Python I have to take care of that too, meaning I can not completely focus on the task I am trying to solve.
For me, compilers and programming languages have evolved over the years and some really useful techniques have been developed. Languages like Python or JavaScript are a huge step backwards in that regard. That’s why I hate absolutely hate Python.

And yet, it makes absolutely no sense in Blender to switch to a different programming or scripting language. Being realistic, we all know that Python is not going to be replaced because of the game engine.

And with relation to this Topic Eevee also heavily depends on python so it means that if Eevee renders such results in Realtime in blenders viewport then i think that the same is for the Game Engine. Because i mean if its heavily dependen’t on python then it means the same For the Game Engine.

What im trying to say here is that the same results produced in Eevee can be replicated in tbe Game Engine all we need then is stability in the Game Engine.

Then we dont have to even change programming language’s.

Fred/K.S

The goal of the Blender Foundation is to develop Blender. Developing or extending a programming language on top of it would be a waste of time. Developing compilers is a huge undertaking on its own and extending a programming language would be an even bigger undertaking. The worst thing would be that this wasn’t Python anymore, but Blender’s Python dialect.
There are already ways to run Python on Android as far as I know. We don’t have to talk about iOS, because there are legal issues which prevent GPL code from being deployed to it. The same is most likely true for consoles. So there is not really a reason to solve that problem on the technical side.

Eevee does not depend on Python! Eevee is implemented in C or C++ (I didn’t check the source code). The Blender UI heavily relies on Python and as such everything that is being setup for Eevee in Blender is done with Python, but the actual core business of Eevee does not rely on Python.

There’s gotta be some C/C + + for blenders ui or is it completely done with python. I browsed the source code ,but haven’t found anything. Like the tabs and splitting windows.

The low level functionality, like the drawing is done in C and if I remember correctly the actual computation of the layout and things like that are not handled in Python. You would need to ask a developer to get precise information about that.

Lol, python is just for the UI and addons, and game engine. :slight_smile:

^ I believe this is correct. It seems like it’d be pretty crazy to make Eevee rely on Python, as it should be built in native code alongside the rest of Blender, where the data is freely available and doesn’t need to be “translated” using the Python API.

Haha, OK. You kind of had a kneejerk reaction here.

No, but the game engine could not use Python.

That would mean a lot of work without a real benefit. It is one of the amazing areas where the game engine truly benefits from the core developers, because they usually make sure that Python just works. Why should that enormous benefit be thrown away?

No, PGI made a ‘dual language’ api running JS and python

It also appeared to be quite fast.

I haven’t seen that one so far. Sounds like an interesting approach to integrate a virtual machine. If I remember correctly, that was discussed years ago by the Blender core developers as well. And just to make it clear: It is not JavaScript!

Even if I completely understand the reason why this is being implemented, I hope it is going to become part of Blender. Having it just for the game engine makes no sense in my opinion. And adapting everything to work with it, would be a waste of time.
In an environment like Blender, it would be unavoidable to have an official “main” scripting language, especially in a virtual machine environment. In that approach, it would be the Java Virtual Machine and if that one is used, the primary language for it is certainly not Python, but Java. In order to properly use Java, a redesign of the API would most likely be needed as well, which would make the porting of existing scripts even more difficult.

I would prefer Java a lot, but it is still not worth it, due to the currently existing community which is used to Python and has invested a lot into it!

Ever heard of mypy for static types checking on Python 3.5 with annotations ?
You can basically static check your code if you reaaaally like this stuff.
Unit testing your code in Python is also a strong way to check your code for regressions and stuff like that.
People don’t seem to understand the power of Python, which IMO is better than JS in the concept (“real” objects, support for C routines execution, better syntax).

Lol damn u know your Facts very well Wow nice detailed facts Dantus.
I look forward to hearing more from you about how artists have invested alot in to python.

Sorry can i just ask a secondary question here so with regards to backwards compatibility, How do you think that the new versions of Eevee will be supported on old OS’s since it uses C / C#. And i know that the devs will just Design or incorporate Eevee’s features as a Standard in the Future of blender’s Game Engines however in relation to backward compatibility will we as artists be able to even use BGE or UPBGE on Windows 7 / Win8 /8.1 & 10 Pro (Nevermind Win XP); Do you think that we’ll be able to make both 32 bit compatible Games and 64 bit Compatible Games using the Game Engine.(The same goes for Linux and MAC OS)

Fred/K.S

Blender3D is written in C. Eevee is C and OpenGL 3.3 GLSL. BGE is C++. So to run it, you just need a compatible videocard. So no C#

The investment was made by lots of people. There is certainly a lot of Python code for Blender that is not publicly available, but I am not referring to that. Have a look at the amount of Python addons that are bundled with Blender. Look around how many others there are. The Blender Market has several high quality addons which required a lot of time to be developed and that are still being further developed and maintained.

C# is not being used in Blender at all. The majority of Blender is implemented in C/C++, so there is absolutely nothing special about Eevee being developed like this too. As usual, the goal of the developers is to make it possible to run Blender on approximately 5 year old hardware and they try to support as many operating systems as possible, as long as it is reasonable to maintain it. I have no idea about the deployment of games in Blender. You would need to ask an UPBGE developer or user for that.

Replacing Python would be as difficult as deleting UPBGE and starting all over again. Very unfeasible.
About UPBGE and Blender 2.8: The UPBGE team doesn’t know what will happen in the future, what I can say is that us and the Blender Foundation had a little conflict of ideas and thus we are kind of working on our own as before, one step at a time.
The future is more uncertain than ever so please don’t create expectations.

Currently the Eevee renderer is being worked on by @youle, he is making some progress. It’s slowly taking shape.
Not everything will look/work like in the viewport! We have our own algorithms that are more suitable for real* real-time.

    • Currently Eevee only renders the scene when you trigger an UI event (like moving/rotating the viewport), it doesn’t run at a constant 60fps, so it’s not really real-time.

did you click the link?

Pgi used a jvm to run java AND python without nuking any old binding

The thought was maybe a java developer could help out with a 1 to 1 api
(and allow projects to be written in python or java)

publishing to android would be much faster and easier in java no?
(serious question*)