Blender has just purged the entire game engine from 2.8. There is no "Game Engine" mode anymore and there isn't even a logic editor. I tried installing a GitHub Blender release with the game engine mode working but it failed to install because all the game code was gutted. Does this mean that Blender 2.8 is going to lose the game engine, or is the game engine just being redone for better compatibility and whatnot?
As far as we know the Blender Game engine has been removed from official Blender releases for good, at least in its old form. As of commit 159806140fd3 - Removing Blender Game Engine from Blender 2.8, BGE is no more, along with other "aging" components like the Blender Internal Render Engine viewport drawing code among others.
Ton Roosendaal himself was given the honor of making the commit that put the old code to rest.
As for the reasons for removal we can extrapolate it was an old and aging component, it was largely unmaintained, suffered from several bugs and limitations, and the Blender Foundation probably lacked the energy and manpower to maintain it properly.
Adding new things to Blender gets much easier that way. The Blender Internal code started in early 90s. Over 25 years old! Functionally, EEVEE can (and will) completely replace it.
It was also very architecturally outdated, lagged severely behind the current industry standards and modern technologies in many ways, it would be very hard to bring up to date. Modernizing it or introducing new features would end up being more work than a full rewrite from scratch.
For that reason they decided to release Blender from these "metaphorical shackles" holding it back; making it easier to move forward and update other more important and frequently used features.
This frees Blender developers to work on other things, allowing more manpower to be redirected to truly useful new features like a better viewport drawing code, a modern layer system, a better dependency graph, usability improvements, among others. These will help you produce better game assets, (which is Blender's main focus, and where its greatest strength lies anyway), rather than trying to run the game itself, leaving that role to dedicated engines.
"Why wont they make a new one then?"
Probably both because "we are too late to the race" and it would be a tremendous amount of work to rewrite it well. There are already a number of well established third party game engine solutions out there, both free, open source, or comercial; and competing with those would be extremely hard and pointless.
Writing a full game engine is no small task, it is a full time job on its own, and maintaining it would require a lot of continued manpower and resources. Since expectations are very high (supporting multitude of hardware and environments, multi-platform publishing, modern physics, logic systems, networking, security, smooth performance, and all the modern commodities expected of contemporary game engines) it would probably end up always feeling inferior or lacking in lots of ways compared to more mature competitors.
What About Forking It?
UPBGE is a third party fork, whose objective is updating and modernizing the BGE with better technologies and features, with the end goal of eventually merging it back with main Blender development branch.
I fear its future is uncertain at this point unfortunately. While I believe Blender developers won't actively do anything to purposefully break Blender trunk codebase compatibility, I speculate it will naturally become increasingly hard for UPBGE developers to maintain their code working, as features are removed and main Blender development deviates further from the current design.
UPBGE will probably continue to work as standalone based against current 2.79 versions for any foreseeable future, but you likely won't get all the improvements made in subsequent versions.
While the final decision is always yours, as it stands your time is probably best invested learning something else more lasting, modern and future proof.
So, is it really gone for good?
In its current form yes.
There have been talks about replacing the old game engine with a newer better integrated "Interactive Mode". It would be a more integral part of Blender, as opposed to a separate component with a lot of duplicated code that re-implemented a very limited subset of supported features we currently have. This is not meant to be a direct replacement of the old BGE, nor a discrete game engine in the traditional sense, rather more of a real-time "presentation tool" or interaction mode with a physics simulation sandbox environment, that runs directly inside Blender's viewport.
On 28 May 2018 Ton Roosendaal announced in the Developers Mailing list that a portion of the 2.8 Code Quest funds were reserved for the development of a new and improved real time rendering system or "Interactive Mode" and Benoit Bolsee, a developer historically known for his involvement in real time side of Blender, accepted a grant to work part time on this for one year.
I speculate this will probably feature a new node based workflow and logic system, real time physics, and integrate well with other upcoming features like "Object Nodes" also known as "Everything Nodes" in one way or another.
When will it be ready?
A project of this magnitude requires a lot of careful planing and design to get done right, this will lay solid foundations on which to work on. On top of that there is still the huge amount of work required to actually implement it and get it working, tested and stable enough for the general public.
This would take a dedicated team working full time a long time to get done, it will take even more for a single person to do it alone. Since Benoit is only working on it part time and for a relatively short period of one year, this is likely still very far away in the horizon.
It will probably be released some time later in the 2.8# series timeframe, but never in the first 2.80. It is pure speculation and impossible to tell at this point, probably even developers would not be able to give you rough estimate as it stands.
If you would like to help and can't code, you can contribute to the Development Fund. This will allow hiring more full time developers to work on newer features. Have in mind that there is no guarantee this will specifically direct funds dedicated to Interaction Mode, but they might get there faster. And if there is enough interest maybe a full time developer slots can be allocated for these tasks.
So what do I do now?
Though BGE is going away for future versions nothing stops you from keeping using Blender 2.79 or UPBGE for the foreseeable future, for as long as they keep working in current hardware and operating systems.
There are also many third party game engines out there, good for many different purposes and workflows, and for varying "wallet sizes". Some integrate very well with Blender, even using its native UI (like the Node Editor through PyNodes) for editing a varying subset of supported features and functionality.
They also provide extended publishing capabilities, reaching many other platforms never before supported by Blender Game Engine (like mobile devices, web, cross platform development, among others).
The best known and most well established ones are probably:
There are also free and open source solutions that integrate very well into Blender pipeline and native UI like:
- Godot - Well established free alternative, 2D graphics focus, popular for mobile content.
- Armory 3D - Relatively young entry, actively maintained, free and open source license.
- Urho3D - As pointed out by user Kabu in the comments
- Ogre 3D - One of the oldest open source engines around, since 2001
While not a game engine per-se Blend4Web is a Blender addon for web publishing that also has some competent node-based logic system and scripting capabilities, allowing creation of basic behavior, and a certain degree of interactivity, thus providing a relatively capable web browser based game creation solution.
Good news! Blender 2.8's Interactive Mode is in active development already!
Here's what happened in the recent past that led to this:
On Sep 24th 2018 Brecht sent out an email to Blender mailing list and said:
... Benoit visited the Blender Insitute last week to talk about interactive mode design. The plan is to first implement an interactive "physics sandbox" mode, where physics keeps running while you interact with objects the viewport. The second step then is implementing a logic nodes system. Benoit and Jacques will work on the design.
On Oct 5th 2018 Ton sent out an email to the Blender mailing list and wrote:
... Most notable is support for Benoit to work on the design and foundations for the new real-time / interaction mode in Blender. He is currently working on a design doc which will be presented in our channels soon. ...
As of Oct 11th 2018 Benoit has created a new branch, called interactive_physics, off of Bender 2.8 branch for development of the interactive mode. I have also been exchanging some emails with him and here is his current plan, subject to change:
... 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:
- bring 'continued physics' mode back : physics simulation runs even if scene frame is not incrementing - done already for rigid body
- bring local time to animations so that animations can run independently of scene frame
- create an internal event system to exchange events and messages between scene entities
- create events from physics simulation and interaction
- 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. ...
A couple of months ago I also proposed my ideas regarding Blender's Interactive Mode here. I have been in touch with Ton and both developers of the interactive mode and I am so happy that they are very open to new ideas. Based on my latest discussions with Benoit the very next updates of the interactive_physics branch will include new version of Bullet physics engine for better performance. He will post the updates regarding the interactive mode here hopefully every week.
People involved in developing the interactive mode are seriously thinking about bringing very good, near-real-time or real-time soft body physics in the interactive mode in addition to rigid body physics. There are currently a couple of options that we are evaluating. Bullet's soft body solver is a pretty bad approximation of real-world physics and is unrealistic and unstable; so this option is out. One option is implementing some of the works that are coming out of research labs and are based on Projective Dynamics Method as discussed here. These methods will benefit the interactive mode with better performance and a little bit more realism in terms of physics simulation compared to real-world soft body physics. Another good thing about these methods is that they unify cloth and soft bodies.
Another option for bringing real-time soft body solvers to the interactive mode (and Blender in general) is to implement a very the method proposed here just a couple of days ago. The advantage of this specific method is that it is definitely real-time and even faster that the GPU-based solver used in NVIDIA's FleX. Another very important advantage of it is that it is differentiable! It also seems to be more accurate and closer to real-world physics. In addition, it might be possible that this method will provide a unified framework for simulating rigid body, soft body, cloth and fluids (liquid or gas)! I am going to meet with the author of this paper to learn more about the limitations of their method and seek the possibility of integrating their CUDA code into Blender very quickly.
Anyhow, I'm certain that the interactive mode of Blender 2.8 will be a game changer and truly awesome! It will integrate lots of features in one place and make lives easier!
There is a new Engine planed (last weekend 28-5-2018) it will be more then we had. Node based logic, with plans to have that exportable to other engines. This time it gets serious...
I think since there is now eevee and since development is still early this opens a lot of possibilities wich wasnt possible before.
An honorable (?) Mention may be the Animation Nodes addon that has made it into mainstream Blender recently. If you are looking to simply create "interactive" animations this could be a possibility.
For instance, using Python to perform custom logic that writes to object transforms depending on time, velocity, etc. Since it's Python, theoretically you could poll a button press but in cycles render it will be nowhere near real time, but could be interesting for robotics or scripting motion.
Besides that, and until interactive mode shows up, there is the current build of Blender and UPBGE. I would still give Animation Nodes a passing glance if I were you though!
So i thought it was rumored that armory 3d is very close to becoming part of the new plans to optionally blend into blender, ea suporting the new design of blender 2.8 in such a way that new game engines should be able to plugin but not be part of blender itself, just like a render engine (luxcore and others.