How JavaScript beats GameMaker Language (GML)

You're viewing a single comment in a conversation. View all the comments
  • 13 Comments

  • Order by
  • This is all very interesting, but when it comes down to it GMS doesn't need third-party tools to get games running on consoles or PC.

    Meanwhile Construct needs NWjs or Electron for PC (both of which are not easy to setup for Steam, with tons of issues such as breaking Steam overlay, apps not closing properly, games not being able to get recorded unless you add certain args, OSX and Linux versions breaking and more), I believe Cordova for phones? (I haven't been keeping up with phone development but I heard it's just as annoying as PC), and for consoles you have to be lucky enough to find a publisher or anyone who has written their own interpreter to port your game.

    I love Construct because it's so easy to use and get started, and it's absolutely great for web games, but as soon as you need to publish your game you start to see its flaws. In my opinion GMS is way far ahead in this aspect.

      • [-] [+]
      • -1
      • Ashley's avatar
      • Ashley
      • Construct Team Founder
      • -1 points
      • *
      • (11 children)

      What's actually wrong with using third-party tools? No technology is perfect, everything has its quirks, but in general they work out great. And if there's no significant downsides, it's a great way to speed up development. With tools like Cordova, you're still getting much faster performance with JavaScript, so there are big wins too. And Construct provides services like the mobile app build service that help make it easier to publish to Android without needing to install and configure loads of developer SDKs.

      Edit: I'd add the whole reason JavaScript has so many benefits, is because we rely on third parties to provide the programming language. The point of the post is that if we made our own programming language it would likely have several major pitfalls. So there's big upsides to relying on third-party tools too.

      • The problem with third-party tools is that as soon as something doesn't work properly, we have to rely on other people to fix it, as it has been happening for the last few years with NWjs. Sometimes bug takes years to fix, or aren't fixed. Every serious developer that uses Construct faces this, you have to either Google or ask around something as simple as adding "--in-process-gpu" to your args just so your game can be captured by streamers.

        Performance is very important, but being able to publish your game also is - otherwise why are we even making games? Just look at how many GMS games have been published on consoles and PC to this date - even if GML is over 5 times slower.

          • [-] [+]
          • 1
          • Ashley's avatar
          • Ashley
          • Construct Team Founder
          • 1 points
          • (6 children)

          Using third-party software is simply unavoidable with modern software development. Changing technologies still won't completely solve that. For example with native engines graphics driver issues can be far more problematic - and graphics card vendors are almost impossible to communicate with. If there's a public bug tracker, at least there's a viable route to getting something fixed - and we routinely do file issues on behalf of user issues and follow them up. Lots of bugs do get fixed this way. Some might slip through the cracks but as ever, changing technology is not a silver bullet that will solve everything.

          • I agree 3rd party isn't all bad and it's very necessary, but in Construct's case we have to rely on it to get our games out in basically any platform that's not web.

            My point is that no matter the performance boost you can have with JS, it makes no difference if I my games keep breaking because of old NWjs bugs, or if I can't release anything on consoles. In both these cases, this doesn't happen with GameMaker.

            Like I said I absolutely love Construct, but the minute we have to release something you start to notice how hard it is compared to any other engine out there - specially GameMaker.

              • [-] [+]
              • 1
              • Ashley's avatar
              • Ashley
              • Construct Team Founder
              • 1 points
              • (1 child)

              Like any platform NW.js has some bugs but usually they get fixed in updates. And if you stay on the same version, nothing actually changes so it shouldn't suddenly break overnight. Are there any active issues with the latest NW.js version?

              • Well, since it's been asked...

                For me, biggest NW.js export issues are incompatibility with OBS (very popular software to record footages from the game) and things like steam overlay.

          • But what steps are being made to solve C3's issues when publishing for PC and Consoles? Those are main markets now for indie developers, and the exporting issues have been a problem since C2's days.

              • [-] [+]
              • 1
              • Ashley's avatar
              • Ashley
              • Construct Team Founder
              • 1 points
              • (0 children)

              We recently introduced the new Windows WebView2 and macOS WKWebView export options providing lightweight alternatives for desktop publishing - particularly relevant to people who had complained about the size of NW.js in the past. As for consoles, it's difficult for us to act on that unless console makers add support for HTML5 games - but there are third-party porting services out there.

          • I've seen that Scirra has filed issues on users behalf, which I think is great as sometimes a user may not know exactly how to poignantly word and demonstrate their issue - having Scirra step in can help get third-party devs and engineers to understand the issue quicker. Much appreciated for this!

      • Sorry but there are issues with huge dependency on 3rd party tools

        1.) You have to always rely on them to solve their bugs. Only option available is just to wait for them to solve the bugs. Regarding 1st party tools, situation is in your hand. Just surf the code & solve that damm bug

        Example:- there was a bug in webview. It affected many apps & soon new version was offered by Google. But still you are at someone's else mercy

        2.) For mobile platform,it is dependent on Cordova. But issue is that rarely it is used & very few developers maintain it now. And that's too on charity. And javascript based solutions are available. See cocos creator