Jump to content

Home

physics


Tinny

Recommended Posts

Before you start laughing let me make some quick points. The quake 3 physics engine is sorely outdated and even newer open and free source codes enable much better rigid body physics than what is supplied in ja. Now I know implementing a better physics system into ja would take some serious recoding and I think its best not to use gentities for rigid bodies as they have all this other crap that takes up memory and bandwidth and is useless for inanimate matter. I'm not sure what else to use other than gents though since it is what is normally sent to the clients to render, but maybe something else can be thought of and a way of displaying it for clients. As to the actual physics coding, much of the material we can use can be found here:

 

http://ode.org/download.html

 

ODE is I think is a great rigid body simulating code and of course it’s free and open source. What major problems would have to be overcome before utilizing this (i.e., is there a way to send things to clients other than gentities and if we do get those entities to work, how do we get them to trace with the normal gentities)?

Link to comment
Share on other sites

Ok, I think first thing to do is to have code that continuously stream data about the new object type to all connected clients to render. Problem is I have very little network skills in C and am not sure if it is possible to send information fast enough as we're not given access to the networking code of the game.

Link to comment
Share on other sites

I'm not so sure how well that would work.

 

Firstly, the JK3 engine blocks several things as far as i can tell. Like, it does not like stray memory functions at all from GAME/CGAME. Secondly, there are not many open source modules for socket working or networking that are easily handling what we want. You could barrow most of the q3 code i suppose but that would be a big pig and you would need to make your code open source to the terms of GPL i suppose. Q3 uses "Huffman" and compresses/decompresses a lot of stuff for networking, transfering data, conversions, etc. Then you have netchan stuff which handles a lot of the calls to your Sys_ system calls of which you really don't have access too from game or cgame. See, this is why its kind of a really poor idea. I think we really should do what stubert suggested. And start by making jk3 maps load, then possibly simple glm models (without anims if need-be). Add some return 0 system trap calls. Hell, can make the thing all C++ if we want. It's just a really big job. And I'm not really sure how well the virtual machine code would work (yes even though jk3 uses dll/so it still uses some code that it refers to as "VM" yet its not the same thing.)

Link to comment
Share on other sites

This isn't a half bad idea. I'm thinking though that this would require a lot more work than trying to do it in JA, unless serious time would be invested then it would be much better than anything done in JA. Problem is i'm not sure if there is enough patience for any of us (I could be totally wrong on this) in the community to make the new quake support JA maps and files.

Link to comment
Share on other sites

Server has to predict when normal gentities like players and npcs interact with those physics objects though, if just the client side did that error would keep building up and up because there's no standard of what the correct events are supposed to be and eventually people will be seeing completely different things.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...