Construct 3 suggestions & ideas

Suggest and vote on ideas for Construct 3! Please note this is only one aspect of planning. We do not guarantee any features here will be implemented, even if they are top-voted ideas. The aim is just to collect feedback. Remember to search for existing submissions before adding an idea, describe your ideas as comprehensively as possible, and vote for plausible ideas that are well thought out. Please see our full guidelines on suggesting features.

5 VOTE

"Soft Edges" for platform behavior (A feature found in every 2D Nintendo game)

Not being able to jump past an obstacle or through a gap because your player is clipping the edge by literally 1 pixel is super annoying!

 

Nintendo fixed this by implementing what I call "Soft Edges"

 

It means that if you player is jumping, and clips the edge of an object by a certain threshold, the player will slide around the edge and continue the jump. I've included a .gif to demonstrate this.

 

It's a major quality-of-life improvement for platformers, especially those with a predominantly vertical orientation or tight spaces. It could be implemented by adding a single parameter containing the threshold (0 = disabled).

  • Matt Gruber
  • Dec 19 2018
  • No status
  • Attach files
  • Tacker Tacker commented
    01 Jan 15:34

    This is really not that difficult to do with the event system. 
    Here is a quick version I made soft_edge.c3p 
    I hope it helps, if not ...carry on :)

  • Matt Gruber commented
    01 Jan 21:13

    Your example only works for a single square object. A feature built into the platform behavior could handle this with tilemaps, slopes, freeform shaped objects, etc.

  • RhapsodyInGeek commented
    03 Jan 03:22

    It helps to know why this works, as this is really just a side effect of the way they programmed collision detection and not necessarily an intended mechanic. The truth is most platformers back then (and a lot today) used sensor lines to figure out how the Player collided with the environment.

    If you look at the image of Sonic there, that shows where all of his sensor lines are calculated. It's not actually a bounding box, and the wall checking sensor lines extend a bit past his floor and ceiling sensor lines on the X axis. The wall sensors only push him out of walls from side to side, whereas the vertical sensors only detect the floors and ceilings. They did this so that you wouldn't zip out of the stage or experience unexpected "jumping" when pressing against a wall, as it would trigger the floor sensor line if it was at the same X coordinate as the wall sensor, pushing you not only out but up as well.

    What you're getting with your example is Mario's ceiling sensors don't detect the block when going up, but his wall sensors extend a pixel beyond his ceiling sensors on the X axis so the wall sensor hits the block and Mario gets pushed out.

    AFAIK in Construct, the "sensors" are based upon the collision polygon, so there's no slight offset with the Bbox_Bottom/Top with the Bbox_Left/Right like you would have with the sensor lines of yore. If you want to mimic this "soft edges" (let's be real here) "bug", the best way would be to set up sensor lines and ignore the collision polygon for tile solidity.

  • Tacker Tacker commented
    03 Jan 17:04

    Ok, yea that's true. Even tho I would much rather like to have access to the collision poly normals and collision contact points and such as a sollutuion, but I definitely see your point.

  • RhapsodyInGeek commented
    09 Jan 19:44

    I would love access to the collision poly normals and collision contact points. I think r0j0hound mentioned there's access to those in the add-on SDK, but having event access to those would be phenomenal, or some type of raycast behavior. The Big Question would be "how would you implement that?"

  • Matt Gruber commented
    13 Jan 01:34

    @rhapsodyInGeek This may be true to an extent, but it is definitely an intended mechanic to be included in so many games, even the later 3D versions. By your logic alone, the wall detector would push the player over a ledge as well, yet it does not. Also worth noting that top-down games do this as well (Illusion of Gaia, Chrono Trigger, Zelda) so it's not pertinent to just platformers, nor nintendo.