Regresar   Cerolag > Universo Cerolag > Enemy Territory: Quake Wars > Soporte

Soporte Todo problema técnico relacionado al juego.

Old 21 Jun 2007, 12:43   #1
Fixit
ETQW/CoD4/MoHA Admin
 
Avatar de Fixit
 
Registrado: Jan 2007
Location: Freiburg
Posts: 865
Predeterminado Unlock FPS information and tuning tips

by FeaRog - Programmer Splash Damage

I've noticed a few questions about the FPS locking, so rather than respond in individual threads to queries I thought I'd create a new thread to avoid confusing things.

I hope this guide & explanation helps you all out some. Please remember that it isn't final yet, this is a beta and things can and will change!


BACKGROUND INFO

The most important thing to maintaining the perception of as game being smooth is a constant, consistently spaced framerate. I'm sure many of you have played console games - you'll have noticed that a game feels dead smooth until you get "hitches", happening in intense periods of activity, that make the game no longer feel smooth. These happen when the game can't achieve its target framerate (eg 30fps on NTSC) and drops a frame, momentarily going at 15fps. It usually feels better for a game to run at a constant 30fps than at 60fps but regularly dropping to 30fps.

The game (and physics) runs at 30fps, so the rendering also runs at 30fps unless it is unlocked from the game framerate.
There is a cvar - com_unlockFPS - which enables you to unlock the game and the renderer to some extent. This allows the renderer to draw more frames than just the 30fps.


CVARS

There are several cvars that can be modified to adjust how the unlocking behaves. Note that none of these are a universal solution - it is a heavily subjective thing, and depends a lot upon your hardware and software. Warning: This is a fairly technical explanation. I've tried to keep it pretty understandable.

com_unlockFPS - this is the master cvar. If you do not set this to '1' then it will never attempt to exceed 30fps.

com_unlock_timingMethod - this selects one of three timing methods for unlocked frames:

0: This will try rendering another frame whenever it estimates it has enough time left for rendering before the next game frame is done. This will give you the highest possible framerate, however it can lead to frame "bunching". To many (including myself) this feels really jerky - 200fps in the best case is no good if its regularly dropping to 60fps.

1: This is similar to method 0, but instead of squeezing in rendering whenever it can it tries to space them at even multiples of 30fps. This is a slight improvement over method zero in terms of smoothness, but sacrifices some FPS.

2: This is the same as method 1, but instead of estimating if it can fit another rendering frame using only the render time estimate it estimates using the total time of game + renderer. Hypothetical explanation: Lets say the time between two game frames was meant to be 10ms. Game + render time takes 5ms, leaving 5ms left. Rendering only took 2.5ms. Method zero would then render two more graphical frames before the next game frame - in effect feeling like the game should be running at 400fps but dropping a frame every 10ms, giving it a jerky feel. With this method it would only draw a single extra frame so it wouldn't feel sporadic. You'd only get 200ms however.

com_unlock_maxFPS - this only does anything if com_unlock_timingMethod is set to 1 or 2. This limits the maximum fps your PC will try to achieve. This will be rounded to the next lowest multiple of 30 - eg if you set this to 59 it will in effect be treating the maximum as 30. This helps to control the fluctuation sometimes prevalent.


There are a couple of other tuning cvars but those shouldn't really need much tweaking. com_unlock_safetyMargin adjusts how conservative the estimation is, and com_unlock_avgFrames is there to help ignore spikes & troughs in the estimation. The defaults of these should be fine for most people.


TUNING

The defaults are to unlock the FPS, with a maxFPS of 60 and timing method 2. This basically means that if your system is fast enough to exceed 60fps all the time then it will do a constant 60fps. If your system isn't fast enough to exceed 60fps at all times then it will fluctuate between 30 and 60fps. Lower end systems may well be unable to exceed 30fps most of the time - for these people you are probably best off disabling unlockFPS and satisfying yourself with a smooth 30fps. You can try to increase your FPS by lowering the graphics resolution & quality settings. A lot of middle-of-the-range systems can probably achieve a pretty regular 60fps with some tweaking here.
If you have a really good system you can probably do better than 60fps - in that case try increasing your maxFPS. I find that on my dev system here (2.4GHz Core 2 Duo, 7800GT, 2gig ram) I can do 90fps pretty constantly, so I have mine set to 90. You'll need to experiment a bit to find a level of this that doesn't fluctuate too much for your liking.


If the only thing you care about is the absolute maximum FPS then try setting com_unlock_timingMethod to zero! This is highly unlikely to feel smooth, but again it is totally subjective. Whatever floats your boat, hey
 




V-SYNC

