Botworx Vr 0.01 available for download!

A place for users of OGRE to discuss ideas and experiences of utilitising OGRE in their games / demos / applications.
Post Reply
User avatar
kfields
Gnoblar
Posts: 17
Joined: Wed Jul 14, 2004 4:26 pm

Botworx Vr 0.01 available for download!

Post by kfields »

Botworx is pleased to announce the first release of Botworx VR - Version 0.01.
Image
Botworx VR is a Virtual Reality framework written in C++ that ties together the Open Dynamics Engine (ODE) physics framework with the OGRE 3D engine.

The reference application "Buggy Bots" demonstrates the usage of both static and dynamic bodies, realistic missiles and explosions, plus layout capabilities such as stacks, rows, grids and matrixes.

The main focus so far has been to efficiently and realistically animate multiple objects rather than running over pretty terrain. So mesh-collision support will have to wait until the next version.

Joint manipulation is simplified by the implementation of a Motor, Gear and Rod mechanical subsystem, where the rods eventually tie into the axis of Joints.

Optimizations such as taking motionless objects off the animation list and waking them back up during collisions are supported, as are proximity tests to cut down on more costly collision testing. Octree support is planned for the future but is not an issue right now since stepping the ODE world is currently the main bottleneck.

A major architectural decision was to implement my own version of spaces rather than use those in ODE. This just makes it easier to write and debug the framework as a whole, and it seems just as fast although I haven't done any serious benchmarking yet.

The whole purpose of this project was to provide a simulation environment for conducting experiments in Artificial Intelligence, therefore a major part of the next development effort will be to implement a Messaging system that will connect the most popular (and free) AI engines with Botworx VR.

User and developer participation is required to make this project succeed!

Please join me at http://www.botworx.org
Last edited by kfields on Mon Feb 07, 2005 10:36 pm, edited 1 time in total.
User avatar
tuan kuranes
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2653
Joined: Wed Sep 24, 2003 8:07 am
Location: Haute Garonne, France
x 4
Contact:

Post by tuan kuranes »

Could you post more "technical details" on your website...

What's botsworx goals/aim in AI field ?

