Godot: What about GLES2 (2D) in 3.0.1?

Created on 7 Feb 2018  路  23Comments  路  Source: godotengine/godot

I've read that the GLES2 renderer is scheduled for 3.1. However, it seems that the 2D subset of the renderer could reach an useable state sooner.

What about including a preview version (2D functional, 3D broken) in 3.0.1? As long as we are clear about the limitations, I bet most developers targeting mobile phones would be more than happy with that.

I reckon that:

  • The support code (e.g. renderer selection, context creation, etc...) and more in general the game editing workflow (e.g. export GUI) would benefit from an early exposure in master/3.0

  • The core code (e.g. drivers/gles2) should be fairly contained and should be fairly easy to occasionally re-synch from @karroffel's reference branch (I would expect experimentations to be carried out there, and occasional merges would have no conflicts).

What do you think?

discussion rendering

Most helpful comment

You don't need to convince us to make a GLES 2 backend, we're already on it.

Have some patience. I'm only working part time but it's progressing quite nicely. You can already test it on my fork and even submit PRs there.

So yea, it's coming, we know about it.

All 23 comments

We do actually plan to soon merge the current 2D implementation into this repository, but I'm not sure if it'll be in 3.0.1, it might be disabled by default for now as there are maaaaaaaaany things to test and so far only one platform (X11) has been hardcoded to work.

GL2 (...) I bet most developers targeting mobile phones would be more than happy with that.

