Advertisement Jump to content
Sign in to follow this  

Planning to Make a "Ballance-like" Game, seeking advice...

This topic is 2232 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

Hello everyone!

I am planning to make a game similar to Ballance. Here's a wiki link:

I have a few questions though:
1) How can I build the physics engine? Any tutorials for me to start from scratch(code a physics engine myself might mean a lot more work but also a lot more reward)? Or is using something like "bullet" a better idea?
2) How do I render the graphics with OpenGL(What classes do I need to create and where to instantiate them)? Although I can create simple shapes and apply textures in opengl, I have no idea how to render the physical models. For example, the player controled ball, should I create a class "ball" that have both physical properties(a rigid bode and have weight) and graphical properties(wood texture, surface normals)? If so, where should I instantiate it, how can I pass its coordinate, orientation to the OpenGL?
3) How do I make the game levels? I have managed to create 3D models with blender and I can export them as .map or .obj, but I still have no idea how to make them solid objects in my game so that the ball can interact with the map.

Thank you for your advice!


Indignant Edited by Indignant

Share this post

Link to post
Share on other sites
1) Don't code your physics engine if your goal is to make a game (unless your game has extremely peculiar physics requirements - which this one doesn't). A physics engine adds an immense complexity to your problem and is unlikely to be even remotely close in quality and performance to an engine like Bullet which has been in development for years.

2) Yes, I would make the class contain both the physics and graphics state of the ball. You feed it into your physics engine, read back the ball's new position (and velocity, if you want to do motion blur), update the graphics state with that and render the ball this way. It depends on your physics engine exactly, but you should be able to pass vectors compatibly to both the physics engine and OpenGL so that they can interact.

3) Import those objects, and tell the physics engine to consider them as walls (that cannot be moved). There should be an option somehow to do that (either with a flag, or setting the mass to zero, or something), but again it depends on what you will end up using.

Share this post

Link to post
Share on other sites
Hello Bacterius!

Thanks for your prompt reply. It is very helpful. I will take a closer look at the Bullet and ask when I have new questions. Thanks!

I have a few more questions though:

1)Where should I init the physics engine?

2)Where and how to make the main loop(which is supposed to be excecuted every frame, processe user input, call the phisics engine to update position and speed of objects, and call graphics engine to post redisplay, right?)

3)Should I instantiate objects in game(eg. the ball class mentioned above) in the following main function?
[source lang="cpp"]
int main(int argc, char *argv[])
glutInit(&argc, argv);

glutCreateWindow("GLUT Shapes");





glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);

glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);



4) How can I pass object to physics engine and read it back? (I know this questions is too broad, but if you know any good tutorial/documentations please let me know. Thanks a ton!)

Your reply would be much appreciated!

Best regards,

Indignant Edited by Indignant

Share this post

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

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. 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!