Download

I have come to a conclusion that is impossible to re-create a tiled mario game properly.

I spent so much time to replicate my favourite platformer SuperMarioWorld (about a month prototyping) and came without a solution mainly for these two:

answers.unrealengine.com/questions/223077/square-objects-vs-capsule-collision-in-paper2d
forums.epicgames.com/archive/index.php/t-740980

Creating a pawn with a square collision box makes some weird collision behaviour with the ground sometimes, And it is required to make a movement system from scratch.

One way collision platforms, a common element for 2d platforms is currently impossible for multiple actors interacting with it. (as some levels in super mario world feature multiple jumping enemies that spawn under some platforms and jump over it, not efficient to make a new collision channel for each turtle)

Unreal is clearly not perfected to tiled 2d games, but it is in progress i believe.
If an update come out OR someone manage to make a decent workaround please share you information here. (or if i am simply missing something obvious)

I am going to proceed to next 2d project in mind that does not have that limitation, for a while.

I created something similar as a way to test how Mario would handle that kind of collision. (the jump through obstacles.) It’s easy to say that while your character is jumping, the character has overlap collision till he’s falling, in which he’ll have whatever standard collision profile you’re going for. (I used a capsule but a small sprite promotes a round capsule that you can control better with collision. You could also just make a small capsule and use a bigger sprite with a collision that promotes the standing in the world you’re looking for but checks might be tougher…)

I’ll be honest and say that I don’t know the cost of efficiency with the toggling of collision profiles, but from my experience (though I do have a monster machine.) it didn’t hurt my frame rate.

Now to achieve this, you want to check the state of your character in a local space when the jump command is called. This means creating your own custom variables to test your moving in the upward direction when jumping and when falling. This could be based off tick since you’re checking every frame. (is falling(blueprint) will comeback true even if you’re in the process of jumping, so you solely cannot depend on is falling. you have to check if you’re moving downward in the Y direction and is Falling, now you know for sure…you’re falling.)

This can be replicated to enemies and all other creature types that follow the same rules. (some Mario creatures cannot jump, so they do not need the logic.) and it shouldn’t be hefty on your system/frame rate. you can probably have a few hundred actors doing these checks with no problem. AI at this point would be the problem but I leave that to you :D.

Sir, i already tried most things you just described,
I could make a rough approximation to a working super mario world game, but the game feel would be ruined.

Another point i forgot to mention is that it will take too long to replicate the entire game block by block, where as half of the game is made of one-way platforms and interactive blocks, a suggestion is to make a tileset/tilemap that spawns blueprints for each tile, and better editing like Tiled from mapeditor.com.

Sorry I couldn’t help bud, and yeah I’d love for Tile Map to have more robust features. Paper 2d has a decent following and I’m sure people want more from it but development for it has gone silent…? at least for now. We gotta make a stink so Epic can get back in the fight!

Hey I was working on similar game back in a days in c++ and direct draw you can do this by using the old fashion collision aabb or by creating a points on character/AI one at the top one at the bottom you handle the action manually on per frame basis so when it jumps you check the velocity and upper point when falling velocity and bottom point etc. and than you iterate through scene elements around character/AI and perform stuff like offset its position so it looks like it collides using physics but its just illusion

Last I heard about paper2D the main dev was optimizing paragon he’s in high demand so he will be busy for a while before he can get back to paper2D.

Isn’t there an option to simulate square collisions with capsules somewhere? I saw something like that watching the Paper2D tutorial by Zak Parrish.

Doesn’t the Swing Ninja demo already use one-way collision? I don’t believe it uses Paper2D, but the theory should remain the same.