Previous Blog Next Blog
Prev/Next Blog
by date

Plan for Gary "ChunkyKs" Briggs

Plan for Gary "ChunkyKs" Briggs
Name:Gary "ChunkyKs" Briggs 
Date Posted:May 19, 2005
Rating:Not Rated
Public:YES
Comments:YES
RSS Feed:GarageGames Blog feedor Subscribe with .
Profile Page:View profile page for Gary "ChunkyKs" Briggs

Blog post
ODE, Torque, And I got source, baby.
Well, a bunch of times, people have tried to get ODE in torque, and either apparently succeeded then dropped out of the ether [Akio, Drew], or succeeded but not quite as effectively as they might have done [ODEItem].

What I *haven't* done:
1) Done anything clever with ODE regarding server<->client witchcraft
2) Done anything with this with TGE beyond compiling it and verifiying that it works in script
3) Finished [no contact joints yet. I know, and it's next on my list]

What I *have* done:
1) Torquily wrapped the API from ODE so it's available in torquescript
2) Written a T2D app that shows that some of it even works


In my ideal world, someone else will release their version of stuff [*cough* Akio *cough*], which gets ODE physics in the engine working client<->server, and then this can be used so that all the physics is available from script.

Things you can use this for:
1) Nothing yet
2) Clientside ragdolls
3) Anything T2D, since no-one knows that you're not doing client<->server stuff.


So. Now we all understand that this, right now, is essentially useless:
EDIT: Removed source. Duh, not for public consumption. If you're allowed, it's here.

Extract that in your engine dir, and add it to your build [compiles and links with both T2D and TGE]. Don't forget to add ODE to your linking flags. If you have problems with this step, feel free to post them in the comments for this .plan.

Untar the "chain" demo in your T2D/examples dir, and run T2D with "-game chain". Read the README.chain for instructions

So, uhm. Because you just *gotta* have an image in your .plan, here's the T2D demo. Be warned, it really ain't much to look at:
.

Blah. As I said, it's mostly useless right now, but I'm working on it.

Gary (-;

Recent Blog Posts
List:05/11/07 - ODEScript... Juggling
04/25/07 - More ODEScript Goodies
04/19/07 - ODEScript Demo
08/30/06 - Juggling Again!
08/08/06 - ODE Script - Not dead yet
07/16/05 - Plan for Gary "ChunkyKs" Briggs
05/24/05 - Plan for Gary "ChunkyKs" Briggs
05/20/05 - Plan for Gary "ChunkyKs" Briggs

Submit ResourceSubmit your own resources!

Robert Pierce   (May 19, 2005 at 00:53 GMT)
Yay, another person who is working on getting ODE to work with Torque.

We are all saved, :).

Robert

Gary "ChunkyKs" Briggs   (May 19, 2005 at 01:12 GMT)
Yeah, but I'm already actually handing out code :-)

Gary (-;

Ben Garney   (May 19, 2005 at 05:14 GMT)
Cool stuff. I like the idea of having ODE as a library for script to interface rather than intermingling it with a standalone object.

Drew Parker   (May 19, 2005 at 06:02 GMT)
About that plan I did with ODE, I do feel bad about that plan. I was sorry that the team I'm on wasn't able to release our ODE resource to the community after we made that annoucement. I also think it's good for people to follow through with what they say they'll do. :) But in this case I couldn't do that unfortunately. Since I do contract work under an NDA, I don't decide what I can or cannot contribute back to GG. So... I'm sorry it worked out for the GG community that way, I know it's a bit of a letdown. And here I don't mean it's any one person's fault who I work with, there were just some miscommunications amongst ourselves.

GG is awesome. The GG community is awesome. It's not often you see people helping each other out so much. GG has cool tech, and they empower indies. But I think the reason they are really successful is because they have good business ethics, and do right by people. They don't worship the dollar, they care about their product, and care about their customers. That is why I support them, and spread the word, even if I can't post resources currently. It's hard to find that kind of company, and that kind of community these days, when a lot of people are unfortunately just out for a dollar. So I respect GG and this community for those reasons.

edit: There's nothing wrong with making a dollor or a living, of course. And GG sacrifices a lot, and could charge a whole lot more. The point I'm making is, when people are so obsessed with money and selfishness, that they're willing to do anything and step all over people or stab them in the back, then that's obviously not good. And a lot of corporations are headed that way.

