digitalsoapbox's Recent Forum Activity

  • > I'll add to this and say high resolution platformers are definitely an issue in C2 and I haven't seen any real movement to look into why HD performance isn't all that great.

    >

    This is a classic case of blaming GPU performance on Construct 2. If a game runs OK in SD, but is slow in HD, that's 100% down to the performance of the GPU hardware. A native engine would perform identically, because it's the same hardware. I have looked in to this in the past, and it usually comes down to crappy integrated Intel GPUs. There isn't much any game developer anywhere can do about that...

    I didn't say Intel GPUs - I've had performance issues on a number of mid and high-range nVidia GPUs when running C2 games at 1080p or higher. While the "Intel GPUs are crappy" theory may have worked in the past - when they were very, very crappy indeed - more modern Intel GPUs tend to perform much better (including those in their new Skull Canyon NUCs), so I'm not sure that holds water any more. Even then, other games, both 2D and 3D, made in other engines, perform significantly better on Intel embedded GPUs than games made in C2. Whether that's due to usage of WebGL or not is debatable (I say probably not), but saying other games don't perform any better on the same hardware - call them "native" if you like, but that's somewhat irrelevant to overall rendering performance not affected by the overall CPU usage of the codebase - is provably untrue with absolutely no effort required to do so past picking out another 2D game made in something other than C2 on Steam and launching it.

    There's probably an argument to be made about whether they're "true" 2D engines or 3D engines that allow 2D games, but at a certain point that just becomes a distraction, and for developers & end users, performance is performance. The technicalities only matter to those to shrugging off such concerns. Frankly, the suggestion that it must all be the GPU's fault is as ludicrous as the idea that rendering performance shouldn't, doesn't need to, or can't be improved.

    >

    > I'm not aware of any performance issues relating to platform movements - collision cells should ensure that's fast. I'd be happy to review a .capx if someone made something demonstrating a performance problem.

    >

    Low res platformers are easier to get a steady, higher frame rate in than high res platformers. Fill rate isn't awesome in most C2 games if there's a lot going on, on multiple (say, 7 to 10) layers. Add a few shaders - even if just the included shaders, so that issues can't be blamed once again on 3rd parties - and performance is shot, exponentially decreasing as resolution increases. While this is an expected consequence of higher resolutions, the degree to which it happens in C2, on mid and high-end GPUs, cannot be overstated.

    Based on comparisons to other game engines, performance is much lower in C2. This cannot be blamed solely on the GPU, and based on the performance of other software which uses WebGL, it would be hard to blame WebGL for the performance issues either.

    As I said earlier in this thread, C2's event system is pretty nifty, and I think overall performance of it v more traditional programming is good with room to get better. On the rendering performance front, Construct is behind the curve. That's just the way it is. Whether that's to be blamed on WebGL, C2's implementation of it, Chromium, NW.js or anything else I'll leave to others, since placement of blame doesn't change the end experience - the part that matters most when making a product to sell.

    Fingers crossed there are continued improvements to Construct, in 2 or 3. But some of this passing the buck is a pretty dismissive response to issues repeated time and time again. Sometimes the users of a product DO know what they're talking about when it comes to more technical concerns, which may be something to keep in mind.

  • > in the form of a side-scrolling 2D platformer

    >

    2D platformers seems to be the weakest point of C2, especially if making a game where the enemies are also using platforming behaviors and if there are many (eg: 5+) enemies alive at a time/on screen. Eats up the JavaScript performance and leads to missing collisions on average or lesser machines (which feels like a large portion of audiences who purchase 2D games on the desktop/Steam).

    Also, screen capture software still tends to wreak total havoc in the games, causing further missed collisions and engine issues you won't easily avoid, so social spread of the game might be negatively impacted.

    But as a side project? I agree with glerikud that it should work alright on desktop aside from the above (Windows specifically, never had much luck with Mac/Linux for our game).

    I'll add to this and say high resolution platformers are definitely an issue in C2 and I haven't seen any real movement to look into why HD performance isn't all that great. Based on my experience, the issues come down to slowness due to C2's rendering capabilities more than the speed of any event/action execution (as in, other engines using WebGL don't have the same rendering performance issues). Pixel art platformers that run at lower resolutions perform much better. Maybe (hopefully?) these rendering improvements will come in C3. At the very least, fixing shaders so they run based on the layer/layout instead of screen coordinates and adding in addition shader feature support is long overdue. See: https://www.scirra.com/forum/webgl-effects-change-while-scrolling_t115751.

    Construct's event system is super solid and allows some pretty advanced programming-type stuff. In that sense, Construct being based on javascript/html5 tech has worked out well. But it's graphical capabilities are kind of sub-par. And of course there's also the issue of platform support, and regardless of how much someone may enjoy using C2's event system, lacking support for the platforms a game may do well on is a real concern.

  • > digitalsoapbox

    > I've only tried a handful of the bundled effects with paster, but I was only aware of effects pasting wrong, not causing an error.

    >

    > I guess it can be marked as a limitation, as I've been avoiding working on any plugins lately.

    >

    R0J0hound & digitalsoapbox can't you just apply an effect to the layer it's on?

    ?? ?? ?? ?? ?? ?? ?? ???? ???? ???? ???? ??

    HAPPY NEW YEARS !!!

    ?? ???? ???? ???? ???? ?? ?? ?? ?? ?? ?? ??

    Not if we want to avoid the either 1 or 3 light limitation of the available Normal Map shaders.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Quick Update:

    Over the holiday break I've been spending some time getting the lighting working with some pixel art from an old project; looking at grey boxes is boring and with some art to use, I can spend more time getting things to blend properly and see what kind of features are really needed. This is still an early test, and all the lights are the same color, but it's a step closer towards having a workable lighting/shadow system that could actually be used in a game efficiently.

    To start, here's what the scene looks like with no lighting. The pixel art isn't very detailed, and is mostly made of flat colors.

    Here's how the lighting overlays onto each layer that's affected. There's 4 Paster objects on 4 layers. The light shapes/shadows get pasted into the Paster objects on each layer after different effects have been applied, to produce varying levels of blur/blending for each layer to help separate the lighting effects. The purple color is what the Paster objects are filled with before pasting the shapes/shadows in, and acts as the "shadow" color for the layer. By changing this RGBA value, each layer with a Paster object can have its own color for this value. The layers with the Paster objects are also set to render to their own texture ("Force own texture" in the Layer properties panel), and the Paster objects are set to the Source Atop blend mode - which confines their effect to only they layer that they're on.

    And when it all blends together, with the Paster objects set to Multiply on most of the layers, and Additive on the overall "bloom" layer.

  • R0J0hound Have you tried Paster w/ any of the normal mapping shaders? I keep getting an error when trying to paste a Sprite using any of the available normal map shaders I've found, including the default Bump Map shader. I have only 1 shader on a sprite, none on the Paster object, so I would think that falls under the current limitations of Paster?

    I also tried Normal Map Extended ()

    and this normal mapping shader:

    But no luck.

  • I had a feeling I would need to use an array. Just checking if there were alternatives and that first option seemed a little messy. Though honestly arrays offer a picking trickery all their own.

    Got it working more or less. Thank you!

    Very cool! I'd be interested in hearing more on how you created this.

  • SOMBRERO is on sale for only $3.99 during the Steam Winter Sale! Woo!

    And a new battle arena has been added! Double-woo!

    http://store.steampowered.com/app/472690/

  • How can i get this effect? I really would like to use this in my project.

    Edit: After reading everything great job!! and when this is complete please let us all use this! i have been wanting to use lighting like this for a long time and is one of a few reasons my main project is on hold. Good luck on this effect!

    It's definitely not ready for in-game use quite yet. It needs to be easier to set up and I want to see if I can put together a plugin that helps manage things a bit better, a kind of helper object that can be placed in the editor that will then generate lights at runtime. Otherwise, it's easy to lose track of which lights are static or dynamic/dynamic with different behaviors.

  • digitalsoapbox

    Path of image is Expression:ImageSource. And Expression:TilesetName , Expression:Frame also could be used.

    "flip/mirror" features are "Expression:IsMirrored", "Expression:IsFlipped", returns 1 if flip/mirror

    Maybe I'm doing something wrong? The actions below are what I'm doing, but it's not moving to the correct frame. Tiles seem to work as planned, but objects are using the wrong animation frame.

    In Tiled, a square (using an image from the tileset) is stretched to cover the floor area:

    In-Game, it's going to the wrong frame. It's not staying at frame 0, it's just going to the wrong frame - in this case, frame 18, when it should be frame 10:

  • rexrainbow

    Looking through the documents, it looks like the object doesn't return what tileset image it's using? Or am I reading it wrong? Is there an object equivalent to TIlesetName & Frame that I'm not seeing? And is object flip/mirror supported?

  • lucid

    Is there a way to apply shaders to specific parts of objects when using direct drawing mode?

  • digitalsoapbox

    That sounds right. Yeah, you'd just need to do it for one instance of a type since animations are shared with the other instances.

    Yep. Wasn't totally fun and required some changes to the way I load stages, but it's working now. Need to leave one instance on the screen while creating the others, it seems, otherwise the new instances that are created don't have the loaded images.

digitalsoapbox's avatar

digitalsoapbox

Member since 21 Aug, 2013

None one is following digitalsoapbox yet!

Connect with digitalsoapbox

Trophy Case

  • 11-Year Club
  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Regular Visitor Visited Construct.net 7 days in a row
  • RTFM Read the fabulous manual
  • x3
    Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

18/44
How to earn trophies