GDevelop with Internet Explorer 11 (IE11)

I apologize if this is the wrong place for this, but this post is to serve two purposes: 1) Ask the creators of GDevelop to support IE11 a little longer. 2) keep an up-to-date running how-to of converting GDevelop to IE11 for those of us who have to support it.

  1. I know @4ian officially said GDevelop no longer supports IE11, but my thinking is it doesn’t hurt to ask. GDevelop’s relatively easy conversion to be E11 compatible is actually the reason I chose it over other gui based game engines such as Construct 3 and Stencyl. Now, I hate IE11 just as much as the next developer, but this situation still stands that the people I make games for are still legacy’d into IE11. And I’m not asking for it to work perfectly right out of the box, just minimal support until 2023; when IE11 is officially dead and clients are forced to use Edge (or hopefully Chrome). Also, with the 5.0.124 version of GDevelop actually switching to pixi.js’ legacy version, it makes the conversion even more simple. So again, I’m not asking for GDevelop to work perfectly with IE11, but at least be aware that some of us still have to support IE11 and to have that conversion at least be possible. Maybe fix some of the things I list in point number 2?

  2. As of GDevelop version “5.0.124 based on GDevelop.js 4.0.99-0 release” this is currently how I convert the GDevelop html5 output directory to be compatible with IE11. (this is assuming you have nodejs installed on your machine)

2A. initialize npm repo
run: npm init -y > /dev/null

2B. Transpile javascript files
2B1. create a file called ‘.babelrc’ and edit as follows"

{
    "presets": ["env"],
    "ignore": [
        "data.js",
        "./pixi-renderers/pixi.js",
        "./Extensions/PrimitiveDrawing/pixi-graphics-extras/graphics-extras.min.js",
        "./Extensions/BBText/pixi-multistyle-text/dist/pixi-multistyle-text.umd.js"
    ]
}

2B2. Fix empty try/catch code in the files: ‘./events-tools/networktools.js’ & ‘runtimegame.js’
change:

try {
 }
catch {
}

into:

try {
}
catch (err) {
}

2B3. run: npm install babel-cli babel-preset-env
2B4. run: npx babel ./ --out-dir ./ --ignore "./node_modules/**"

3 Edit jsonmanager.js file
change:
t.responseType = "json"
into:
t.onloadstart = function(ev) {t.responseType = "json";}

4 Add polyfill to Index.html
edit the index.html and add this script as the very first one:

<script src="https://polyfill.io/v3/polyfill.min.js?features=String.prototype.includes%2CObject.entries%2CArray.prototype.%40%40iterator%2CArray.prototype.includes%2CArray.prototype.copyWithin%2CArray.prototype.entries%2CArray.prototype.every%2CArray.prototype.fill%2CArray.prototype.filter%2CArray.prototype.find%2CArray.prototype.findIndex%2CArray.prototype.flat%2CArray.prototype.flatMap%2CArray.prototype.forEach%2CArray.prototype.indexOf%2CArray.prototype.keys%2CArray.prototype.lastIndexOf%2CArray.prototype.map%2CArray.prototype.reduce%2CArray.prototype.reduceRight%2CArray.prototype.some%2CArray.prototype.sort%2CArray.prototype.values%2CArrayBuffer%2CArray.of%2CArray.isArray%2CArray.from%2CString.prototype.startsWith%2CObject.entries" crossorigin="anonymous"></script>

5 (Bonus) change fonts to be installable
If you have your own fonts you might need to use this fix to make them installable

I do not think the devs are going to change their stance on IE11. Even Microsoft will be hiding it in Windows 10 come June, and no security patches will be provider any longer, making it a huge security risk for anyone who even opens it

That said, the engine isn’t going to restrtict you from opening a page in IE11, so if you can get it working you are still welcome to.

Just keep in mind that the devs and the community will not fix anything that doesn’t work correctly in IE11 (and likely wouldn’t be able to anyway even if there was intent to do so).

Edit: also unless something has changed, do not expect GD5 to stay on any legacy versions of PixiJS. There will likely be an upgrade to the next Pixi version just like there has been every year since I started using GD5 3 years ago.

Again, I’m not advocating for IE11 itself. I personally hate the thing, but I’m one of the unfortunate few that have to support it.

I wouldn’t want the devs to do anything drastic, but at least keep it to where with Babel and some polyfills that I can fix it on my end.

For example, numbers 2B2 and 3 in my post are something I would ask them to look at. Its very small fix on their part, but on my part is a major headache. Babel throws an error if you leave a try/catch like that.

I understand your desire, but as stated there is not going to be any work completed regarding IE11. I’ve confirmed this within the devs.