Question regarding Box2D

Started by
6 comments, last by ZwodahS 10 years ago

I had implemented a few platforming games (just to learn the basics), and had always use simple AABB collision test.

If I just want to make a simple platformer game like say Mario or Megaman, the kind without complex Physics, is there any reason to use Box2D or is there any reason NOT to use Box2D ?

I have always been told by friends that I should use a physics engine instead of writing my own collision code, but I always have the impression that Box2D will be overkill for a simple platformer game. Advice?

Check out my blog at zwodahs.github.io and zwodahs.itch.io/

Advertisement

I would say that, for a simple platformer game, using Box2D will be way harder than creating your own logic.

Box2D is great when you need fancy solid bodies physics. But all a simple platformer needs is usually gravity, basic friction and collision.

Look at this code:

https://code.google.com/p/box2d/source/browse/trunk/Box2D/HelloWorld/HelloWorld.cpp

It is an example Box2D that creates a "Box" and a "Ground" rectangles and then, when the simulation starts, the Box falls to the ground. It spits its angle and positions to the console. As you can see, the code is an overly complex solution for a simple problem. Of course, that is just example code, as an overview of B2D general usage. This complexity surely pays off when the necessary physics are complex as well, but, for a 2D platformer, I'd keep it simpler.

Thanks a lot for the reply. I thought so. What about using Box2D just for collision detection ? or it is just easier to do AABB.

Check out my blog at zwodahs.github.io and zwodahs.itch.io/

I used box2d to make Pong. That's overkill. But it was a fun experience, and helped me learn box2d and it's applications.

Saying box2d is overkill for a platformer means nothing if you don't have the full list of features of the game, and none of those features include anything remotely complex and related to movement, collision and collision response.

I'd say, try getting as far as you can without adding new movement/collision/response code. If you can implement your whole game without adding code for these things, you're golden. If you find yourself adding new code for these things because you need them, consider box2d.

devstropo.blogspot.com - Random stuff about my gamedev hobby


What about using Box2D just for collision detection ? or it is just easier to do AABB.

If you plan on using B2D for collision, there is no practical way to not use it for the rest.

It will need to do all the simulation and you'll still need to create all the body definitions and use world.Step(...) for it to detect the collisions. Or, you'd need to update the world by hand, by calling SetTransform and whatnot, every time a physical entity in your game moved...

Really, not the most practical approach. If you ever decide to use Box2D to detect the collisions, it would probably be wiser to go ahead and use it for the whole simulation as well.

Saying box2d is overkill for a platformer means nothing if you don't have the full list of features of the game

I answered based on what he said in the first post.

If I just want to make a simple platformer game like say Mario or Megaman, the kind without complex Physics

Saying box2d is overkill for a platformer means nothing if you don't have the full list of features of the game

I answered based on what he said in the first post.

If I just want to make a simple platformer game like say Mario or Megaman, the kind without complex Physics

I know, i wasn't replying to you. I also fully agree with what you said, i just gave a different perspective on the issue. :) I just find that even these seemingly simple games tend to get more complex as development continues, unless you have a very clearly defined goal and list of features.

devstropo.blogspot.com - Random stuff about my gamedev hobby

I think it would be possible to write a separate character controller using the collision part of the library directly rather than having the controller part of the simulation, but it would be tough. Absolutely only worth it if you wanted a character controller interacting with a world that was otherwise a physics simulation.

I played around with it today and I realized that it is a full fledged physics simulation and I don't think I need the full feature of a physics simulation in my game.

I also think that it is overkill if I use it just for collision detection.

However, I will think about all the things that I will possibly need and see if any of them requires good physics engine.

Thanks for the discussion =D

Check out my blog at zwodahs.github.io and zwodahs.itch.io/

This topic is closed to new replies.

Advertisement