On a related-side note, check out today's news: Eutelsat and NTDTV Negotiations Approach Uncertain Climax. NTDTV, the only not-CCP-controlled Chinese TV station, which broke the SARS story, Article 23 in Hong Kong, and the persecution of Falun Gong in China, might get booted off the air permanently, because some big-name satellite company is just too greedy. It wants Beijing's big bucks so bad, and the CCP doesn't want NTDTV exposing all their dirt, that Eutelsat is willing to turn on every principle - even it's own company principles, including freedom of speech. That is the awful proof of total corporate ethical corruption.

So GG is like a shining star in the world of business to me. So I feel happy and fortunate to be here. Now back to tech talk.
/edit

Actually, if anybody can get ODE working well with TGE, and contributes that back, free or not, that helps everybody out. That includes the team I'm on. So I think it's a good thing. Basically, what I can say is already public: We got stuck on a small object problem. I think our objects were too small for TGE's GJK collision algorithm, leading to rounding or precision errors, causing bad contact points to be given to ODE. I don't know enough about collision to solve that. But, you could try the ODE library default collision. We could never get ODE *really* stable in TGE. Rocketbowl guys did a nice job, though. There's tons of goodies on the ODE mailing list too, like island disabling by the BloodRayne team.

That's really great of you to contribute your hard work back to the community! If there arises an opportunity for me to contribute more, I'll do it.

One note already posted by someone else in the ODEItem resource: In terms of networking, ODEItem isn't doing any client-side prediction, that's why objects get clunky at about 5 moving at once. You have to fix that to get it going.

Keep us posted on your work! I wish you success,
- Drew
Edited on May 19, 2005 14:16 GMT

James Laker (BurNinG)   (May 19, 2005 at 06:23 GMT)
You go Gary!

Unfortunately Akio never said he'll release it free... :(

Jorgen Ewelonn   (May 19, 2005 at 15:41 GMT)
I didn't know Akio dropped the project, I must have missed that one :)

Way to go Gary, nice to see success in this area !

Chris Labombard   (May 19, 2005 at 17:07 GMT)
Akio dropped the ODE project ? I've been paying attention to the ODE efforts, and have not heard anything

Gary "ChunkyKs" Briggs   (May 19, 2005 at 19:08 GMT)
@Drew: It's all good. I fully understand that stuff doesn't always work out. I didn't mean to sound accusatory or grumpy or anything, it was just a general comment that so far, stuff has been dropping out of the ether just when it starts to get interesting.

As for small objects, I tend to try to scale everything in ODE to between 0 and 1, or 0 and ten. That's one way to stop ODE exploding, IME. One of my projects uses ODE to do inverse kinematics while my juggling stuff juggles. I end up having 3 distinct spaces that I have to keep track of [jugglemaster, ODE, {output}] and translate between them. You could also use a hybrid solution, and just decide that if an object is smaller than {X} units across, then use ODE/OPCODE to do collision. For bonus points, that would even save you a lot of the creating-contact-joint work yourself. There are probably other solutions to the smallish object problem, but I'm sure it's not insurmountable.

Quote:

In terms of networking, ODEItem isn't doing any client-side prediction, that's why objects get clunky at about 5 moving at once. You have to fix that to get it going.


See, that right there is the witchcraft I'm prepared to lay down cash for. I could *easily* use my resource above, do all physics server-side, and just copy objects positions and rotations across the network. But that sucks. Whenever you see me refer to ODE<->Torque magic, that's what I'm talking about. Keeping ODE's state non-broken seems to be a difficult problem.

@Burning: I never expected Akio to release it for free... What I was hoping for in that sentence was the "release" part, not the "free" part. I'd be prepared to lay down 30 to fifty bucks for full ODE<->Torque non-broken network stuff, depending on what had gone into it.

@Jorgen: Thanks!

@Ben: Yeah, me too. It's like the rest of torque; make everything available to script, and do heavy lifting in C++. I also like not having to recompile the engine to mess with the physics.

Gary (-;

James Laker (BurNinG)   (May 20, 2005 at 06:09 GMT)
Akio probably didn't drop the the project... Nobody said that... If someone is quiet for a while it doesn't
mean it was dropped.

Drew Parker   (May 20, 2005 at 17:22 GMT)
@Gary,

No problem, you didn't sound accusatory or anything. Just reading this plan caused me to reflect, and since I hadn't really addressed it yet, I decided to. :)

Glad to see you are making good progress with this!

Dirk "dirkk" Krause   (Jul 20, 2005 at 20:33 GMT)
I say: way to go, Gary! and thanks a bunch.

I wish all the three (or more?) of you would team up.

You must be a member and be logged in to either append comments or rate this resource.