If you have your monitor's refresh rate set to 60Hz and have v-sync enabled then you might as well set com_unlock_timingMethod to zero. This is because the new frame won't display until the evenly spaced 60fps point anyway - this is what timing methods 1 & 2 try to achieve. It will also limit you to a maximum of 60fps. Having V-sync enabled with refresh rate set to anything other than a multiple of 30fps will probably feel jerky.

USAGE

These cvars ("console variables") are adjusted using the console. If you are unfamiliar working with the Quake-style console then it is a good idea to read a guide first. Here has a good description of how to make an autoexec config to make sure these settings stick around. CTRL+ALT+~ opens the console. To set the cvars so that they stick around for next time you start the game enter something like this at the console (or insert it into your config):

seta com_unlockFPS 1
seta com_unlock_timingMethod 2
seta com_unlock_maxFPS 60

The "seta" command "set"s the cvar and then "a"rchives it. Use this seta command to set each of the cvars.


MISC

I highly recommend that you also enter the following so that you can see what impact your settings are having:
seta com_showFPS 1

com_unlockFPS does not have any affect when you are not connected to a server. So don't worry if you're locked at 30 at the menu - thats normal. Connect to a server and test it there.

Note that there are a few bugs with it in the public beta build, meaning that sometimes in timing method 2 your framerate will drop to 30 and never be able to recover, and a few other things.

A generalization of the timing methods:
0 - max FPS with no regard to the "smoothness" of the FPS
1 - lower FPS than method zero but slightly more smooth
2 - lowest FPS of the three methods, but the most smooth

Method 2 is much more CPU speed dependant than the other two - if you have a fast CPU then method 2 will likely not cut your FPS a lot but will result in a much smoother framerate. Otherwise methods zero and one are more likely to yield a higher framerate.
__________________
Fixit
-GVF Splash Damage-
Close Beta Tester FFoW Kaos Studios


Editado por Fixit en 29 Jun 2007 a las 13:03.
Fixit is offline   Citar y responder
Old 22 Jun 2007, 19:00   #2
Lagarto
Permanently Banned
 
Avatar de Lagarto
 
Registrado: Jun 2005
Location: New York, Posts afanados: 8923
Posts: 5.665
Predeterminado

Muy buena info, aunque inservible para mi, hasta que no compre la placa nueva, ya que lo estoy jugando con una 6100 onboard y me gusta ver fijo el numero 30
Lagarto is offline   Citar y responder
Old 25 Jun 2007, 23:01   #3
Dr. Ross
Sulfanilamide Inside
 
Avatar de Dr. Ross
 
Registrado: Nov 2005
Location: Ciudad Autónoma de Buenos Aires
Posts: 263
Predeterminado

Una aclaración con respecto al comando com_unlock_timingMethod. Por lo que vi en mi computadora, si lo dejo con valor 2 u 1 nunca me tira mas de 30 FPS, pero con valor 0 si. Creo que es debido a que solo en determinados lugares llego a 60-65 FPS, y como el calculo lo hace en múltiplos de 30, directamente me los deja en 30.
__________________


Dr. Ross is offline   Citar y responder
Old 26 Jun 2007, 01:37   #4
arielus
O RLY?
 
Avatar de arielus
 
Registrado: Jul 2005
Location: buenos aires
Posts: 4.160
Predeterminado

todo muy lindo
pero...
donde pongo comando, edito archivo o lo qeu sea?
__________________
Quote:
Originalmente publicado por pollo_diablo
cerrá los ojos y cruzá avenidas
cojé y/o dejate coger sin forros.
hace parkour extremo en bata
salto en largo desde balcones
ruleta rusa con cinco balas
se extrañaba!
arielus is offline   Citar y responder
Old 26 Jun 2007, 01:46   #5
Fixit
ETQW/CoD4/MoHA Admin
 
Avatar de Fixit
 
Registrado: Jan 2007
Location: Freiburg
Posts: 865
Predeterminado

Quote:
Originalmente publicado por arielus
todo muy lindo
pero...
donde pongo comando, edito archivo o lo qeu sea?

http://foros.cerolag.com/f-soporte-2...fps-33418.html
__________________
Fixit
-GVF Splash Damage-
Close Beta Tester FFoW Kaos Studios

Fixit is offline   Citar y responder
Old 26 Jun 2007, 18:12   #6
falken
----------------
 
Avatar de falken
 
Registrado: Sep 2006
Location: en casita
Posts: 1.590
Predeterminado

o sea que si pongo com_unlock_maxFPS 1 ,se limita a 30 fps.
y si pongo com_unlock_maxFPS 2 , se iria a 59 fps .

corrigame si me equivoco , soy medio durazno con el inglis...

no puedo poner un limite fijo de FPS (o sea que pondria 40 )
falken is offline   Citar y responder
Old 26 Jun 2007, 19:00   #7
Fixit
ETQW/CoD4/MoHA Admin
 
