Physical engine adapted to the needs of a 2d platform game like Super Mario

Hi All,

Well, I plan to develop a platform game, like “Super Mario”, but I run into a big problem, the physics engine of “SpriteKit” (Box2D) is the worst to use in a game of these characteristics, thousands of forums / blogs support this idea (I’ve tried it myself, uffffff), for example:

http://www.learn-cocos2d.com/2013/08/physics-engine-platformer-terrible-idea/

  • Do they know if there is an “arcade” style physical engine adapted to the needs of a 2d platform game like “Super Mario” and if possible, based on “SpriteKit + Swift4”?
    similar to this:

I look forward to your response … Thank you very much.

Hi @basgrani! After doing some research on an arcade engine that you are looking for I unfortunately did not find anything that would be based around SpriteKit and Swift 4. I hope you are still able to create your platform game. Happy coding!

Gina

Hi, I’m afraid it’s going to be a very difficult task … but thank you anyway for your time in the search.

If someone from this forum is able to develop an arcade engine for SpriteKit I would be happy to know your cost / budget, I would not mind hiring that job, Thanks. (You can send me the budget to jorge@basgrani.com)

By the way I found this Engine:

It’s for Unity, and it’s very good!! it’s just what SpriteKit needs for this type of Games.

Have you tried writing your own physics? Depending on what you need it can be easier than you think!

Simulating gravity and jumping is very easy (I’m sure there’s plenty of tutorials on it), and collision detection can be easier than you think, especially if you stick to rectangles and circles.

It works something like this:

  • Your character should have a velocity, you use this each frame to update their position. Just thinking vertically, a negative velocity added to their position will move them downwards, a positive one will move them upwards. Essentially all you need to do is add the velocity to the character’s position each frame (multiplied by delta time)
  • Gravity will subtract from the vertical velocity on each frame, which will pull the character downwards
  • When the user presses jump, you add a large value to the vertical velocity.This propels the character upwards, until the gravity that you add each frame builds up at the top of the arc and then brings the character back down
  • Keep and array of objects for your floor tiles, and use CGRect.intersects to check if the player has intersected a floor tile. If they have, adjust their position to be on top of the tile.

I’d give it a go, you might find that it’s not as difficult as you imagine!

Yes, it is what I am doing now, but the truth is that I do not have much free time to dedicate. My idea is to make a “2D Engine for SpriteKit” similar to this:

Woohoo, it occurs to me that we could create a “2D Engine for SpriteKit” Open Source! What do you think about the idea? I have experience in creating Open Source projects, here are some of my projects:

I leave open my proposal to make the “2D Engine for SpriteKit” Open source, here in this forum, everyone who wants to join will be welcome, if we manage to coordinate a small stable team we will go forward with the idea!!

This topic was automatically closed after 166 days. New replies are no longer allowed.