Could you notice a 40fps game?

Miscellaneous Forums/General Discussion/Could you notice a 40fps game?

Talking about frame rate here. What minimum frame rate do you expect in a 3d game? Is 40fps considered silky smooth? 60fps? 90fps? Some of the new FPS games run at 40fps on a medium powered rig. Is that acceptable? And do you even notice any choppiness at 30-40fps?

I couldn't, and I don't believe the human eye is physically capable of discerning the difference between 40fps, 60fps, and 90fps. The ideal area I would aim for is 40 to 50, which gives some room for really expensive moments to crush your FPS down to 30 or so without too much issue. Or that's how I think.

30+ works for me. As long as it is consistent. When the FPS goes from 30 to 60 and back again it gets noticable.

I agree with dynaman... 30+ steady.

Movies are only what... 24fps?

I couldn't, and I don't believe the human eye is physically capable of discerning the difference between 40fps, 60fps, and 90fps.

I'm pretty sure that without motion blur (and I think sswift will confirm this), you can distinguish much higher frame rates than 30 FPS since the lack of blur makes it possible to notice the individual steps between each frame.

Personally, I can tell the difference between 30 FPS, 60 FPS, and 90 FPS very easily (with no motion blur). But then again I can also tell between different frame rates of TV programs (and that's with natural motion blur, of course), so maybe I'm unusual. I usually prefer 60 - 75 FPS steadily if possible for the most smooth gameplay. 30 FPS is acceptable, but can make your eyes tired if you watch it too long.

It's a misconception that the human eye can't distinguish between higher frame rates.

If it wasn't possible for the human eye to distinguish between 60Hz and 85Hz, how come the CRT monitor I used before moving to LCD had a very noticeable flicker at 60Hz (enough to give you a headache) but none at 85Hz?

A television set displays at 50Hz for PAL and 60Hz for NTSC regardless of fps. Even though movies run at 24 frames per second, when viewed on a television they are still being displayed at 50 or 60Hz. In other words it's displaying the same frame more than once.

I agree you can tell the difference - e.g. on the Amiga, could always tell when a game was scrolling or updating at 25fps rather than 50, or 30 rather than 60, because there is a noticeable seeming `overlap` of previous position with new position which is much less when the framerate is higher. You've only got to look at a tv signal at 25-30Hz and things scroll fast, it becomes more of a blur, whereas higher hz minimizes that. But I'd say 25fps is the absolute minimum for any game.

If 30fps is the absolute minimum, then you're saying that that level of choppiness is acceptable? And do you think it's possible to make a 30fps game seem smooth?

Are you kidding..

Why do all new people like 20 dont reconice that human eye can detect 50 fps.

at 50 fps its silky smoth.

On my CRT TV :)



yes you can use 30 FPS if you interlaced it to 60 fps.

Muhahahaa

30fps are kind of smooth but it's not the same like 50/60 fps. As for 40fps i guess it depends on what you're doing on your screen.

A few game making software use 40fps as default rate, but most of them are used for RPG or Tactics, those game doesn't require precise motion or fast speed.

However 40fps is reasonably smooth for 2D game, for quick action 60fps is very recommended.

to me steady FPS is much more important than "high FPS" ...
its much more noticable if 100FPS drop down to 30FPS just once per few seconds and much more annoying than beeing on 30FPS all the time ... and current gen (pure shader) games don't run on much more even on my higher end rig.

I think it only really matters in 2D, where the trouble with 30 hz is things have to jump two pixels to keep up with a 60 hz sprite moving every pixel. 40hz would look really bad in 2D as it would move 1pixel every frame and 2 every other.

Graphics 640,480,32

While Not KeyHit(KEY_ESCAPE)
	x=x+1
	If x>500 x=0
	
	Cls
	DrawRect x,0,100,100
	DrawRect x&510,200,100,100
	Flip
Wend


something i made before:

http://dev-ch.de/upload/files/Devils%20Child/fps.exe

use arrow keys to toggle frame rate, and watch

I believe there's a difference between the monitor/tv rendering FPS and the computer update/render FPS.

On a normal tv, you won't notice any lagging or choppiness, and that's a show running at 24fps on a 50 Hz/"fps" screen.

Now if a game runs at 30-50 FPS (or rather, closer to 30 than 50), you will infact see lagging and/or choppiness.
I don't know exactly why, but I think it has to do with the game FPS isn't 100% smooth at that current framerate, all the time.. At 60 FPS, the game is smooth as silk..

this is just my personal experience anyway.. :p