Avatar de Fixit
 
Registrado: Jan 2007
Location: Freiburg
Posts: 865
Predeterminado

Quote:
Originalmente publicado por falken
o sea que si pongo com_unlock_maxFPS 1 ,se limita a 30 fps.
y si pongo com_unlock_maxFPS 2 , se iria a 59 fps .

corrigame si me equivoco , soy medio durazno con el inglis...

no puedo poner un limite fijo de FPS (o sea que pondria 40 )

el primer comando esta bien, el segundo seria asi:

com_unlock_maxFPS 60
__________________
Fixit
-GVF Splash Damage-
Close Beta Tester FFoW Kaos Studios

Fixit is offline   Citar y responder
Old 26 Jun 2007, 22:27   #8
Lagarto
Permanently Banned
 
Avatar de Lagarto
 
Registrado: Jun 2005
Location: New York, Posts afanados: 8923
Posts: 5.665
Predeterminado

Quote:
Originalmente publicado por falken
com_unlock_maxFPS 2
jajajja.. vas a jugar con 2fps clavados
Lagarto is offline   Citar y responder
Old 27 Jun 2007, 00:15   #9
Dr. Ross
Sulfanilamide Inside
 
Avatar de Dr. Ross
 
Registrado: Nov 2005
Location: Ciudad Autónoma de Buenos Aires
Posts: 263
Predeterminado

Quote:
Originalmente publicado por falken
o sea que si pongo com_unlock_maxFPS 1 ,se limita a 30 fps.
y si pongo com_unlock_maxFPS 2 , se iria a 59 fps .

corrigame si me equivoco , soy medio durazno con el inglis...

No no.. con el maxFPS le especificás cuantos FPS máximos queres que tenga el juego (de ahí a que te llegue a 60 es otra historia).
__________________


Dr. Ross is offline   Citar y responder
Old 27 Jun 2007, 00:56   #10
Lagarto
Permanently Banned
 
Avatar de Lagarto
 
Registrado: Jun 2005
Location: New York, Posts afanados: 8923
Posts: 5.665
Predeterminado

Estos comandos sirven para mantener una estabilidad en los fps, por ej. si tenes picos de 80 y minimos de 40, lo seteas como maximo 50fps y mantenes una estabilidad de 40/50.

La estabilidad en los fps es muy importante para juegos de FPS.
Lagarto is offline   Citar y responder
Old 28 Jun 2007, 18:12   #11
falken
----------------
 
Avatar de falken
 
Registrado: Sep 2006
Location: en casita
Posts: 1.590
Predeterminado

hay algo que esta mal si pongo ese comando com_unlock_maxFPS 40
no me lo reconoce.

¿es asi? ¿o como es?
falken is offline   Citar y responder
Old 28 Jun 2007, 22:31   #12
Fixit
ETQW/CoD4/MoHA Admin
 
Avatar de Fixit
 
Registrado: Jan 2007
Location: Freiburg
Posts: 865
Predeterminado

Quote:
Originalmente publicado por falken
hay algo que esta mal si pongo ese comando com_unlock_maxFPS 40 no me lo reconoce.
¿es asi? ¿o como es?

Aca está mas claro: fijate donde dice USAGE, está mas claro

http://qw.cerolag.com/index.php?opti...por+su+voto%21

http://qw.cerolag.com/index.php?opti...por+su+voto%21


Este seria lo básico, en el otro olvide aclarar el timing :

seta com_unlockFPS 1
seta com_unlock_timing_Method 1
seta com_unlock_maxFPS 60


Un buen tip, es crear un archivo "autoexec.cfg" con las sgtes lineas:

showconsole 1
com_unlockfps 1
com_lockfps 60
com_unlock_timingmethod 0
r_displayRefresh 100 (if you have 100 Hz on your screen)

y colocarlo en la sgte direccion:
C:\Documents and Settings\your name\My Documents\Enemy Territory Quake Wars Public Beta\sdnet\your name

Esto tambien esta explicado en los vinculos de los tutoriales de arriba.
__________________
Fixit
-GVF Splash Damage-
Close Beta Tester FFoW Kaos Studios

Fixit is offline   Citar y responder
Responder


Herramientas Buscar en esta discusión
Buscar en esta discusión:

Búsqueda avanzada

Reglas del foro
not puedes iniciar una discusión
not puedes responder a una discusión
not puedes agregar archivos adjuntos
not puedes editar tus posts

El código vB está activado
Emotíconos está activado
El código [IMG] está activado
El código HTML está desactivado
Ir a


Todas las horas son GMT -2. La hora es 20:59.

 
Usando: vBulletin Version 3.5.8
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Copyright © 2007 Cerolag SRL
vRewrite 1.5 beta SEOed URLs completed by Tech Help Forum and Chalo Na.