9

I just finished taking an independent study course for CS282 - Computer Physics Simulation. It was the first time it was offered at the college I'm attending. The textbook was "Game Physics Engine Development: How to Build a Robust Commercial-Grade Physics Engine for Your Game" by Ian Millington. This book is full of grammatical errors and, while a useful reference, is difficult to code from. The source code that is provided with the book is much more complete than the book illustrates and there is a level of difficulty deciphering the code, especially for graphical purposes as there is not even a primer on how to do something on your own with the engine, which in fact is broken or unimplemented in places, or how to use GLUT, which is the graphic utility the book uses and IS NOT DEVELOPED ANYMORE! In fact, most of the references in this book were not from the last decade, which isn't too bad for teaching code that's 15 years old, I suppose. While this text is a great resource for the big picture of physics simulation in a beginner setting, it does not introduce a friendly sandbox for CS students to play in.

This was basically an experiment to find out what works and what doesn't. My professor also included a textbook for using ActionScript with a physics engine, but the text required prior knowledge of how physics engines worked so we dropped it for practicality.

My question is this:

I'm in the process of writing a reflection paper and I'd like to be able to recommend an alternative to these texts that provides an easy way for CS students to jump in and write code and actually be able to see the fruits of their labors, possibly with python. Can anybody recommend a good resource and/or text that would be useful to this end? For those who have taken this course or similar, what have been your experiences?

loganfsmyth
  • 156,129
  • 30
  • 331
  • 251
LavaHot
  • 382
  • 2
  • 20
  • Don't know how relevant this is, but there's a [book](http://www.amazon.com/Real-Time-Collision-Detection-Interactive-Technology/dp/1558607323/ref=sr_1_1?ie=UTF8&qid=1336613300&sr=8-1) I've read on collision detection that I thought was pretty well written. – moowiz2020 May 10 '12 at 01:29

1 Answers1

1

which is the graphic utility the book uses and IS NOT DEVELOPED ANYMORE!

Wrong. Check FreeGLut project.

Can anybody recommend a good resource and/or text that would be useful to this end? For those who have taken this course or similar, what have been your experiences?

You might want to take a look at Chris Hecker's physics articles. They're old, but they're useful.

it does not introduce a friendly sandbox for CS students to play in.

Friendly sandbox means "nothing to program". TO "play" you could use ready-to-use physics engine (Bullet Physics (comes with source code), or PhysX), but I doubt it would teach how to write decent physics simulation from scratch - it is a big topic, and there's a reason why existing engines were in development for a long time...

SigTerm
  • 26,089
  • 6
  • 66
  • 115
  • Well yes, there are GLUT derivatives like openGLUT, but GLUT itself is no longer being developed. From GLUT article on Wikipedia: "Kilgard's GLUT library is no longer maintained," – LavaHot May 10 '12 at 03:24
  • Also, by "sandbox" I didn't mean that we as students would just play with an existing physics engine without adding code. Yes this class was hard, but there was a lot of unnecessary detective work to find out how to get something working. I'd like a way that a student could write a class that defines some aspect of the engine like a force generator or a fine collision detector and plug it into something and get a graphical demo out of it. Graphics was something that was heavily used in he authors engine, but was not at all covered in the book. – LavaHot May 10 '12 at 03:51
  • 1
    @LavaHot: "but GLUT itself" As long as API is the same, it shouldn't matter who maintains it or whether it is "original" or not. That's the beauty of modular design - you can use another library as long as it has same interface. "student could write a class that defines some aspect" I can't imagine easy way to do it. Existing engines (with source code - ODE/Bullet) allow some extensibility, but since every concept should interact with engine in certain way, it can get complicated fairly quickly. I think both ODE/Bullet should include some "user classes" demos, but I'm not certian. – SigTerm May 10 '12 at 11:34
  • @LavaHot: "Graphics was something that was heavily used in he authors engine" Are you, perhaps, simply looking for some kind of graphical framework? – SigTerm May 10 '12 at 11:34
  • Yes, I suppose you're correct in saying that the newer GLUTs extend the same interface, but I could not, with the included GLUT examples, do glSolidCyclinder(), which I believe almost all of GLUT's derivatives can do. And I didn't want to potentially create a rat's nest of broken code by ripping out the old GLUT and putting in something new. Yes, I suppose if anything, a graphical framework would be beneficial. Do you have any thoughts? – LavaHot May 10 '12 at 18:59
  • 1
    @LavaHot: it is called glutSolidCylinder, not glSolidCylinder. There's also openGlut. And you still can use "old" glut, because code doesn't rot. "Do you have any thoughts?", unfortunately, no. There's a problem if you go for simple solution (grab SDL some mesh library, etc), you'll end up with no scenegraph, and might waste time writing it. If you go for game engine and use it as a basis for your display framework, then you'll be forced to accept engine's model of abstractions (and, of course, it can get in your way later). So there's no universally good solution. – SigTerm May 10 '12 at 19:05