ID:137136
 
umm...there seems to be something nasty wrong with the 311 version for Linux. In Dragon Warrior Online 1.35, the game runs as fast as it possible can (which is like 500 times faster than normal). I tried hosting with version 310, and it said that the world was corrupted (because it was compiled in 311 (307b37 I believe) for Windows.

Could you possible update the Linux port to see if things are fixed?
CableMonkey wrote:
umm...there seems to be something nasty wrong with the 311 version for Linux. In Dragon Warrior Online 1.35, the game runs as fast as it possible can (wish is like 500 times faster than normal).

Odd. I can't reproduce any timing problems in it, but I might not be testing the same thing. What sort of code is going faster than it should?

--Dan

p.s. It sounds like something is busted, but I just thought I'd mention that there is a -speed option to DreamDaemon. For example, the following would make it run at half-speed:

DreamDaemon MyWorld 2000 -speed 0.5

In response to Dan
hmm...I'm not the coder of this game, so the question on what is not being ran correctly would have to be answered by SilkWizard. However, it looks to me as if the number of ticks per second is equilavent to the number clock cycles per second. :-)

I tried the -speed option. I tried -speed 1, -speed 0.5, -speed 0.1, -speed 0.01, -speed 0.001 and the thing still runs like I didn't make any changes. The CPU usage of DreamDaemon is maxed out (about 98% CPU utilization) and over a 100MB/s LAN, I get "Setting Network Delay to 90" (or some other high number) frequenly on the Windows client.

Right now, I'm hosting the game on my Windows box with no problems...but I would much prefer to put it back on the Linux machine as soon as possible.
In response to CableMonkey
Could you please run a test for me? Compile the following code and run it. Ideally, you would compile this into the game, but since you may not have the source-code, you could just compile it on its own.

Do you know if the game sets world.tick_lag? I doubt it, but I just want to make sure.

mob/verb/test_time()
   var/start = world.realtime
   usr << "world.tick_lag = [world.tick_lag]"
   for(var/i=1;i<100;i++)
      sleep(10)
   usr << "Slept for [(world.realtime-start)/10] (expected about 100)."

In response to Dan

Also, make sure that both DreamDaemon and libbyond.so are from the new version. If you mix and match them, there actually could be a bad timing problem.

--Dan
In response to Dan
RESULTS:

world.tick_lag = 1
Slept for 0 (expected about 100).


As far as I know, the files are correct; however, just to be save, I'm going to wipe out the entire directory and reinstall 311.
In response to Dan
ok...I tried another Linux box that has never had BYOND on it (exact same distrobution) and the test worked properly.

I am now in the process in trying to figure out what I have done wrong (and yes, my first installion of BYOND for Linux was a bit...shall we say...odd)
In response to Dan
woohoo!!! I found the problem.

Seems that late one night I installed an older version of BYOND in /usr/local/bin....and I was trying to run the newer version in a user's home directory.

THANK YOU VERY MUCH!!!!