thats very gently spoken.
I dont know about others, but i personally, hold myself from using Godot 3.x, until it will have GL2
Then i hold myself from using Godot 2.x as it will be obsolete...
...and as you see it ends up as holding myself from using Godot at all :(

I cannot even be sure to use G3 for class due to the possibility of getting graphic cards with troubles with the editor so I would love to see it before 3.1 but I also understand if will not be possible.

For early testing would be cool to have it if that helps the development.

This is important, am I wrong if I say that most godot users only use 2D?

Then i hold myself from using Godot 2.x as it will be obsolete...

btw there are bugs that are fixed in 3 and not backported to 2 from so long, so it seems that this process has started. I hope that someone put some love in godot 2 until godot 3 is a bit more complete (now that the official version has been released). On the other hand, GLES2 in Godot 3, for a bunch of users, is more expected that any feature (and i think that other lost functionality too)

@karroffel As soon as there is one single platform working properly (i.e. non-hardcoded), I would imagine that porting to other platforms is something that the community could help a lot with.

am I wrong if I say that most godot users only use 2D?

i use 3D for game and 2D for interface.

On the other hand, GLES2 in Godot 3, for a bunch of users, is more expected that any feature.

imho, lack of GL2 is reason why many serious mobile game makers not use Godot.

  • Godot3 missing over 45% of android market customers who have devices with GL2,
  • using fiew years old CPUs is a trend to cut prices in new devices and it will continue because device manufacturers want to save and customers want to save. At the end world is always about money.
  • GL2 customers are valuable since they are more easy to satisfy. they give higher ratings to product which then gives better market spread at a whole.
  • Developing with GL3 with plans that in future we will make it backward compatible for GL2, is a bad idea because community of allready released game is VERY sensitive to any changes.

I believe for a great success and popularity of Godot3, GL2 compatibility is a must have feature which should be primary priority now. Without it Godot3 is only interesting toy, with some shiny features, but it cant make a game developer successful since

  • GL3 market is hard to satisfy just by itself.
    You can hire many excellent artists, put a lot of money, time and love in it, make a Witcher3 - users will still grumble and give low ratings, because grass is not perfect, because horse neigh unrealistic ect.
  • GL2 market is happy and enthusiastic about everything.
    You make simple game with zero budget overnight where are almost no graphics or content, they are happy and give high ratings which pump your spread and fame up.
    Dont ask me... It is just this way, Browse Play Store games if you dont believe.
  • GL2/GL3 market - thats where most success are,
    If you make good GL2 game, GL2 users are happy and pump you up while GL3 users see it as acceptable and not drop you down. Ends up having whole market with good ratings and spread.

I would love if our almighty 3D gurus like @reduz and others, could drop an eye here and notice that
road to success of Godot3 popularity might currently lies here.

I believe for a great success and popularity of Godot3, GL2 compatibility is a must have feature which should be primary priority now.

This is not something that can be done overnight and @karroffel is already working hard on it. So GLES 2 support is a priority, I'm not sure the reason of this rant. Also, Godot 2.x is still supported so mobile devs can release games with GLES 2 support.

However, I'm against adding a partial support in a maintenance release. The editor needs 2D and 3D functionality, missing one can't be considered "stable". I think we can make a few preview releases just for testing, but not adding it to a stable release before the feature reasonably stable as well.

@vnen having it on master when is stable enough to receive meaningful bug reports should be enough, early testers who can't compile from sources won't be useful in such state.

There are two issues here:

One is having an editor for old PCs (@eon-s's case), and for that a preview release or compiling from source is fine.

The other one is users targeting GLES2 platforms, most notably Android (and in my case, RPi). They only need the template. The problem I have with GLES2 in master and not in 3.0 is that master might diverge from the stable release, so if I build a template using it, it might not be compatible with the official editor or might contain (obviously) unstable code.

To be more explicit about my case: say that I release a 2.1.4/2.1.5 template for the RPi in 1-2 weeks. I cannot in good conscience recommend anyone to start a new 2D project using it, unless it is a small one: migrating it down the line to 3.0 doesn't look painless, especially for a beginner. I surely can do a release anyway, with a note warning about about the trade-offs (and that is what I might end up doing). More in general, I suppose a beginner wanting to write a new 2D for Android phones would face the same trade-offs.

I understand no wanting to release partial code in 3.0.1, but, if feasible and not too costly, I would take into consideration the idea of having the GLES2 code in 3.0, disable it by default, and ideally release an additional, experimental Android template based on it (that's probably the most important use case anyway).

I had a longer research on which Framework/Tool to use for my new Mobile Game development and I was highly excited when I heard about Godot 3 release. Started playing with it immediately, and my simple app (just a button in a panel, no 3D) crashed on half of my devices (older ones).

E/GodotView: After eglCreateContext: EGL error: 0x3009
    ...
java.lang.RuntimeException: createContext failed: EGL_SUCCESS
    at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1214)
    ...

I suppose this is related to this issue? Never tried Godot 2 before so I don't know whether it works.... Don't want to rant but this was a real show-stopper.

@thojaw it works very well, i used it earlier. But it will lose support sooner or later thats why i aim at Godot 3. ...Just thinking forward, not mention that Godot3 have plenty of awesome features not available in Godot2
Godot2 is great, is awesome and working very well, but its days are allready count.

BTW, if anyone is willing to maintain the 2.x branch, the Godot 2 line can survive a long time (mostly for bugfixes, but still not much different than what it is now). I won't put this on Akien's back because he already have tons of things to do, but I'm pretty sure he would prepare the releases when needed. There's no need to kill Godot 2.x, but if there's no one to maintain it then there's no other choice.

not mention that Godot3 have plenty of awesome features not available in Godot2

There are some awesome features that are not ported to godot 3 too. And very awesome like reproduction of tracker files or the sampleplayer. I don麓t understand the main reason for lose that, the code is writed yet, dessign decission? A pity....

There is an another reason why the GLES2 is VERY important: a huge amount of the Android phones built with Adreno GPU. On these machines the Godot3 currently working in 2D only.

You don't need to convince us to make a GLES 2 backend, we're already on it.

Have some patience. I'm only working part time but it's progressing quite nicely. You can already test it on my fork and even submit PRs there.

So yea, it's coming, we know about it.

(...) we're already on it. (...)

:heart:

Closing this, as a GLES 2 backend is being worked on, but it will be in 3.1, not 3.0.1.

Yes, the GLES 2 backend is the whole point of the 3.1 release, so it makes no sense to add it in 3.0.1 (and would break our promise that the 3.0 branch is "stable").

Users who crave for GLES 2 support can use the master branch once we'll have merged @karroffel's initial gles2 branch (i.e. once 2D is functional enough for testing). We may even do a 3.1-alpha build then for wider testing - but it's definitely not material to push into a stable branch.

I'm more interested in export templates, but since it looks like a few people are interested in the editor, and it was just a handful of line of code to do it, I've released one. I hope you don't mind. Proper warnings are given.

https://www.reddit.com/r/godot/comments/80qe4g/unofficialexperimental_godot_301_build_windows/

random flickering with Nvidia drivers issue, admin wants users to test it on gles2. i have free time and want to test it, i just re-compiled the 3.0.6-stable, is there an option to switch to gles2 to test?
eddit: just read mhilbrunner's comment, ignore this post srry

@girng you can test GLES2 - its in master branch allready.

@avril-gh i tried to compile with master, but got errors. so i use stable branch. no error
that was yesterday though, i'll try again =] ty

Was this page helpful?
0 / 5 - 0 ratings