Cheers!

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • I think I kinda get Teapotwars 2.3 working with PhysX 2.7 SDK.

      This is my experience:
      1. Install PhysX_7.03.21_SystemSoftware and PhysX SDK 2.7.
      2. I'm using Visual Studio 2005.
      3. Try compile once. Add 4 directories to the project's Additional Include Directories. Which will find all the missing .h files.
      4. Try compile again. Comment out the complaint lines in bool BaseGamePhysics::Vinitialize().
      5. Comment out the assert(...) line in BasGamePhysicsErrorStream::reportError(...)
      6. Compile again. The program should run by now.

      I still need to figure out how to control the teapots. For some reason, I can only see a yellow teapot in the middle, and a red teapot flying around shooting blue ball randomly. They seem not responding to my mouse or keyboard controls.

      Questions:
      1. When I want to run the game on a non-development client machine, do I need the Ageia PhysiX runtime(PhysX_7.03.21_SystemSoftware) installed on client machine or just need to put PhysXLoader.dll under the same directory with the game.exe file?

      2. Do I have to run a client process to get control of the teapot? Or the yellow teapot supposed to be able to control in the server mode also?


      (Oops, this post should be under Source Code v2.3 (2nd Edition) forum) I moved it to 2.3 for you! - Mr.Mike

      The post was edited 1 time, last by monio ().

    • RE: Cheers!

      I've never used 2.7, but previous versions only required the DLLs...

      And...the player's teapot is controlled in exactly the same way, even if you aren't running a network. You should use WASD to move it around and SPACE to fire...
      Mr.Mike
      Author, Programmer, Brewer, Patriot
    • RE: Cheers!

      Yes! Yes! Finally! I can congratulate Mr. Mike on a great game. In other words, I finally got it to compile :)

      Ok

      3. Try compile once. Add 4 directories to the project's Additional Include Directories. Which will find all the missing .h files.

      these are the four directories that you added to the VC++ Directories under include

      \SDKs\Physics\include
      \SDKs\Foundation\include
      \SDKs\PhysXLoader\include
      \SDKs\Cooking\include


      4. Try compile again. Comment out the complaint lines in bool BaseGamePhysics::Vinitialize().

      This is the code you commented out in bool BaseGamePhysics::Vinitialize().

      sceneDesc.broadPhase = NX_BROADPHASE_COHERENT;
      sceneDesc.collisionDetection = true;

      Unfortunately, when you comment out these lines, you can no longer move when playing teapot wars.
      The problem is, NxSceneDesc (i.e. NxSceneDesc sceneDesc), in later versions of the SDK does not have broadPhase. They stopped using it or changed its location, because it is no longer declared in that class or in that header file for newer versions of the SDK (I was using v2.6.2).

      There are a few solutions to this problem:
      If you are like me, and downloaded an earlier version of the SDK (e.g. v2.3.3) when I first got this book, a while ago, you can simply use the files from the earlier SDK.

      Another Solution: beg Ageia to post older versions of the SDK.

      And finally, you can beg Mr. Mike to update his code to be compatible with new versions of the PhysX SDK.

      By the way, to get the program to compile without having to comment out any code, use the No-Physics Debug. Also, once you get the correct versions of the files you need, you will no longer need to comment out that assert you mentioned.
      Good Luck!
      n00b

      The post was edited 1 time, last by weberprime ().

    • RE: Cheers!

      Or...we can drop Ageia altogether and choose something open source like ODE....
      Mr.Mike
      Author, Programmer, Brewer, Patriot