Lower system requirements?
by Zodiack_Killer · in Torque Game Engine · 02/24/2004 (11:22 pm) · 14 replies
Hey everyone,
I'm making my first game for a school project I have to do and I'm running into a few issues with the system requirements...essentially...the computers at school suck. Does anyone know of a way I could lower the system requirements to below a 32 mb graphics card, or perhaps could one of the previous releases of the engine not require so much? seems odd that an engine released so long ago would suck up so much resources. Anyways, please help if you can.
just in case I'm totally wrong about what is preventing me from running the game at school...when I attempt to launch the exe I get a "display device not found" error. the computers surpass both the directx and opengl specifications. any ideas on what besides the graphics cards (most of them only run 8 mb cards) could be causing the issue? Thanks for your help.
I'm making my first game for a school project I have to do and I'm running into a few issues with the system requirements...essentially...the computers at school suck. Does anyone know of a way I could lower the system requirements to below a 32 mb graphics card, or perhaps could one of the previous releases of the engine not require so much? seems odd that an engine released so long ago would suck up so much resources. Anyways, please help if you can.
just in case I'm totally wrong about what is preventing me from running the game at school...when I attempt to launch the exe I get a "display device not found" error. the computers surpass both the directx and opengl specifications. any ideas on what besides the graphics cards (most of them only run 8 mb cards) could be causing the issue? Thanks for your help.
#2
02/25/2004 (4:46 pm)
I'm possibly responding pre-maturely here, but I just thought I'd give you an update. I haven't had time to make the changes to the actual engine like you suggested, but I have tried cahnging the screen resolution and color depth. When I ran the program under the new conditions it launched, but just does nothing once it begins to get going. essentially, I get stuck in the same place but without an error message this time. I know it's progressing though because it asks for permission to act as a server now (I've tried running it without the firewall running aswell). any ideas other than what else you suggested. I'll probably try that out a little later tonight and respond again. thanks for your help.
#3
02/25/2004 (6:13 pm)
Just because a machine has a newer version of directx or opengl DRIVERS on it does not mean it will actually run any software that the hardware does not support. I would hazard a guess that an 8MB card would be too old to support all the features required in hardware and is the cause of the failure.
#4
02/25/2004 (6:58 pm)
Unfortunately, that's what I suspect as well, but we're not saying that just yet because it's either figure out a way to get it to work, or start over.
#5
The instruction at "0x006a0f30" referenced memory at "0x000000014". the memory could not be "read".
Interestingly enough, this is the same error that I get when I try to run realmwars on the computers. apparently they've tried the same method. any ideas on how to fix it?
02/25/2004 (7:15 pm)
I just tried editing the engine like you said and I got an error when I ran the game. Here it is:The instruction at "0x006a0f30" referenced memory at "0x000000014". the memory could not be "read".
Interestingly enough, this is the same error that I get when I try to run realmwars on the computers. apparently they've tried the same method. any ideas on how to fix it?
#6
02/25/2004 (7:39 pm)
Is this the same instruction address? I suggest running in debug mode to find out where in the program things are actually breaking...
#7
bool isFullScreenOnly() {return( mFullScreenOnly);}
but on my computer that came out to be address 0x006a0f10, NOT 0x006a0f30 as the error message states. I apolagize for this not being much help, but I'm very new to this and haven't worked out how to use everything yet. In case it may help...here's the exact error message I recieve, with accurate addresses:
the instruction at "0x006a0f30" referenced memory at "0x00000014". The memory could not be "read".
Anyone have any ideas? if anyone needs anymore info just let me know...prefferably with some instructions on how the information should be aquired.
02/25/2004 (8:22 pm)
It is the same address as the realmwars error (though the address I posted I just entered however many zero's looked right, so it isn't accurate). When I debugged the only thing I could find was in platformvideo.h at this line:bool isFullScreenOnly() {return( mFullScreenOnly);}
but on my computer that came out to be address 0x006a0f10, NOT 0x006a0f30 as the error message states. I apolagize for this not being much help, but I'm very new to this and haven't worked out how to use everything yet. In case it may help...here's the exact error message I recieve, with accurate addresses:
the instruction at "0x006a0f30" referenced memory at "0x00000014". The memory could not be "read".
Anyone have any ideas? if anyone needs anymore info just let me know...prefferably with some instructions on how the information should be aquired.
#8
02/25/2004 (8:32 pm)
I just tried running the realmwars executable again and this time I got the same error message with a different address specified. this time the address was all zeros (0x00000000) and so was the referenced memory. Thought this might be helpful in some way. I apolagize for being such a nag in this, but I honestly have no idea where to begin to look.
#9
If it runs, then you can start to figure out what is causing the error.
-Jeff Tunnell GG
02/25/2004 (9:04 pm)
Try running the Marble Blast demo. Since it does not use terrains, it has a lot lower requirements than some of the engine demos. If it runs, then you can start to figure out what is causing the error.
-Jeff Tunnell GG
#10
02/26/2004 (6:11 pm)
I just tried running the marble blast and it ran when I lowered the screen res to 640.
#11
I think my next step is going to be downloading an older version of torque and testing the demo for that (the demo with the HEAD version runs the same way as my game). If it works then I'll know it's an engine issue and may simply consider using the older version.
02/26/2004 (8:54 pm)
It also works when I run thinktanks. I thought maybe it had something to do with network play, but that gets rid of that idea. That game also doesn't seem all that much less resources intensive than mine, which leads me to believe that it's more an issue of scripting. I went back and reviewed the changes made in the past few releases of the engine, but found nothing that I think would effect game startup. Anyone else know of something that could be causing the problem? The game still starts up, requests permission to access the internet, opens a new window, and then hangs (but doesn't freeze). Any input is greatly appreciated.I think my next step is going to be downloading an older version of torque and testing the demo for that (the demo with the HEAD version runs the same way as my game). If it works then I'll know it's an engine issue and may simply consider using the older version.
#12
02/26/2004 (9:10 pm)
Run it in debug mode and see where it's dying!
#13
02/26/2004 (10:12 pm)
I got it to work. for some reason when I set the bool isfullscreen() to return 0 instead of the variable it worked. not entirely sure why though, so I'll be looking into exactly what that does probably tomorrow, just to make sure that this isn't a conditional fix that wont' work on all computers. Thanks for all of your help. I apolagize for the unprofessional manner in which this was approached. I'm still learning and don't really understand all of this yet.
#14
02/26/2004 (11:04 pm)
Well, so long as you learn and get your problem solved... :)
Torque Owner Dave Bacher
There are three routines that I found with grep -Ry "device not found" * from the engine directory. These are all the routines that can give tat message (or should be)
These are:
isDeviceFullscreenOnly
getResolutionList
setDevice
All 3 routines return the message if they can't find a device in the list. This occurs if the OpenGL driver fails tests during startup. Looking at winOGLvideo.cc, it means something is going wrong in OpenGLDevice::Create. Unfortunately, there isn't much logging in there to say why it's not finding OpenGL.
OpenGL MUST be found for Torque to run, even if you don't intend to use the OpenGL driver (generally it is better to use the OpenGL driver, because the Direct3D support is just a Quake GL driver that emulates OpenGL on top of Direct3D):
In %WINDIR%\SYSTEM32: OpenGL32.DLL, GLU32.DLL
For Direct3D, in the Torque folder you need to have the following DLLs:
(Debug Mode): OpenGL2D3D_DEBUG.dll, GLU2D3D_DEBUG.DLL
(Rel. Mode): OpenGL2D3D.dll, GLU2D3D.DLL
In winD3Dvideo.cc, find the following code:
// If we can't do OpenGL, don't attempt D3D either (probably Voodoo2 only)
if (Video::getDevice("OpenGL") == NULL)
return NULL;
Change it to read:
#if 0
// *** There isn't a GLide driver, so we probably really do want to try Direct3D ***
// If we can't do OpenGL, don't attempt D3D either (probably Voodoo2 only)
if (Video::getDevice("OpenGL") == NULL)
return NULL;
#endif
Now rebuild Torque. This change tests the Direct3D driver regardless of if OpenGL succeeded or not. This is required for 3Dfx cards, where OpenGL isn't supported -- it doesn't appear that there is any code for GLide anymore.
After you make this change, Torque "should" run.
It is also possible under NT, 2000 and XP to secure OpenGL32.dll and GLU32.dll so that normal user accounts can't load them. What that means is Torque tries to load OpenGL32, and fails. Direct3D can be harder to block.
You should compile Torque in console mode, and run it from a command or cmd prompt. copy the output to this thread if it still doesn't work with this change.