[Bleeding] Important: Code Repository

corn

25-04-2009 20:46:21

Hello All,

I've been spending the last month working with NxOgre. NxOgre is a powerful wrapper for PhysX, but many times I've found myself very frustrated with its use! Documentation is minimal, and there are very few listings of full source to common problems available.

In an effort to help one another, and cut down on the number of questions, especially the simple ones that are asked over and over in the forum to betajaen and others, I'm creating this topic in hopes that the user community of NxOgre will help each other out and solve some of our biggest challenges with NxOgre. As anyone like myself studying NxOgre for the first time as of more recently has found out, there are many versions, and very little documentation on these versions. When reading through forum posts, most of our posts are our own specific questions of how to do stuff related to game development with NxOgre. Most of the time, we post a small slice of our code that we need help with (which 1,000+ other people before us have probably already implemented), then once we get help, we go back to coding, never posting the full solution to the problem. When reading through the forums, there is rarely any full solutions to major problems posted, just small code fragments where people ran into something they couldn't figure out themselves.

It would seem most of what you want to do with NxOgre has already been fully implemented by someone, who is using it right now in their games or other applications, but just hasn't posted their implementation. So the same problems occur over and over again...we continue to waste time trying to code the same solutions ourselves that someone else has already coded, tested, and is using. This is an inefficent waste of talent. Due to the lack of full documentation (which one must expect anyway when a solution of this magnitude only has a single developer, who has his hands full already coding NxOgre and trying to answer all our questions), it can take weeks or months, and many forum posts to work out a full solution of a class or classes to a single physics problem we want implemented in our games. Some of the most common problems we want to use physics for in our games are for adding gravity, collision detection, a character controller, keeping objects from falling through level/terrain geometry, physical interactions with world objects, triggers, vehicles, and ai, all of which should be able to be solved in a generic manner with a simple to use series of well written classes using NxOgre.

After a few weeks of work, a lot of reading, and asking a number of questions in the forums, I've only been able to get some working actors and bodies setup, with gravity and a plane as a floor, and the ability to apply forces. I've been so wrapped up trying to find small undocumented solutions, that I haven't been able to implement a full class yet to solve even one of the aforementioned problems. However, I ask myself...why am I spending weeks implementing something that thousands of others have probably done before me, and which they have probably done it a whole lot better. I also know that when I finish with the implementation, I'm going to have move on and also spend weeks implementing something else that someone else has probably already implemented, and quite possibly better, as they've had time to test it and optimize it.

So here is my proposition: If you've figured out how to do anything major with NxOgre, and implemented a stable and working class, library, set of classes, major functions, etc., that does anything useful that others might want to use with NxOgre, and which would take time for someone else to implement, please share the full source code here! If everyone that has solved a major problem posts their full solutions here, we can figure out who has the best solutions, then all use those in our games/applications. The whole theory behind the licensing of this stuff anyway is that everyone shares, and we work together to make it better! Instead of spending time reinventing the wheel over and over again, we need to work together on making the best classes built with NxOgre better, making them more robust, efficent, and stable. This then helps all of us achieve our goals. If the same piece of code is used and tested by hundreds of programmers, it is far less likely to have problems when you go to release your applications, and also should execute at top speed, as input can be taken from the group as a whole on optimizations. Additionally, this would cut down on the number of questions posted to the forums, and consequently, the number of questions betajaen has to answer -- which in turn will free up a significant amount of time for him to continue his work on NxOgre itself, and also give him optimized classes to use for testing his work, so he doesn't also have to create these.

There are also many things that aren't yet implemented in most versions of NxOgre which others have already solved and added to their games/applications, such as characters, fluids, cloths, physical particles, etc. If you've solved any of these problems, please don't horde your solution! Share it with the community!

I've created two seperate threads for this, one for bleeding, and one for bloody mess, depending upon the version you're using. Please make sure you post your code to the right topic. In the subject line of your posts, please post the version number of bleeding or bloody mess that you used to code your solution with, and what the solution solves.

If this works, and we all work together, this topic should be the most complete place available to quickly find a full solution to all your NxOgre/Physics needs. If you've built working classes/controllers with NxOgre, please post them, or post links to them here!! There are a number of wonderful and intelligent people here, let's work together to make NxOgre the best and only solution people consider for Physics when using Ogre!