digitalsoapbox's Forum Posts

    > I'd be willing to bet most people here use Construct in spite of it being html5 than because it is html5. I'm here for the event system.

    >

    It must be easy as a customer to ignore the practical realities of software development. Honestly, the whole reason the event system is so good, is because we've never been bogged down by multiple codebases. Think about this: we're doing better than most other non-programming tools, some of which even have native codebases and make a point of it. Some have had up to 10 times as many employees, even. Why don't they "just" make the rest of the tool better? Because their technology choices cause massive development slowdowns.

    So I think this is actually completely wrong: we're all here *because* Construct is HTML5. Everyone can gripe about various aspects of HTML5 - no technology or set of technologies are perfect - but until you actually work on such a big software project, you'll probably never understand just how unreasonable it is to imagine that we could "just" have the same product with alternative technologies, or anyone else with multiple codebases could "just" make their product as good as Construct.

    I'd say the event system is the main reason. Not having to worry about integration or initialization of various components, HTML5 or not, is the main selling point to me, and I know how to do those things in HTML5/JS, Flash, etc. You're overselling your decision to use HTML5 as a basis for C2. HTML5 was a nice bonus, because I know what's possible with it, and C2 has some shortcomings compared to what the technology is capable of. Until the rewrite, those shortcomings will also effect C3.

    It is what it is. You're being snippy with your customers right now, but criticism is not necessarily a personal attack or inherently negative. We're not all Lamar, looking to get banned, and I never would have okayed use of Sombrero as a showcase for Construct if I didn't believe the product has the potential, as yet only partially realized, for a long and bright future.

    As for solid products with multiple codebases, built by small teams: I started using Unity when it went cross platform with v3. At that point, it supported Windows, OSX, Linux, Android, and iOS. So it is possible - they were not a large team at that point at all. To run in a browser, they have to write their own plugin - a problem you don't have to deal with, which is good for both you and users of your products. But these days they're doing some pretty interesting things with WebGL/HTML5, and have 3rd-party plugins that allow event-like and node-based development. Just something to keep in mind while you're commenting on Construct's abilities and the benefits of basing it on HTML5. To be clear I'm also not using Unity as an example to suggest that you should work on adding 3D support.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads

    "I can't believe Scirra chose a HTML5 runtime instead of Flash. It just doesn't make any sense. Everyone is doing everything in Flash so obviously that was what they should have done. Also they have started charging money when Construct Classic was free, especially when C2 is so early on at this stage of development compared to CC. Obviously this will drive away users. I think I'll choose another tool. HTML5 also only runs in Chrome and Firefox right now so it seems needlessly limited, and we don't know if other browsers will ever support it. It seems like it was a desparate afterthought. It's sad to see Scirra making such crazy choices. It seems like they'll just fade in to obscurity to be overtaken by other tools. Too bad they're doomed."

    - Everyone in 2011

    I wasn't here in 2011, and I'd have disagreed with that statement then, as someone who was already transitioning away from Flash in my professional career-related work.

    It's also entirely unrelated and dismissive of my statements above, and ignores relevant concerns. Yes, believe it or not, some Construct users aren't just ignorant hobbyists expecting the world for cheap, or asking for features they'll never use. So maybe don't do that.

  • The default preview window size is meant to be the viewport size exactly, but if you're on a high-DPI display there's probably this bug that affects it: https://bugs.chromium.org/p/chromium/issues/detail?id=677381

    This hasn't been my experience with the C3 beta on multiple brands of normal DPI monitors (and high DPI is basically unusable on an SP4 because of text size being far too large). It seems to be taking the title bar of the preview window into account when setting the initial size for the window, and if it's resized, it doesn't self-correct to to the proper size when preview is restarted. I also see no way to set a custom preview window size as requested in my OP to more quickly & easily preview different resolutions during desktop preview, which would be extremely useful.

    Yes, I understand that, but why? Why tell your user base that had all those expectations about a new program "here is C2.3, rent it for an undetermined amount of time (the first year is only 50$), and eventually a desktop version (that will be able to save your files to disk) will come up, along with a brand new run-time, which in turn will probably bring new, exiting things to C3 (yet sometime later)!".

    Why not announce C3 and start sales when the new run-time is ready, and spare the users the wait and see (while renting), I just can't understand this approach...

    I've wondered about all of this too. It seems pretty backwards. Subscriptions kind of kill off most hobbyists. In the end I just decided they've shifted markets and are going for the educational dollar, not the developer dollar. Unless the new runtime is a lot farther along than they've announced. In which case waiting to release anything may have been better instead of a half-measure that breaks everything, and then will break everything again when it's updated at some unknown future date, so that's probably not it. It certainly makes any kind of long-term development plans by users unrealistic.

    ¯\_(?)_/¯

    I wonder though, is this vague development road-map attractive for the professionals here? How can you plan your next project not knowing when and if the tool will carry its weight and what the technology will bring in the future? I've always felt like Construct was the tool for the days to come, not for the present, and this feeling is more evident nowadays, with the introduction of C2.3 (not C3 yet...)

    No, it's not attractive even in the slightest at this point. It's 2 steps forward, a few hundred or so back. We'll see what the future holds, I'll be keeping my eye on C3, but as of now I wouldn't even consider a purchase/subscription, half price or not. It's nowhere near ready for prime time.

    I don't believe c3 will be usable by serious devs for at least another 2 years - runtime re-write anyone?

    I have a similar feeling, but for different reasons- They are using the latest browser tech which isn't supported across all devices/computers. So it might take a couple years for everything to balance out. It's a good strategy for Scirra if they want to get a headstart, but I think it just means that for a while it's going to be messy.. Not everyone is going to have the right setup to use C3.

    Agreed, though the issue extends past people being able to use C3 to make games - it extends, to I think a greater degree, to people's ability to run games made in C3.

    C2 wasn't capable of anything past a simple, low-end, highly buggy games for the first few years of its existence, but that was a LONG time ago in game dev tool years, and I have strong doubts any users will be willing to put up with those kind of issues these days in any substantial numbers. Certainly not enough to encourage buying into a subscription service.

    So it's C2, if you're willing to deal with potential consumers not being able to run games on hardware that runs output from other engines just fine, with serious limitations on what platforms Construct-created games can run on, or switching engines. It's not realistic to expect users to wait years for a product they're paying for/subscribing for to hit a point where it's usable in commercial products. Even then, there's a strong chance it won't perform as well as other engines that are much farther ahead in terms of features and performance. Repeated, easily disproven claims that Construct can run as well as native apps doesn't help engender any real trust on the part of users towards Scirra, either. Misleading claims of what "benchmarks" show just makes it worse.

    I can't really imagine how anyone thinks C3 is ready for prime time at this point. It needs months or potentially years more work before I'd consider it worth paying for. Even compared to C2, it's just so far behind where it needs to be. Maybe after the engine rewrite, which is really what should have been launched to begin with, and definitely after plugin support is full-featured and we see the more useful stuff come over from C2 that allows the kind of features a game engine should be expected to have.

    > I feel your are right: even the performance of a simple platform game (Kiwi) is very underwhelming on a i5 machine with 4gb.

    >

    Please provide actual benchmark numbers, otherwise this kind of statement is worthless.

    My office machine can render over a quarter of a million on-screen sprites at 30 FPS in Chrome, so you can get great performance in a browser. A single actual measurement is worth more than an entire forum full of vague statements.

    This argument would be more valid if 30fps was the target, possible to achieve steadily, or possible to lock a game at. With an entirely variable framerate, and with the default (and uneditable) target being 60, this doesn't really mean anything, as a performance benchmark or for what's possible to achieve in a commercial product. Wildly varying framerates, which is what we currently have to deal with any time a Construct project drops below 60, looks like absolute garbage and is a great way to get lots of complaints from anyone who purchases a game with a variable framerate. We don't live in 1996. Slowdown and frame drops aren't expected 20+ years later in 2D games.

    This is of course aside from the suspension of disbelief required to refer to 30fps as "great performance in a browser" on even a mid-range desktop PC with a decent GPU for a strictly 2D project. An "actual measurement" would hold more value - or any value at all - if it were based on usage more related to real-world performance. Which is exactly why performance-related benchmarking tools use real-world scenarios instead of (or in addition to) just spawning a bunch of static objects and calling it a day.

    That said, Kiwi Story seems locked at 60fps, unless the debugger is open and updating all the stats on the default tab (that we can't switch off of in the free version and it heavily impacts performance) so there may be some other issue going on here than anything C3 or Chrome is causing. Memory usage hovers around 160MB if C3 is launched from a desktop shortcut with no plugins enabled, and that looks about right and is less of a memory footprint than I'd expect from Chrome by itself.

  • I noticed that the preview window when C3 is set to preview as a popup doesn't go to the proper viewport size. This made me think that it might be handy to allow developers to set the preview window size so that it could be previewed 1:1 with the viewport size set in the project (if that will fit at monitor resolution). Being able define a specific size would be useful for testing cases where multiple screen sizes are being developed for, like desktop previewing of aspect ratio differences between mobile devices, or if a web game is being developed at a lower resolution and scales up based on window size so devs can test to make sure graphic assets have high enough definition to support higher resolutions. We can drag the window but we don't really get any feedback on correct size and can't currently set the size with actions.

    Best-case scenario would be having a dropdown with common resolutions in the Project properties panel, and some way for C3 users to add their own as needed, that can be used for setting preview window size. The Viewport size defined in the Project properties could be the default option. And if it's in an easy to reach place it'll be faster to test multiple sizes.

  • Sorry for the delay, been in personal hell recently but have now emerged.

    My thoughts on this are based on an older build, installing the latest now, but what I wondered was if it was possible have a system by which we can create a separate logic tree dedicated to dialogue and be ableto trigger segments of this, rather than draw text objects to the screen and hide them for triggering in an event later. The last I tried this, I was making a merchant screen and was drawing text to the screen for every item the merchant sold, manually, and it was rather cumbersome given I'd have to do it for 40+ planets.

    Installing the latest C2 build to have a poke and see what else I can do to accomplish what I had in mind, but that is what I was thinking of.

    It's possible to put together a dialogue system with events that can be used for each of those 40+ planets - there's no reason you should have to create a unique dialogue with events for every single one individually.

  • Collision filtering would be good. Collision filtering by tag would be the best.

  • > Salty!

    >

    For anyone who missed the context, Lamar was back posting accusations that we're a scam company. Was willing to reconsider his ban at end of beta but not anymore. He's permanently banned now, account and IP address.

    FINALLY. Thank you.

    Ashley

    I'm happy to manage spritesheet images myself and all of the memory issues that may arise from it if it means no seams, which I emailed you about a couple months ago, and I ended up implementing image loading myself separate from C2's spritesheeting with no issues and lower memory requirements than I had before, though I think what you're suggesting with image limits on desktop PCs is not, generally, an issue in most desktop games. The best solution (from a dev perspective) is to allow users to create their own spritesheets, even if they have some position/rotation/scale/limitations to work properly with Construct. Put simply, other software does spritesheets better, and it'd be nice to be able to update a single spritesheet that can keep collision shapes instead of having to re-import a spritesheet, have C2 split it up, and then have to redefine proper collision for each sprite. Even though C2 supposedly creates "optimized" spritesheets, I haven't found that to be the case and to shrink file size, I tend to find myself running all exported PNGs through PNGGaunlet which can reduce the size even further, with some images compressing another 90%. Yes, I know this doesn't affect memory usage, but it is a missing optimization for size on disk and it can be a bit of a pain to have to do it after every export because C2 may create differently-organized spritesheets if any images have changed due to re-import or additional spritesheet images being generated if more content is added.

    As for working exports: we're not really presented with much info on export, and I've had issues where one export works and another done minutes later (for testing) fails on startup (red loading bar, for example) doesn't work, even though I may not have made a single change in either C2 or to whatever nw.js version I'm exporting to. Believe me, if I could figure out a way to more clearly report that issue, I would do so in a second.

    Also, while it's good you won't defend a 4yr-old blog post that isn't accurate, it'd be even better if you walked back claims that WebGL performance is equal to that of OpenGL/DirectX, because at just the base level of that claim, the idea that a graphics functionality wrapper on top of another graphics wrapper is as fast as a single graphics wrapper is...well, it's just silly.

    However, I propose a radical opposition to this: The games should work.

    Customers can't tell when an exporter has worked properly or not, they can tell when a game is unplayable.

    Producing unplayable games is not the interest of commercial developers.

    Scirra needs to come out and say "This isn't meant for you" to commercial developers if they aren't going to be expected to have 100% export and functionality to the platforms they list on their advertising.

    Or, they need to at least list the side-effects of export to each platform like a medical commercial.

    Working exports? Clear communication and honest advertising?

    Inconceivable!

    > ...

    > so when I see this claim pushed over and over despite gallons of real-world evidence otherwise - and sorry, but your internal tests with tiny little games or demos mean nothing when compared to thousands of copies of commercial games out in the real world that show the opposite, and PLEASE don't try to blame the game's developers for this as you've done in the past - it's very hard to swallow after the 100th time when all evidence points to the opposite being true.

    >

    +1000

    I know, right? I've optimized the hell out of Sombrero (which developers are also encouraged against in Scirra blog posts, while those developers then receive the blame for poor game performance) and I'm 99% sure there is absolutely nothing I can do to improve performance farther, and the performance is nowhere near far more complex games, including other 2D games, because of some limitations that seem endemic to C2 more than general HTML5/JS/WebGL performance limitations.

    > Do you want us to build native engines? I've covered that in this blog with our rationale around that, which nobody ever really directly argues against, there's just vague accusations of how HTML5 is "poorly optimised" or something, which really is not the case given the potency of modern JIT compilers and the native-equivalent performance of WebGL.

    >

    Actually I and others do have a problem with the arguments in that article, as well as the article on "HTML5 games faster than native"

    Let's see:

    > WebGL is close enough to OpenGL to be considered the same performance-wise. In other words, Construct 2 games render in practically the same manner a native engine would.

    >

    > ...

    >

    > We already cover Xbox One and Wii U - so that only leaves PS4. Currently we're blocked by Sony not providing an easy way to publish HTML5 games to the PS4. Given how well our Xbox One support worked - requiring no significant changes to our engine to work on a console - we are keen to see Sony supporting HTML5 on their console too.

    >

    >

    There's a few arguments against those lines of thought:

    > Listing GPU fillrate as the main cause of a games slowdown... and then stating that the WiiU is a viable export platform is quite funny. WiiU doesn't support WebGL, meaning not only regular GPU "fillrate issues", but no special FX and low performance.

    >

    > 5FPS after losing WebGL and FX is still not playable for a platformer. We didn't even make an HD title, just a retro 16bit platformer with 32x32 to 64x64 pixel sprites on average.

    >

    > As for fillrate being "the main culprit", there are many instances where CPU should be considered too (eg: most enemies and players using the platformer behavior) and, no matter the optimizations, aren't going to be able to combat the issues of JavaScript without emscripten. But, if you make a tool that exports to HTML5 through emscripten it might as well also export the actual C/Cpp (to port to the JS, best of both worlds).

    >

    > Even the mobile games developed with Unity and Unreal put C2 at the ground... How you can even compare?

    >

    > - Native games is WAY better in lower and mid hardwares, and this is AMAZING because more people will play your games.

    > ->>Scirra depending on thirdy-partys for realese our game. Remember when you guys drop support to Cocoon as exporter? That's why I droped C2.

    >

    > ...

    >

    > By the way, The Next Penelope is being ported to C ...

    >

    > To me the main issue I had with html5 games is that on low-end devices (iPad 2) they perform not really well at all. The same simple app on iOS, even with the super accelerated safari, tends to have small hickups and feels not smooth compared to the same done in a native engine (love2d in this case).

    > The situation seems a bit better on newer devices (iPhone6), but still showing those small jerks every now and then (are they GC related?).

    >

    > All of this scares me away from trying to do something serious with html5 engine.

    >

    > While it's true most devices support webgl it doesn't mean we get the same performance as native in that respect. In my experience it varies per device, and it's just not about the hardware capabilities. Case in point, for me in CC rendering is way faster than in C2. This goes against your benchmarks so that leads me to believe webgl gives native performance on only certain devices. The argument that the hardware is the limit doesn't fly when changing software and doing the same thing performs a lot better.

    >

    > The browser's hardware support is primarily about having everything work instead of having everything have good performance imo. Even things like the vsync jank is still there on some hardware. This is probably what causes the disparity between the issues users see and what is tested.

    >

    > I don't know if native support would fix this, and I realize doing so would cause a load of different issues and multiple code bases, but there seem to be core issues with how browsers do things that are not performant.

    >

    Now, in regards to "HTML5 faster than Native?":

    > Construct 2's WebGL renderer is faster than our previous native C++ DirectX 9 based engine - the one we developed for Construct Classic.

    >

    This is a completely wrong comparison, because C2 is largely an improvement and optimization on CC, you already learned from past mistakes and found new ways to optimize. It's the software form of a "straw man" argument against native.

    If you back-ported those optimizations back to C++ you'd find that the results suddenly return to native being the fastest and smoothest. We can tell this ourselves from simply our experience of porting to Unity in C# with our current game and seeing it run much faster and with more lighting, special effects, and enemies on-screen than our C2 prototype.

    Then there's also the people who didn't see the results that are promised in that article with C2 vs CC:

    > 97151 - WebGL

    > 128458 - Native

    > i3 - 3220 / GeForce GTX 550ti with small factory overclock / Win 7 64 / nvidia driver 306.97 / 8Gb RAM

    >

    > Intel E2180 2Ghz, 4GB RAM, Win7 64 bit, SP1, Geforce 210, Nvidia 306.97 driver

    >

    > Native/DX 25613

    >

    > WebGL:

    > Chrome 22: 3801

    > Chrome 23: 4482

    > Chrome 24: 3901 (dev)

    > Chrome 25: 3503 (chanary)

    > FF16: 3254

    >

    > i7 9203.6ghz, 48gb, win7 64bit , amd7970 3gb, catalyst 12.11(beta)

    >

    > Native/dx: 118040

    >

    > WebGL:

    > Firefox 16.0.2: 58712

    > Chrome 22: 103761

    >

    > WebGL Performance (Google Chrome 23): about 10400 objects

    > Native Performance: about 24000 objects

    >

    > My notebook: Processor Intel Core i5-2410M 2.3 Ghz, 8 GB Ram, Graphic card Intel HD Graphics 3000, OS Windows 7 Ultimate 64-Bits

    >

    I'd like to point out two things from all of this:

    1.) Like the data above, some of the "still-Steam-average" hardware still sees native far out-performing WebGL, and desktop is currently the best supported platform for HTML5 + WebGL. The results may be 4 years old, but the average 2D gamer (based on customer support issues on Steam) hasn't updated their PC/laptop/even just the graphics card in a long time.

    Even with an Intel i7 6700k and GTX 1070 which has much better WebGL support than most of my customers I get:

    Sprites/objects >= 60fps with no drops below

    Native/dx: 86k

    Chrome: 95k

    This may not be the number of sprites that will appear in a game, but it still reflects an underlying performance gap between Construct Classic (which could be argued to be almost as un-optimized as C2 is optimized) and WebGL. HTML5 is not faster than native. It can get close with WebGL + Emscripten, but it inherently is just not capable of being as fast as native, and I wish that Scirra would stop trying to compare the two this way.

    2.) You can't just ignore comments/evidence/arguments against your company/public statements about your engine and then claim "nobody ever really directly argues against" them!

    Bonus: That multiplayer plugin would probably have been used a lot more if people were able to export their games and "publish everywhere". It's also possible the users are waiting for more helper functions/plugins/behaviours that make tracking objects much easier (Eg: a behaviour for syncing objects). I know multiplayer is generally a hard feature, but it's a great one to have even if it doesn't get used as often as other plugins.

    Like others are saying, yes, export matters 100% more, but I still am glad Construct got multiplayer.

    Although, it seems some other users had a better time using their own multiplayer solutions:

    > Using Electron instead of nw.js made my games smaller and better working, using my own networking solution with central socket.io based server destroyed weird, random connection problems that disallowed me from even testing my game. And made multiplayer a lot smoother. Being able to write my own rendering code allowed me for much more control over how stuff is shown on screen what makes performance better.

    >

    +1 to all of this, especially the "we're just as fast/faster than native" claims which are so completely beyond the pale in terms of just outright fabrications of HTML5's current abilities, using C2 or not. This is something I knew going in to C2, and I understand the performance difference (though it is greater than it should be with C2), so when I see this claim pushed over and over despite gallons of real-world evidence otherwise - and sorry, but your internal tests with tiny little games or demos mean nothing when compared to thousands of copies of commercial games out in the real world that show the opposite, and PLEASE don't try to blame the game's developers for this as you've done in the past - it's very hard to swallow after the 100th time when all evidence points to the opposite being true.