on an FTP screen, 30 FPS looks better than 35-40 FPS, because it has to be full, half, quarter..... frame rate of the monitor frequency

I agree with John J. and Skidracer. Probably 40FPS is OK in a 3D game but it would not be so hot in a 2D game, that's why I try to make mine run at 60Hz plus. It's really obvious when a 2D games scrolls or moves stuff at a slower FPS.

This shows the effect of varying FPS rates.

Also, check the flip timer delay when you hold down LMB. This is the time wasted waiting for the next vertical blank interrupt. This can be a good few milliseconds when using Flip True or VWait, precious time that could be spent updating say AI e.t.c


Global delta.tDeltaTime = CreateDeltaTime()



Graphics 800,600,32,2


i=CreateImage(64,64)
SetBuffer ImageBuffer(i)
Color 60,60,60
Rect 0,0,64,64
Color 127,127,127
Rect 0,0,32,32,1 : Rect 32,32,32,32,1
SetBuffer BackBuffer()
Color 255,255,255


s.tSprite = CreateSpriteType(i)






startTime = MilliSecs()
While Not KeyHit(1)

	UpdateSprites()

	If s\x>=800
		timeTaken = (MilliSecs() - startTime)
		startTime = MilliSecs()
		s\x = 0
	End If
	
	Cls
	DrawSprites()


	Text 0,0,"fps: "+delta\currFPS
	Text 0,20,"last trip across screen took "+timeTaken+"ms , (should be approx 8000ms)"
	Text 0,40,"Hold LMB to 'Flip True'. When using Flip True, this is the time 'wasted' by the flip command"
	Text 0,60,"waiting for the next vertical blank: "+lastFlipTimer+"ms"
	Text MouseX()-300,MouseY()+16,"Move mouse left/right to adjust the delay: "+MouseX()/15+"ms"

	
	flipTimer=MilliSecs()
	Flip MouseDown(1)
	lastFlipTimer=MilliSecs() - flipTimer
	
	UpdateDeltaTime(delta)
	
	Delay MouseX()/15
Wend






Type tDeltaTime
	Field deltaTime#
	Field lastTime,frameTime,frames,currFPS
End Type

Type tSprite
	Field image%
	Field x#,y#
	Field vx#
End Type



Function CreateSpriteType.tSprite(img)
	s.tSprite = New tSprite
	s\x = 0 : s\y = 350
	s\image = img

	s\vx = 100 ;100 pixels *per second* (at this speed, time to cross 800 pixels = 8000ms)

	Return s
End Function


Function UpdateSprites()
	Local s.tSprite

	For s = Each tSprite
		s\x = s\x + s\vx * delta\deltaTime ;any value that changes over time should be multiplied by 'deltaTime'
		;s\rot = s\rot + addrot * delta\deltaTime
	Next
End Function


Function DrawSprites()
	Local s.tSprite

	For s = Each tSprite
		DrawImage s\image,s\x,s\y
	Next
	
End Function


Function CreateDeltaTime.tDeltaTime()
	Local d.tDeltaTime = New tDeltaTime

	d\lastTime = MilliSecs()
	d\frameTime = 0
	
	Return d
End Function



Function UpdateDeltaTime(d.tDeltaTime)
	Local timeNow = MilliSecs()

	d\deltaTime = (timeNow - d\lastTime) * .001 ; .001 = (1.0 / 1000ms) = the lowest resolution of Millisecs()
	d\lastTime = timeNow
	
	d\frames = d\frames + 1

	If timeNow - d\frameTime > 999
		d\frameTime = d\lastTime
		d\currFPS = d\frames
		d\frames = 0
	End If
End Function


On a normal tv, you won't notice any lagging or choppiness, and that's a show running at 24fps on a 50 Hz/"fps" screen.
But a normal TV has a ridiculous low resolution compared to even the worst computer monitor you can dig out, so artefacts are not going to be as noticeable.

