Advertisement Jump to content
Sign in to follow this  
ZwodahS

Question regarding Box2D

This topic is 1745 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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?

 

 

 

 

 

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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
Edited by dejaime

Share this post


Link to post
Share on other sites

 

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!