Game Development Community

Integrating Novodex and Torque

by Sebastien Bourgon · in Torque Game Engine · 03/29/2005 (6:12 am) · 20 replies

Hello,

I'm currently making the attempt at integrating Novodex with TGE 1.4, and I just get bizarre compile errors. All I've done is added the basic include into TGE so that well its included, no real integration has started yet.

\include\NxAllocateable.h(21) : error C2059: syntax error : 'string'
\include\NxAllocateable.h(21) : error C2091: function returns function
\include\NxAllocateable.h(21) : error C2802: static member 'operator new' has no formal parameters
\include\NxAllocateable.h(22) : error C2059: syntax error : 'string'
\include\NxAllocateable.h(22) : error C2091: function returns function
\include\NxAllocateable.h(22) : error C2556: 'void *(__cdecl *NxAllocateable::operator new(void))(size_t,const char *,int,const char *,NxMemoryType)' : overloaded function differs only by return type from 'void *(__cdecl *NxAllocateable::operator new(void))(size_t,NxMemoryType)'
\include\NxAllocateable.h(21) : see declaration of 'NxAllocateable::operator new'
\include\NxAllocateable.h(23) : error C2059: syntax error : 'string'
\include\NxAllocateable.h(23) : error C2090: function returns array
\include\NxAllocateable.h(24) : error C2059: syntax error : 'string'
\include\NxAllocateable.h(24) : error C2090: function returns array
\include\NxAllocateable.h(24) : error C2556: 'void *(__cdecl *NxAllocateable::operator new(void))(size_t,const char *,int,const char *,NxMemoryType)' : overloaded function differs only by return type from 'void *(__cdecl *NxAllocateable::operator new(void))(size_t,NxMemoryType)'
\include\NxAllocateable.h(21) : see declaration of 'NxAllocateable::operator new'

Which is caused by the following lines:
class NxAllocateable
{
public:
line 21: NX_INLINE void* operator new(size_t size, NxMemoryType type);
line 22: NX_INLINE void* operator new(size_t size, const char* fileName, int line, const char* className, NxMemoryType type);
line 23: NX_INLINE void* operator new[](size_t size, NxMemoryType type);
line 24: NX_INLINE void* operator new[](size_t size, const char* fileName, int line, const char* className, NxMemoryType type);


Btw, this is from the SDK Download off the novodex site, so nothing here is not available to all. I just dont get what is cuasing what to me is bizarre errors.

About the author

Former Indie Game Developer for Max Gaming Technologies. I then spent a couple years doing mobile work for Capcom Interactive Canada, the highlight being Mega Man II for iPhone. Now doing various mobile contract jobs (mostly iPhone)


#1
03/29/2005 (6:17 am)
I would maybe sugest working with the 1.3 release seeing as the 1.4 cvs release aint the stablest of releases
#2
03/29/2005 (6:26 am)
I'd venture to say that the novodex SDK is having problems with the TGE memory manager, since you're getting problems with the new operator.

You might want to look for threads that discuss using the STL with TGE, as well as resources and threads on the TGE Memory manager.
#3
03/29/2005 (4:06 pm)
I actually get the same problem in a 1.3 build.
#4
03/29/2005 (10:31 pm)
Torque doest like STL - and Novodex uses STL.

2 ways around that - one is to disable the TGE memory manager (search forums). The other is to apply the STL_fix. You can find it in here (just ignore the GameSWF stuff)
#5
04/01/2005 (6:29 am)
Ummm what is Novodex?
#6
04/01/2005 (7:29 am)
Novodex is a physics engine that would handle realtime physics and collision
#7
04/01/2005 (3:47 pm)
Novodex is a third party physics solution. There is interest in getting a more robust rigid-body solver into Torque, and Novodex is one such solver. Others include ODE and Meqon and such.
#8
04/01/2005 (4:24 pm)
Novodex is also the physics engine owned by the company that introduece the Physics Processing Unit at GDC this year
#9
04/01/2005 (6:21 pm)
I thought we had physics?
#10
04/01/2005 (6:27 pm)
Torque does have physics...but some people desire a more robust solution.

Also as LabRat points out Novodex is the API that is now demonstrated to work on some pretty slick PHYSICS HARDWARE :-)
#11
04/01/2005 (6:29 pm)
Bah! Newton and his physics, who needs 'em I'm good with fish that can go from 0-60 faster than a Ferrari, and an Orc who runs around at some 35-40mph :)
#12
04/01/2005 (7:31 pm)
FYI. There is now a Mac version of Newton with a Linux version coming soon.
#13
04/01/2005 (9:10 pm)
Novodex also is used by other engines with some great success, we should have some working stuff soon we will share some recording with you.
#14
08/25/2005 (12:31 pm)
Any progress on the Novodex integration? I just grabbed their SDK and have been reading over their implementation docs but I wanted to know if anyone had pulled it off yet.
#15
08/26/2005 (1:55 am)
I integrated Novodex about six months back for some features that "we had to have" but later dropped because they were unnecessary (and kinda annoying). Like ODE, the hardest part of the integration was handling the networking. There's just no real nice way to do it. I've dropped Novodex from my codebase since then -- I simply don't need a full physics engine on any of the games I want to make and it doesn't (or at least it didn't) have support for Macintosh and Linux.

(That being said, I'm almost tempted to re-integrate it again since I'm having these annoying issues with collisions with rigid bodies using stock Torque code.)
#16
08/26/2005 (5:33 am)
We have some internal working versions. Right now with everything we have going furthering intergration is on hold for a little bit but we have successfully intergrated many of the basic features.
#17
10/04/2005 (9:06 pm)
I'm not much of a programmer but how integrated into the engine is the physics handling in Torque? Would it be possible to seperate it into some kind of a plugin-system to allow easier integration with the apparent cornucopia of physics solutions out there? Has this idea ever been considered or is it even feasible?
#18
10/04/2005 (9:26 pm)
Part of the physics handling is in the network update system. Back stepping each object INDIVIDUALLY to the last packet update, applying packet updates, and then interpolating "frames" till the next packet update.
Physics engines generally dont do that very well. Well, you'd have to backstep all of em at the same time, and re-apply the physics interpolation per tick, instead of individually. So its not very easy
#19
10/05/2005 (6:23 am)
@Midhi
Yes there is an open source framework that is a generic physics layer, I've also montioned this to the following forum www.garagegames.com/mg/forums/result.thread.php?qt=16978
It's called 'Open Dynamics Framework' or ODF, this framework has a test bed and scripting engine but I don't think anyone has implemented it with Torque yet. Home page is here:- www.physicstools.org/
#20
11/07/2005 (1:34 am)
Hi

Is there any code of even the simplest integration of Novodex with Torque(simplest= simple rigid colision)?

I am asking cause i wanted to check how the classes are interacting with torque and try to expand to get other features of Novodex into Torque.

thks