gles.js - a lightweight WebGL renderer for Android

  • digitalsoapbox as someone who has made both 2D and 3D games from scratch I can confirm that it actually is better in some cases than being completely held hostage by a third-third party (as it's not just Construct 2 and driver vendors we are waiting on, it's also Chrome, Node-Webkit, and the HTML5 standard in general).

    The main reason we don't re-invent the wheel is because we want to actually finish the games we make instead of producing tonnes of unfinished abandonware before we finally settle on choice of programming language, memory usage/allocation, design pattern(s), and other low-level things. Prototyping is a great time to switch engines around, and being half-way finished or further is not.

    Middleware that works roughly the same way every time can be accounted for with work-arounds, while random engine-breaking updates can stall or kill a project entirely.

    The reason why I personally want native desktop is because I know that Scirra can and has done an AMAZING native DirectX 9 runtime before with Construct Classic: http://www.scirra.com/construct-classic

    Literally the C2 editor exporting to CC would be all I'd ever need ( as CC had a buggy editor but pretty solid runtime...except on Vista <img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz"> ).

    Point is though, we want to use Construct 2, as a game dev tool it is literally the best we've ever seen, especially for 2D games. However, when you want to release commercial titles and pay say $500 for a copy of a "professional business edition of a game development tool" for each member of your indie studio to do so, you really want said game engine to actually perform the tasks it promises, especially after you've just raised all your funds in a Kickstarter and now have to release a product on the budget you initially planned (and other, less specific, cases).

    CC is based on entirely different, and outdated, technology. I'm sure there's multiple good reasons for it not being directly importable into C2, but from what I've seen of CC porting stuff as a more manual process, while potentially frustrating, seems entirely doable. It's also the nature of changing engines - it's not like Unreal or Unity have had painless upgrade or porting paths either.

    Unity is where a lot of serious C2 developers seem to be going, and each one I've seen hasn't blamed the editor in Construct 2, just the lack of control that Scirra has over runtime/export.

    Also as a side note I've been following Sombrero for some time and it's looking really good, reminds me of the Friendly Strike series I played in my Clickteam TGF/MMF days <img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":)" title="Smile">

    Except using Unity, you're still held hostage. It's just a different company's tech. There isn't even enough hours in the day for me to list all the bugs I've run into in Unity over the past 8 or so years, including some that have persisted across multiple major releases. Don't even get me started on their GUI tools. I've seen few bugs with C2 that can't be solved by rolling back to an earlier release of C2 or NW, not depending on beta software releases - which you shouldn't count on anyway as being production-ready.

    If you want to do 3D, use Unity; if you want fast cross-platform 2D that isn't especially hard to get running at 60fps on almost every system I've tried it on (FireTV is a bit slower), I still think C2 is the way to go. And speaking of Unity: see if they're still offering the $75/mo deal, I've been paying for Unity that way since they announced that plan and it's a very reasonable price considering what Unity is capable of overall, including outside of game-specific development.

    With MS announcing Universal App support for XBox One including WebGL/HTML5/Javascript-based apps, there is now little in the way to prevent C2 games from ending up on major consoles. In fact, I'm meeting with a MS rep next week to discuss doing that very thing with Sombrero (thanks for the kind words on that btw). Any info I find out about getting C2-based stuff on XBox One I will, of course, share on these forums.

  • What would really make C2 exporting better would be some competition for desktop (and potentially, console) distribution. Right now it boils down to: NW.JS. And that's it.

    Firefox may be terrible now, but project silk looks to be a dramatic improvement that should bring the fox on par with chromium (when chromium is behaving that is). What about Mozilla making their own version of NW.JS?

    Ditto for Microsoft: what about a 'redist runtime' version of Spartan that offers support across Windows Desktop, Mobile, and XB One?

    As for mobile, it would be great to hear from more people using CJS Webview+ to distribute on iOS8, because so far all I've heard is that it is phenomenal performance-wise, but the only person I know of who is using it for sure is silverforce.

    I'm becoming more and more convinced that Android is a poor platform to begin with, given it's poor commercial potential, poor performance relative to the raw system perf (even for native apps), high input latency, massively fractured OS/Hardware, dismal state of chromium/crosswalk for android, etc...

  • I gotta say that I can totally understand Ashley for not "simply rewriting the entire game engine" and sticking to HTML5 and JS.

    I mean jesus christ people Just re-writing an entire engine in a different language is a MASSIVE piece of work! Even without considering that JavaScript with its prototypical style is quite different from most other programming languages.. Even more importantly having everything work with Chrome / FF / IE is already a struggle; Imagining to have to write the plugins for Windows, IOS, Linux, Android, IPhone, other smartphone OS'es, keeping track of all their quirks + additional differences in between versions and flavours - and doing all that as a 2 man team??? WOW! What a nightmare!

    Mobile performance is a bitch in JS and the best we can do is optimize and reduce draw calls, keep the JS idle and wait for V8 improvements, ECMAScript 10? (LOL) and moores law to take care of the performance gap.

    You can call me a fanboy, I really don't care, because I'm not.. I can see the limitations. But this is a 2 man team building a HTML5 game engine that ports well... to HTML5. And you bitch about that

    It's all good to complain and vent. But when you bitch at a product that does what it was designed to do because it does not do what you want even tho you know what it is designed for.. well... I think it is time to pack your things and fuck off

  • Schoening yeah i agree i think some of these people(not all) don't realize what going into a native exporter. Look at unity they have 100s of people working on their exporters and they still suffer on alot of devices because android like TiAm said has just become bloated and a lot of manufactures have terrible drivers or have skins that make gaming impossible(looking at you Samsung)

    So you have to write things in your exporter just for these devices. Android has a terrible fragmentation issue. Your not even guaranteed OpenGl they all have different versions sometimes they even have a custom version. Making a Native Android exporter would be a massive under taking that even Unity or Unreal cant really get right(they export to a much smaller subset of devices).

  • Ashley: I know you're probably sick of me pointing to this, but I would really love for you to read these two articles and then tell me if this is not a technology worth considering:

    http://notes.underscorediscovery.com/haxe-from-1000ft/

    http://notes.underscorediscovery.com/haxe-entry-point/

  • Schoening: +1

    Gianmichele: Haxe is a nice language and i think it has potential, but even it is said to be crossplatform because you can compile in many different languages (like CPP/C#/JS...), it doesn't support the same features on every platform or with every language. So while in theory you can compile to every platform, it doesn't mean your game will run equal or with the same features on every platform.

  • digitalsoapbox Awesome, can't wait to hear how Xbox One is looking! I agree that Unity has its flaws and that's actually why I really want for C2 export formats to be able to get into a position of having more stability and performance, I just feel that it's not yet the time for the website to say "We're stable and you can make whatever 2D game you want and it'll run amazing!" all over its product pages and then turn around and say "Well, it's kinda early access so just wait for the next update/technology" when people are having issues.

    TiAm definitely agree it'd be nice to have either more forces working together on node-webkit or competition to let the best ones survive/rise to the top.

    Schoening again attacking people who are having legitimate issues that are within the bounds of what they were promised the engine would do is not fair. I agree with you that full re-write is insane for just one programmer, but now with C3 in development it's worthwhile to have people voicing their concerns of what they want in the future (and doesn't that mean that C2 is going to someday too be retired like CC?)

    I don't get extra slack from any customers or reviewers when my 2D 80's inspired arcade game doesn't run properly on decent machines just because we are a "2 man team building an HTML5 game". It's great to be a fan of Construct, I have been since almost the earliest betas of Construct Classic

    It really sucks that people would ever need to "f*** off", and it doesn't look good on the community or development tool as a whole if they do. It's not the people trying to make a 3D MMORPG leaving, it's people making simple arcade platformers and top-down racing games who just can't get their professional games working the way they need them to. I think I'm just saying that it isn't "you're with us or you're against us", it's a community of people who all have very different goals and aspirations under the same promise, the same things we see in the advertising material and feature lists of Construct 2.

    volkiller730 Very true too!

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Shirogames (who are making Haxe and very successful games) already released Evoland ( 2D / 3D trailer:

    Subscribe to Construct videos now

    ) on Pc+ Mac + Linux + Mobile + Consoles.

    Bonus: they stick with it for their next games, which is a very good sign to me considering they're not trying to make money with their engine or language.

    Even if I still stand on the "C2 shouldn't get a native exporter, it would just kill the small company behind it" side, that's more than a good proof to consider Haxe as a reliable and true multiplatforms language : )

    EDIT: digitalsoapbox , your game looks very good! Congrats!

  • What would really make C2 exporting better would be some competition for desktop (and potentially, console) distribution. Right now it boils down to: NW.JS. And that's it.

    Firefox may be terrible now, but project silk looks to be a dramatic improvement that should bring the fox on par with chromium (when chromium is behaving that is). What about Mozilla making their own version of NW.JS?

    Because fragmentation is bad, as you mention below.

    Ditto for Microsoft: what about a 'redist runtime' version of Spartan that offers support across Windows Desktop, Mobile, and XB One?

    What's the benefit of this over their cross-platform universal app support with HTML5/JS/WebGL?

    As for mobile, it would be great to hear from more people using CJS Webview+ to distribute on iOS8, because so far all I've heard is that it is phenomenal performance-wise, but the only person I know of who is using it for sure is silverforce.

    If it's not cross-platform, what would the benefit be to cross-platform developers? What happens when CJS goes the way of the dodo in lieu of other options with more features and better support? CJS support is terrible, period.

    I'm becoming more and more convinced that Android is a poor platform to begin with, given it's poor commercial potential, poor performance relative to the raw system perf (even for native apps), high input latency, massively fractured OS/Hardware, dismal state of chromium/crosswalk for android, etc...

    Fragmentation on Android is dropping and is the most popular mobile platform worldwide based on sales figures and install base alone. That's an odd thing to describe as a commercial failure. Every Android device I've tested on - and I test from 2.3 up to 5, across about a dozen different devices from a list of different manufacturers - has no trouble handling anything designed for their specifications. It's no different than developing for a desktop computer in terms of the different hardware configurations that need to be supported. As for Chromium/Crosswalk, I'm quite happy with 60fps 1080p performance with thousands of sprites on mid-range Android hardware, so I've no idea what you're talking about here either. I think your information may just be out of date, and I believe Ashley has already written a blog post on this very site about Android performance and support.

  • digitalsoapbox Awesome, can't wait to hear how Xbox One is looking! I agree that Unity has its flaws and that's actually why I really want for C2 export formats to be able to get into a position of having more stability and performance, I just feel that it's not yet the time for the website to say "We're stable and you can make whatever 2D game you want and it'll run amazing!" all over its product pages and then turn around and say "Well, it's kinda early access so just wait for the next update/technology" when people are having issues.

    Yeah, I was happy to finally, after months, get a reply from MS to discuss uapp stuff on XB1.

    Unfortunately, there's no reason to expect that native exporters would decrease the issues anyone is having with performance. It would, however, almost certainly overburden the small development team behind Construct, or they'd have to hire more developers to help, thus raising the price of the software.

    As for C2's claims: yes, it's stable. Yes, so far as I can tell I can use it to make any kind of 2D game I'd ever want to make. Yes, parts of it when I first purchased it felt a little early access, but I don't know how anyone could make that claim with a straight face. What I know is that even with receiving over a year of updates that have made the tools exponentially more varied and powerful, I haven't been asked for any more money and I think that's pretty awesome.

  • digitalsoapbox

    Agreed, based on the way Scirra operates full native doesn't work for their timeframe.

    For our game we ended up with a 500mb project at export (lots of graphics and music and sound, lots of levels, lots of other layouts, and lots of things going on in-game, and about 3 to 4 hours of gameplay), and after finally releasing the game we found that the performance was very hit-and-miss across machines with almost the exact same (great) specs and that screen-recording software like FRAPS or even a Skype window share would cause glitches like characters jumping higher than they should ever be able to. For some customers even having Chrome open at the same time caused noticeable issues.

    Right now we are only able to use Node Webkit 10.5. We figured updating to NW.js 12.0 would be better, but performance has not been near what we get in 10.5 (and upgrading C2 also drops performance for some reason, we've tried each new release since r196 with no luck).

    This isn't a small game admittedly, but it's also not the largest I've seen for 2D games made in middleware like Construct 2. We invested a large amount of time into optimizing performance and still see things happening from customers that have never happened in our testing. Things like this are almost impossible to "produce a blank cap demonstrating the bug" for and are also why we had to make some tough decisions on which platforms to release on based on how many people will likely be unable to run the game at all (not an unnoticeable amount based on Steam's hardware surveys).

    So yes, it's partially humour to say C2 is still early access, but when it comes to stability in larger games and selling to a fairly large customer base, it's definitely the rough and early stages for us, bugs that would be tolerable in freeware or unnoticeable in smaller games matter and the ones we don't have control over are what hurt the most.

  • Jayjay I don't want to play too much devils advocate here. But what were people promised besides the option to export games to mobile aswell.

    I would like to see some more warnings about mobile performance tho, since a lot of people comming to scirra probably don't realize or think about performance differences between devices.

    I don't mind that people voice their opinions. My message is to those agressive, borderline trollish, remarks about the engine with no basis in reality anyways.

    But I actually do have a suggestion for Ashley that might be somewhat reasonable altho probably still way to much work: slowly replacing parts of the engine with asm.js code? I know the physics plugin is using it. But rewriting performance critical parts of the engine in a language like C, C++ or C# and compiling it to asm.js may boost mobile performance "enough" while still avoiding the headache of exports to native platforms.

    That code would still need to be re-written and then need a gazillion tests and bug fixes tho

  • Gianmichele Haxe looks awesome! I have been thinking about it for a while.. I'm gonna try out the Three.js Haxe port and if that can compile that to more than JS I am totally sold on Haxe myself

  • Schoening Well right on the homepage it says "Build Once. Publish Everywhere." with "True multiplatform support" and yet my game does not run properly on almost every Linux or Mac computer I've tried, or WiiU at all (due to WebGL but also performance). Mobile was never my own goal so I won't mention more than that I've read many difficulties people face there.

    Ashley's blog post is also often used to show how "HTML5 [is] faster than native [games in Construct Classic]" ( https://www.scirra.com/blog/102/html5-g ... han-native ), while there have been a few times where this is simply not true such as the performance tests in this thread here: viewtopic.php?f=146&t=123580&p=879768#p879768

    That example was used to improve C2 though, so it would probably be really beneficial for more comparison files like it to be made/to have more facts behind the arguments on both sides.

    Ashley also said that C2 should scale to handle "large projects" in their Reddit AMA ( https://www.reddit.com/r/gamedev/commen ... us/clmarke ), while now many well known large projects are moving onto other tools in future. By the time your game gets large enough the editor slows down and can crash while adding objects or events, I had to hack my windows registry just to be able to edit events but still have to wait about 5 to 10 seconds each time I try editing or adding an event that opens the object list (and yes, icon cache was off too).

    Definitely agree, trolls don't help.

    I also think that'd be a great suggestion <img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":)" title="Smile">

  • digitalsoapbox

    [quote:3kesw8a5]...fragmentation is bad, as you mention below...

    No, (some) competition is good. Competition between FF/IE, and subsequently FF/Chrome, is what has built HTML/JS into the powerhouse it is today. Right now our export options are largely a chromium-based monoculture, with the exception of iOS8 Webview export. I'd love to see Mozilla/Microsoft alter that landscape; in the case of Microsoft, it seems they may be planning to do just that.

    [quote:3kesw8a5]What's the benefit of this [redist runtime] over their cross-platform universal app support with HTML5/JS/WebGL?

    I think we ought to have both options. Relying on a built in engine, like with Webview on iOS8/Android L, is a great solution in many ways, especially for keeping the app size down, but that layer can (and will) be updated and can (and will) break. When it does, I want to be able to package my app with a specific version of that runtime that I know will work, bloat be damned.

    [quote:3kesw8a5](Re CJS Webview+ export)If it's not cross-platform, what would the benefit be to cross-platform developers? What happens when CJS goes the way of the dodo in lieu of other options with more features and better support? CJS support is terrible, period.

    I think you are confusing Canvas+ (a proprietary creation of CJS) with Webview+. See:

    https://www.scirra.com/blog/154/evolvin ... rt-options

    [quote:3kesw8a5]Fragmentation on Android is dropping and is the most popular mobile platform worldwide based on sales figures and install base alone. That's an odd thing to describe as a commercial failure. Every Android device I've tested on - and I test from 2.3 up to 5, across about a dozen different devices from a list of different manufacturers - has no trouble handling anything designed for their specifications...

    Fragmentation is still bad. Android L is a significant step forward, but it looks like it's going to be years until it achieves a majority market share.

    Most popular platform? Sure, can't argue that. But as for monetization, I'll let the data speak for itself:

    http://blog.monumentvalleygame.com/blog ... in-numbers

    http://bgr.com/2014/06/26/ios-vs-androi ... r-revenue/

    http://www.businessinsider.com/android- ... lem-2015-1

    [quote:3kesw8a5]...As for Chromium/Crosswalk, I'm quite happy with 60fps 1080p performance with thousands of sprites on mid-range Android hardware, so I've no idea what you're talking about here either...

    ...and with this, we've just crossed over into the twilight zone. <img src="{SMILIES_PATH}/icon_e_geek.gif" alt=":geek:" title="Geek">

    Anywhere I can find a video of a mid-range (under $250 unlocked) android device spitting out 60fps/1080p/1,000s of sprites in the context of an actual C2 game exported with the current crosswalk stable(CW10)? Because really, I would love to believe this is possible, but I just don't. Then again, I've been wrong before... <img src="{SMILIES_PATH}/icon_mrgreen.gif" alt=":mrgreen:" title="Mr. Green">

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)