Game Development Community

Linux Dedicated Server - PhysX

by Quinton Delpeche · in Torque 3D Professional · 02/15/2014 (9:52 pm) · 11 replies

Yesterday I was preparing my back end services and started getting the Linux Dedicated server compiled. The compile went through fine and the server starts up okay but when I attempt to join from a client, the client crashes and I get a rather strange errors in the console.

Fearing that I did something wrong, I decided to set up a blank Full Template project with PhysX and attempt the whole process again. Once again, the server compiles fine but when the client connects it crashes with some strange errors in the console.

So I tried again, this time with Bullet ... this time the client connects but the player tends to bounce around on the terrain ... almost jittering like ... this makes the game unplayable.

I have even tried to start the client up, connect and make sure all assets are updated and modified and all is good first. I then transfer the whole folder across to the Linux machine and try the whole process again. Once again Bullet works, PhysX doesn't.

So right now it looks like the dedicated server for Linux works ... but don't expect to use any type of physics library ... cos it just won't work.

Has anyone else experienced this?
Am I missing something as usual?
Have I gone completely mad?


About the author

Gobbo Games is an Independent Games Development company operating from Durban in South Africa. We believe in creating high-quality cost-effective games that remain true to the belief of Independent Game Developers around the world.


#1
02/16/2014 (5:05 am)
Sorry. I've always found crossplatform work to be a nightmare, especially as I don't appreciate the debugging tools available on Linux.

Is it an option for you to use Wine? It's definatly stable enough if you're not using Direct3D, and you're not doing that on your server.

I have several dedicated boxes all over the world which run T3D as a server on Wine.

#2
02/16/2014 (5:08 am)
@Stefan: You know I hadn't even considered Wine. *smacks self*

Let me run some tests on my end, I suspect you have the right idea here.

Thanks for the tip. 8-}
#3
02/17/2014 (2:29 am)
@Stefan: How did you get your dedicated server to work on Linux ... mine keeps asking me for DirectX and I am at my wits end.

Spent hours trawling through the net trying to find all types of ways of fixing this ... but never got it right.
#4
02/17/2014 (8:49 am)
Don't use WINE. It might work, but it's not a real solution, more like a band-aid in my opinion.

This is probably a stupid question but I have to ask, you installed PhysX 2.8.6 SDK for linux right? Not the 3.x one or anything, it's the right version to go with what you're using on windows?

Quote:Once again, the server compiles fine but when the client connects it crashes with some strange errors in the console.

Could you put the console.log up online somewhere? (pastebin.com for instance) I'd like to take a look.

Final question, have you tried any of the samples that come with the PhysX SDK in linux? If one of those is working fine then we can cross PhysX off the list as being the issue and focus more on Torque.
#5
02/17/2014 (9:03 am)
@Andrew: I am ashamed to say that I thought I did ... but apparently I didn't.

Only problem is now I can't actually find the Linux version for 2.8.4.* ... the Nvidia site only has links to Apex now and I can't find my original backup.

*sigh* ... this gets worse and worse. :(

I am using 2.8.4.6 on Windows.
#6
02/17/2014 (9:51 am)
Here, it's a version or two behind but it's the latest linux version I could find:

developer.download.nvidia.com/PhysX/2.8.1/PhysX_2.8.1_SDK_CoreLinux_deb.tar.gz

The trick to finding NVidia's older SDKs is finding the filename. Once you find someone reference "PhysX_2.8.1_SDK_CoreLinux_deb.tar.gz" it just takes a few searches to locate a mirror/link. In a perfect world NVidia would just list them all on their site >.<
#7
02/17/2014 (9:59 am)
@Andrew: Yeppo ... managed to track it down as well.

Busy setting up a brand new lab machine so I have no conflicts from anything, I will report my feedback when it is done ... plus any console logs if required.

Thanks again.
#8
02/17/2014 (12:09 pm)
Okay so here is the situation.

Server is a freshly installed Ubuntu 12.04 32 Bit Server.
Client is my game development machine that I use.

I have installed PhysX on the server and the game compiles perfectly.
The game compiles on the client perfectly. It is the FULL template with PhysX plugin.

The server starts up and loads perfectly, when the client connects, it gets to the loading datablocks section and then crashes.

Here is an extract from the server log:
*** Mission loaded
Engine initialized...
Sending heartbeat to master server [IP:198.101.240.242:28002]
Received info request from a master server [IP:198.101.240.242:28002].
Got Connect challenge Request from IP:172.16.1.101:60964
Got Connect Request
Connect request from: IP:172.16.1.101:60964
CADD: 1705 IP:172.16.1.101:60964
*** Sending mission load to client: levels/Empty Terrain.mis
Mapping string: MissionStartPhase1Ack to index: 0

Here is an extract from the client log:
*** Phase 1: Download Datablocks & Targets
% - PostFX Manager - Executing core/scripts/client/postFx/default.postfxpreset.cs
% - PostFX Manager - Applying from preset
% - PostFX Manager - PostFX enabled
Resource<TSShape>::create - '&Atilde;ƒ&Acirc;&frac14;' has an unknown file format
Failed to create resource: [&Atilde;ƒ&Acirc;&frac14;]
Resource<TSShape>::create - '&Atilde;ƒ&Acirc;&frac14;' has an unknown file format
Failed to create resource: [&Atilde;ƒ&Acirc;&frac14;]

These two lines:
Resource<TSShape>::create - '&Atilde;ƒ&Acirc;&frac14;' has an unknown file format
Failed to create resource: [&Atilde;ƒ&Acirc;&frac14;]

...are repeated 10428 times in the log file. There is a [TAB] behind the "ü". I tried searching for "ü" in the various source files but didn't come across anything.

What is weird is that if I do a build without PhysX then everything is fine. I am really confused now.

The character above is the Lowercase U-umlaut (�¼) (ü) (ü) (ü)
#9
02/17/2014 (12:43 pm)
What datablocks do you have that are physics specific and wouldn't be sent if PhysX was disabled? The datablocks actually won't load when there's no loaded physics plugin. It spits out an error like "Can't create PhysicsShape because you have no plugin".

Identify what datablocks aren't being sent and then check their file paths for weird characters that could be making linux angry. It's very wishful thinking but it's where I'd start.
#10
02/17/2014 (2:43 pm)
Congratulations!

(You have rebuild the project without D3D to use Wine, for future reference)
#11
02/17/2014 (8:12 pm)
@Andrew: There are no Physics datablocks at all. It is a standard Full template with nothing added to it. It is the same template that works with a non-PhysX project and kind of works with a Bullet physics project.

@Stefan: Do you have instructions on how to do that?

At the moment I am removing physics from the project ... I really don't want to do this but until I can sort this problem out, development needs to move forward.

Don't know what else to try.