From my understanding SOAR is only the RBS replacement... no paths, no terrain analysis, no visibility, no Memory, no Steering lib ( http://opensteer.sourceforge.net/ is awesome for that ), flockings or group decision ?

Do you intend to use other AI libs than Soar ?

Here's for your weblinks page :

http://www.ogre3d.org/phpBB2/viewtopic. ... 0955#40955
User avatar
tuan kuranes
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2653
Joined: Wed Sep 24, 2003 8:07 am
Location: Haute Garonne, France
x 4
Contact:

Post by tuan kuranes »

Cannot compile on VC 7.1 because of illegals casts between your defined type and ode's types.

some examples :

VrGeom.cpp(38 ) : 'vrQuaternion' to 'const dReal []'
VrGeom.cpp(41, 52, 60) 'vrQuaternion' to 'const dReal []'
VrCamera.cpp(28 ) 'vrMatrix3' to 'dReal []'

23 errors in total : 19 in BwVr and 4 in buggybotsmain.
User avatar
kfields
Gnoblar
Posts: 17
Joined: Wed Jul 14, 2004 4:26 pm

Post by kfields »

tuan kuranes wrote:Could you post more "technical details" on your website...
Yes, more will be posted when I learn what details people are interested in.
tuan kuranes wrote:What's botsworx goals/aim in AI field ?
After years of research I found that SOAR was the only open source RBS that is actually being used in practice by universities and the military. It also meshes pretty well with my own concepts about AI I had formed long before that. The problem with the official version is that it needs a total rewrite. Since it is published under the BSD license that is what I was attempting to do. Now, I am starting to think it would be wiser to find people with the same interests and attempt to build something better from scratch. The AI community is so secretive it seems like a very difficult task. :(
tuan kuranes wrote:From my understanding SOAR is only the RBS replacement... no paths, no terrain analysis, no visibility, no Memory, no Steering lib ( http://opensteer.sourceforge.net/ is awesome for that ), flockings or group decision ?
True, a good gaming RBS would need all of these things as plugins.
tuan kuranes wrote:Do you intend to use other AI libs than Soar ?
Yes, if they are interesting enough to justify spending the time to integrate them.
tuan kuranes wrote:Here's for your weblinks page :

http://www.ogre3d.org/phpBB2/viewtopic. ... 0955#40955
I will definitely check it out.

Thanks for the input!!!
User avatar
kfields
Gnoblar
Posts: 17
Joined: Wed Jul 14, 2004 4:26 pm

Post by kfields »

tuan kuranes wrote:Cannot compile on VC 7.1 because of illegals casts between your defined type and ode's types.

some examples :

VrGeom.cpp(38 ) : 'vrQuaternion' to 'const dReal []'
VrGeom.cpp(41, 52, 60) 'vrQuaternion' to 'const dReal []'
VrCamera.cpp(28 ) 'vrMatrix3' to 'dReal []'

23 errors in total : 19 in BwVr and 4 in buggybotsmain.
Oops ... :oops: ... I should probably just typedef that stuff.
Anyhow, I'll be upgrading the whole deal to VC 7.1 and Ogre .15 by this weekend hopefully.

Please post all future questions and comments to http://forums.botworx.org and I will be happy to reply (and fix bugs).
User avatar
:wumpus:
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3067
Joined: Tue Feb 10, 2004 12:53 pm
Location: The Netherlands
x 1

Post by :wumpus: »

Looks like something very interesting to toy with :)

One question though, I wonder what was your reason to create your own OGRE-ODE binding and not use Monsters?
User avatar
kfields
Gnoblar
Posts: 17
Joined: Wed Jul 14, 2004 4:26 pm

Post by kfields »

:wumpus: wrote:Looks like something very interesting to toy with :)

One question though, I wonder what was your reason to create your own OGRE-ODE binding and not use Monsters?
When I began this project about a year and a half ago I don't think OgreODE existed at that time or I might have. But then I would have missed the fun of writing my own. :)
User avatar
thegame
Gnoblar
Posts: 23
Joined: Tue Aug 31, 2004 7:50 am

Post by thegame »

Sounds tempting , I'll definetly have a look at it tonite :shock:
Linux Rocks!!!
User avatar
kfields
Gnoblar
Posts: 17
Joined: Wed Jul 14, 2004 4:26 pm

Post by kfields »

tuan kuranes wrote:Cannot compile on VC 7.1 because of illegals casts between your defined type and ode's types.

some examples :

VrGeom.cpp(38 ) : 'vrQuaternion' to 'const dReal []'
VrGeom.cpp(41, 52, 60) 'vrQuaternion' to 'const dReal []'
VrCamera.cpp(28 ) 'vrMatrix3' to 'dReal []'

23 errors in total : 19 in BwVr and 4 in buggybotsmain.
Tuan,

Last night I switched machines from a 1.8 GHZ P4 + GeForce3 to a 2.4 GHZ Athlon XP + Radeon 9000.

I also upgraded all of the projects from VC7 to VC7.1 sans stlport.

Additionally I moved from Ogre .14 to .15

The only thing I had to fix dealt with casting an int to Ogre::Radian which was fixed in 5 minutes.

Are you using ODE .5 ?

Another thought is maybe you have ODE configured for single precision whereas BwVr defaults to double. Open VrRequired.h and change

Code: Select all

#define VR_DOUBLE
to

Code: Select all

#define VR_SINGLE
or reconfigure and recompile ODE itself.

Hope this helps.

Oh yeah, does anyone know why

Code: Select all

scene_blend add
doesn't work properly with a Radeon 9000? I searched through the forums with no luck. Another problem is the OpenGL renderer has never worked on either machines or graphic cards, this is with and without stlport, different compilers etc... :(
User avatar
_mental_
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 419
Joined: Mon Jan 27, 2003 11:51 pm
Location: The Woodlands, TX
Contact:

Post by _mental_ »

kfields wrote:Another problem is the OpenGL renderer has never worked on either machines or graphic cards, this is with and without stlport, different compilers etc... :(
What errors do you get with the GL render system? It should work just as well as the DX one. What graphics cards did you use for testing and which versions of the drivers?
User avatar
kfields
Gnoblar
Posts: 17
Joined: Wed Jul 14, 2004 4:26 pm

Post by kfields »

_mental_ wrote:
kfields wrote:Another problem is the OpenGL renderer has never worked on either machines or graphic cards, this is with and without stlport, different compilers etc... :(
What errors do you get with the GL render system? It should work just as well as the DX one. What graphics cards did you use for testing and which versions of the drivers?
My machines and graphic cards are mentioned in a post above.
The drivers are the latest for each.

The offending function is:

Code: Select all

void GLArbGpuProgram::loadFromSource(void)
The line of code is:

Code: Select all

char* errStr = (char*)glGetString(GL_PROGRAM_ERROR_STRING_ARB);
What's happening is the call is returning a NULL string.

The call stack includes ...

Code: Select all

void ShadowVolumeExtrudeProgram::initialise(void)
Any ideas?

Thanks!
User avatar
_mental_
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 419
Joined: Mon Jan 27, 2003 11:51 pm
Location: The Woodlands, TX
Contact:

Post by _mental_ »

hmm.. nothing springs to mind. Could you post the output of Ogre.log when running one of the samples under the GL render system.
User avatar
tuan kuranes
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2653
Joined: Wed Sep 24, 2003 8:07 am
Location: Haute Garonne, France
x 4
Contact:

Post by tuan kuranes »

Yes : ODE 0.5 and single precision.
Double precision is required ? or the two option are possible ?

After adding all the necessary casts, cannot launch it.

I get memory problems at the beginning when newing ROOT.
(but I do use STLPORT and even defined STL_PORT_DEBUG)

Do you use ogrememory manager in debug Mode ?
including ode.h with ogre is going toward problems unless, you make some

include ogre
include ode.h

becomes :

include ogre
include ogrenomemorymacros.h
include ode.h
include ogrememorymacros.h

same for all other lib used in same source as ogre's one.

And why don't you use pthreads library ?

Speaking of threads, I would make Ogre threads main one as it hardware dependant (GPU load, unload, swapbuffer, etc) and not thread safe.
User avatar
kfields
Gnoblar
Posts: 17
Joined: Wed Jul 14, 2004 4:26 pm

Buggy Bots - Windows Installer Available

Post by kfields »

Hey guys,

Sorry for not replying sooner.

I finally put together an installer project so now you can go to http://www.botworx.org and see what I am talking about.

This release is using VC7.1, Ogre .15, ODE .5 and Microsoft STL.

I tested it on a GeForce 3 card as well as my Radeon 9000 and I'm still getting a weird effect with the explosion's using [scene_blend add] it's like it's totally ignoring Z-order and only adding to the skybox.

The only thing I can think of is the switch from .14 to .15 caused this.
RoundSparrow
Greenskin
Posts: 145
Joined: Wed Jan 19, 2005 4:36 am
Location: Arica, Chile

Post by RoundSparrow »

I can not reach the web site, did this project die?
User avatar
kfields
Gnoblar
Posts: 17
Joined: Wed Jul 14, 2004 4:26 pm

Botworx Demisal

Post by kfields »

RoundSparrow wrote:I can not reach the web site, did this project die?
Botworx is not dead. It's just that I need to come up with a $100 to get hosting for another year.

If anyone can send some C++ or Java contracting my way I would really appreciate it. :)

As far as the Botworx software itself ... Things are getting a lot better.
I have implemented a class named VrPlace that extends my VrGroup.
This allows space partitioning and really speeds up the ODE side of things!

A QuadTree class has also been written that can generate Levels and Terrain with Heightmap support. I need someone to help me create a Renderable class for it though.

ODE Trimesh support is working also for both static and dynamic objects, although there are known issues with ODE that need to be resolved. I am toying with the idea to switch over to Novodex. Another problem is that you cannot have multiple solvers in the same world. Well, you can have worlds within worlds so to speak but the implementation does not allow joints to be created between bodies in separate worlds. Either there needs to be temporary proxies in both worlds or ... something.

Right now I'm tearing into Sinbad's StaticGeometry class. I'm writing a class that allow's multiple objects to share the same view object, which is a kind of wrapper for the Ogre/3D side of things. Fun stuff!

Now if I could just settle on the AI I want to write. I've been researching the best planners out there. The fastest are Graph Planners that use a technique called regression that backchains from the goal state to the initial state. Although backward chaining is the fastest technique, since it is not reasoning from the initial state forward it's kind of blind and may not find any solution in some cases! So what is necessary is a hybrid strategy. To start at opposite ends and use both forward and backward chaining simultaneously. That is going to take a LOT of coding.

Other items for those of you who may be reading this.

Check out openmesh.org, I'm using it to do mesh manipulations and it fit's in almost seamlessly with Ogre.

I also have a 3DCanvas to Ogre mesh converter script and COM app I've written. If anyone is interested let me know. Go to amabilis.com if you've never heard of it. Not a bad little modeller for $70!

Has anyone had any positive results with the Boost Spirit framework?
It's pretty complicated, it would be nice if someone would write an Open Source graphical editor to generate code.

In short, the project is not dead. Thank you for your interest.
Post Reply