Game Development Community

Torque too fast

by F.W. Hardijzer · in General Discussion · 10/05/2005 (4:22 am) · 35 replies

Hi,

I recently tried picking up on Torque programming because a really nice game idea popped into my mind, however I'm having trouble running the demo from Torque 1.3.0.
For some reason or another, everything goes WAAAY too fast in the game, the ork (kork) is running around like crazy, doing about 60 laps per minute, I seem to be able to reload my crossbow within milliseconds, and shooting takes about that long too.
When I dare to press W for forward, it looks like someone put red pepper in my behind or something :/
Strangely enough, Marble blast DOES behave properly...
My system specs are:
AMD 64 X2 4200+ (dual core)
NVidia GF7800GTX
ASUS A8N-SLI

I have the same problem with Crazy Taxi 3, but that's not a huge issue since I rarely play it anyway. Torque is a problem because I want to use it to make my own game...

Bye,
TB
Page«First 1 2 Next»
#21
09/19/2006 (2:31 pm)
Here's a thread from our forums with a "fix" that has worked for a few people. I need to make time to address this properly.
#22
09/19/2006 (2:34 pm)
The first thing you should do is try to force your process to a single CPU. You can do this with the Process Monitor (ctrl-shift-excape). Right-click on the process and choose something like "Set Affinity". Check only one of the boxes. If things are better, then that's your problem.

You can fix this in code by settings ::SetProcessAffinity() or ::SetThreadAffinity().
#23
09/19/2006 (7:38 pm)
@ J \"hplus\" W - whenever I bring up the task manager, the game level 'disappears' from my taskbar. when i then try to start a new instance, I get the error message ' another version is currently running' or something to that effect. my only option at that point is to 'end' the process that is showing in the task manager before restarting the game. so, while it's possible for me to set 'Affinity' and select only one core for the task, it's to no avail as the demo level is not available to try after i do so. You've mentioned that this can be addressed in code... where exactly in code can would i do this?

Since the AMD driver fix isn't going to help my Intel processor; since Intel says there's no problem, and since the 'boot.ini' modification does nothing to fix my problem, it looks like I'm going to have to look elsewhere for a solution. (unless the software fix that J \"hplus\" W has mentioned above will work for me of course)

I have a Microsoft link for a 'hot fix' http://support.microsoft.com/?id=896256 and will probably pursue it. I'll let y'all know how it turns out.

I appreciate your attention to this guys... just hoping it can get settled soon.
#24
09/19/2006 (8:22 pm)
Well SetThreadAffinityMask works.... sort of. I put this code inside the run function of winWindow.cc:

SetThreadAffinityMask(GetCurrentThread(), 0x01);

What happens when I load my game is I get around 5fps for about 10 seconds and then it jumps up to 60fps. It looks like the code is fixing it, but its not being applied right at startup. Any ideas?
#25
09/20/2006 (6:46 am)
Ok... here's the latest.

I went to Microsoft link > support.microsoft.com/?id=896256 and got the 'hot fix'. after installing the hot fix, I adjusted the registry as per their article directs:

After you install the hotfix, you must use registry settings to enable the new performance state policy behavior. To do this, follow these steps:

1. Click Start, click Run, type regedit, and then click OK.
2. Right-click HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager, point to New, and then click Key.
3. Type Throttle for the new key name.
4. Right-click Throttle, point to New, and then click DWORD Value.
5. Type PerfEnablePackageIdle for the value name.
6. Right-click PerfEnablePackageIdle, and then click Modify.
7. In the Value data box, type 1. Make sure that Hexadecimal is selected in the Edit DWORD Value dialog box, and then click OK.
8. Quit Registry Editor.
Note You can type 0 in the Value data box to disable the new performance state policy behavior if it screws anything up.



Unfortunately, this has NOT fixed my problem.


Just as a wee bit of an editorial comment here....

I've been developing in another engine for aprox 1 1/2 years now. I've always loved the Torque engine, and have just recently returned to these parts thinking that an upcoming project of mine would lend itself perfectly to this engine. However, when I consider the ever-growing number of multi core machines out there, and the possible tech support problems that stem from this sort of thing, I have to ask myself whether it's worth it (at this particular time) to begin this project in Torque at all.

I'm hoping that the good folks at Garage Games will find a workable/viable fix for this, and that it will come soon.

If anyone has any other ideas ... I'd LOVE to hear them, but for now, it seems that I've hit a stone wall :-(

Thanks again for your attention to this.
#26
09/20/2006 (9:09 am)
All I did was change from using the high-resolution timer to the standard timing system, which I believe should work fine for almost all games (I guess you might get into trouble after hours of gameplay).

I think all it takes is changing a #define in the code.
#27
09/20/2006 (2:14 pm)
Quote:It looks like the code is fixing it, but its not being applied right at startup. Any ideas?

Perhaps the baseline measurement was already taken on the other CPU, and the code has to wait until the first CPU "catches up" to that measurement? You can write some DllMain code to set the process affinity globally, as soon as the program loads, probably before whatever timer it is that's having problems gets initialized.

Or you can track down what the timer is getting wrong, and fixing it at the source.
#28
09/24/2006 (8:33 am)
I switched MoM to use the standard timer system this morning. We have had a few reports of this problem on X2 systems. It makes me wonder how many people have tried the demo, had a problem, and not said anything...
#29
09/24/2006 (9:01 am)
This is interesting, I have not had any problems with Torque on my machine, and have ran several of the demos out there.

So far everything is fine, of course I am running XP Pro 32bit, rather than the XP STD or 64bit, not sure if that matters or not.

I have had timming problems with ASUS MB's, especially the AN8 series before, so that is why I went with a ABIT Fatality. Just FYI. Curious if the problem is more related to system setup?



System Specs:

AMD Atholon(tm) 64 X2 Dual Core 4200 2.21 Ghz
2 GB RAM
(2) NVIDIA GeForce 7600 GT (Running SLI)
Abit Fatality MB
#30
09/25/2006 (8:29 am)
My system (the one that is experiencing problems) is XP Multimedia Edition.

Torque runs fine on two other systems (XP Home and XP Professional) I test it on, but those are not dual-core machines.
#31
09/30/2006 (1:12 pm)
I have this problem on an X2 running WinXPx64. Happens in TSE too, goes away if you set the affinity to 1 processor. It's a "problematic" AN8 board though ;)

My gut feeling is it's an AMD thing, as if it was also an Intel one people would be hitting it a lot more often. Or maybe the fruit I ate earlier was bad or something, similar sensation.
#32
10/05/2006 (12:11 pm)
Am I confused, is this thread discussing two different issues here? In one case everythign seems to be running incredibly fast, and in the other, incredibly slow, both issues with dual cores.. which fix is for which problem?
#33
10/05/2006 (12:41 pm)
I think it's the same problem, Jeff - I've actually seen BOTH problems with Torque demos on my machine. It's just a problem with the timer going all haywire and the game having a wildly inaccurate count of how much time has occured between ticks.
#34
10/05/2006 (1:41 pm)
All these fixes and hotfixes are making me dizzy. Here's a link to a page i found that lists a bunch of fix's for dual core's and their advantages/drawbacks www.hardforum.com/showthread.php?t=983781
#35
10/07/2006 (8:37 am)
@Jay just curious i just re-read this thread and it seems the Asus A8n series mainboards have additional quirks, and thats what I'm using, what board are you using?

edit:and what #define did you change to switch timers?
Page«First 1 2 Next»