On regular TVs the technique used is interlacing /line jumping (1-3-5-7 ... and afterwards 2-4-6-8...)
CRTs and TFTs mostly use another technique which prevents the "smoothing" by cheating the viewers eyes laziness (old content still visible for 1/24s (or 1/29s ...depending on pal/ntsc-settings).

Especially TFTs have a big impact here - higher resolution makes a viewer life easy when they have to recognize changes shown to them... the sharper an image, the easier mistakes can be discovered (same like the discussion when high-definition-TVs got cheap and cheaper - you may see the skin-distortions of anchormen and so on).

So still the best FPS you can have is the refresh rate of a users screen ... every refresh gets its own frame within one second. IF the user had a setup with an even frame rate you may divide it by 2 and you could have luck.
If one uses 85Hz on an old CRT and you use 40fps then you have a gap which is filled by only certain frames of your application.
When using old CRTs with refreshing rates over 100Hz then you mostly can cut the fps-rate down to a lower value - mostly not really recognizable.


bye
MB

60 frames per seconds... of nothing for me !

@_@

Quake runs at about 20fps on my phone (yes, I know, it's pointless but it does work!). On the small LCD screen, it looks smooth. When I hook it up to my monitor (another pointless feature of my phone) you can tell it's jerky.

3D games are acceptable at 30fps, unless it's a hardcore action multiplayer shooter (I'm thinking Quake 3). Games like that are best run at the highest possible frame rate for the chosen resolution, on a short-persistence phosphor CRT. At least, that's what hardcore fans tell me with complete heartfelt sincerity.

Having had some experience of that (I used to be big into QuakeWorld), I can attest to the truth of it. The difference between 75fps 1600x1200 and 120fps 800x600 meant that the lower res was a better trade-off against higher refresh.

These days, of course, most everyone has a 60fps LCD monitor. Some manage 75fps, but they generally hit their ghosting barrier before they get that far.

OLED's will pave the way for 100/120Hz refresh, but we're about 5 years away from affordable 24" OLEDs.

i think a stable frame rate is much more acceptable than one that jumps up and down as the scene gets more busy. 30 frames plus is fine. 60 fps is ideal but i find games always work best when it refreshs at the same rate as the monitor or half the rate with tweening.

This from memory from some research that was done in a lot of detail quite a while ago but if I remember it correctly there are three things that influence people's perception of different frame rates.

The frame rate
The amount of movement or change from one scene to the next.
The viewer

The more change in the scene the higher the frame rate you need to accomodate it.

Anyway with a "typical" amount of change in each frame they found.

Different people can percieve differnt changes in framerate and it is possible to tell the difference between a stable 60 FPS and 75FPS but not everyone can. Above 75 FPS it was found that people's choices where the same as the random score. It's important to note that this work was done on CRT's which have a different refresh rate a where "flicker" is more noticeable.

Darkheart

The Cinema uses 24FPS

The Cinema uses 24FPS

And if your game is only going to be played on monitors which refresh the whole screen instantly ( as projectors do ) and will only be played in a dark room with very bright lights ( creating an "afterimage" effect ) and most importantly if you're calculating real-time motion blur ( movies are made with motion blur for precisely this reason ) then this would be a pertinent piece of information.

As for the original topic, nothing less than 60 FPS is silky smooth as far as I'm concerned, and I'd up that to 75 or 85 if I were using a CRT monitor.

And if your game is only going to be played on monitors which refresh the whole screen instantly ( as projectors do ) and will only be played in a dark room with very bright lights ( creating an "afterimage" effect ) and most importantly if you're calculating real-time motion blur ( movies are made with motion blur for precisely this reason ) then this would be a pertinent piece of information.
Ok then, UK TV is 25FPS.
I think as long as its "Steady" then 30FPS is enough.

Ok then, UK TV is 25FPS.

Yes it is, but this is equally irrelevant to the question. I expect in such a long thread all this has already been said, but still. While there are 25 frames, the refresh is 50 FPS. The phosphor pitch on a standard TV is much bigger than the dot pitch on the cheapest of monitor. TV's do not operate with the same level of brightness as a monitor. And you still have motion blur. Oranges and apples, I'm afraid.

I think as long as its "Steady" then 30FPS is enough.


And if your monitor refresh is 75HZ, that's not even possible.

Yes, my eyes are very sensitive to framerates. I like to see 60fps if at all possible, but anything above 30 is ok.

@Gabriel,

I agree totaly with what you said, but I still maintain that "Steady" is better than mostly fast.

Wasnt Carrier Command 12.5FPS?

(And, as unsaid, it depends what genre it is)

The more "screen movement" the lower you can run the frame rate and it will still look ok. Hence, why full screen 3D apps are ok when they run at 20 or 30fps, especially with motion blur added. With 2D games, again the larger the sprite(s) the lower you can run the frame rate. Look at the Metal Slug games, they run at 30fps and they play fine. The smaller the sprites, the faster the frame rate needs to be otherwise the eyes will notice the coarse movement.

Low framerates (below 50) make my head and eyes hurt, and I just don't accept a game as playable at less than 50. Maybe perhaps if it was a slow paced game though - like a puzzler or tactical affair.