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.
-
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?
-
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