So, the only reason I can see a game benefiting from 60 FPS is if it is pixel movement and has combat.
Any other thoughts on this topic?
1
2
ID:1078395
Dec 7 2012, 2:03 pm
|
|
I don't know what the specifics are but, BYOND puts most of the responsibility on the server, so you need to be efficient about things if you want a fast game online
|
Well generally when you're playing a game that requires your attention. (Like a platformer, FPS, etc) you would want 60 FPS so your eye has the best capability of perceiving what's happening and giving you enough time to react.
If the 60 FPS is being processed through the server instead of the user's machine that is a huge problem.... |
Well, your eyes only really managed to distinguish at 24, hence most transmitted TV has an FPS of 27 (and a bit).
It's also worth noting it's not that the client renders at that frame-rate, DirectX on the client draws at the capability of the client machine. It's that your increment for being able to send out updates from server to the client is at world.fps, and frame delays in animations in icon files are played according to the server's world.fps value. So BYOND is capable of performing an animation frame change every 33 ms comfortably, 30 FPS or so. As your eye can only really distinguish at 24 FPS, any more is just a waste of your artwork. |
Ah, makes sense. I was only looking at it from a flow standpoint. I was testing pixel movement and I realized that the game was more fluid with 60 FPS, granted the state wasn't animated, which makes more sense now that you bring that up Stephen001.
|
In response to Stephen001
|
|
Stephen001 wrote:
As your eye can only really distinguish at 24 FPS, any more is just a waste of your artwork. The difference between TV at 24fps and video games, is that the TV broadcast has motion blur (due to the nature of film) whereas most video games (some have (bad)motion blur lately) are pixel perfect. As you go into higher framerates, your eye is processing multiple frames at once which auto-magically replicates the motion blur you see in film. |
BYOND doesn't come with any vsync options, so either way you're probably going to be dealing with screen tearing. I'd say 30fps gets you the most bang for your buck in terms of visual quality vs performance costs.
|
In response to Xyphon101
|
|
Xyphon101 wrote:
60 for a BYOND game? That's a bit silly. It shouldn't be silly. |
The Monster Atlas wrote:
So, the only reason I can see a game benefiting from 60 FPS is if it is pixel movement and has combat. I have done tons and tons of testing of this, using remote servers and people in other countries. The best number I came up with was 40 FPS which is a cool even 0.2 tick_lag |
In response to FIREking
|
|
FIREking wrote:
Xyphon101 wrote: It isn't silly. The NES ran at 60 FPS. A lot of modern games, 2D or 3D, go with 60 fps. BYOND can handle it just fine, too. If it's online, I don't recommend going above 30 fps. 20 FPS is going to run a lot faster, but less responsive. Regardless, I've made very fast-paced action games at 20 FPS run very smoothly. 25 FPS is kind of an inbetween point and can also run very well. So, I suggest for an online game on BYOND that you use anything between 20-30 FPS. If it's not online, go nuts. |
BYOND won't let you set FPS at anything over 100. I guess theoretically setting the tick_lag to around 0.083 will get you the same results as 120 fps.
|
In real games networking and physics run at 20 FPS (differs from game to game but 20 is fine), while graphics run as fast as possible. It's just completely different from BYOND's architecture.
|
In response to Zaoshi
|
|
Zaoshi wrote:
In real games networking and physics run at 20 FPS (differs from game to game but 20 is fine), while graphics run as fast as possible. It's just completely different from BYOND's architecture. Exactly what do you take '20 FPS networking' and '20 FPS physics' to actually mean? Your post makes very little sense. |
FPS wasn't exactly best term...
Depending on a game, players position gets reported to server 20 times per second. For example in Counter Strike it can be configured, some servers demand very high update rate (100 or so), others want keyboard/mouse input, not just position (Guild Wars 2). Similar with physics, it runs 20 times per second, fixing some problems, but brings own problems. The remaining time is used up for rendering. In pseudocode loop looks like: while(IsItTimeToUpdate()) Edit 1: Which basically means input and physics are few dozen milliseconds behind real time, with tick rate of 20 it lags up to 50 ms. Edit 2: It's actually very noticeable in Assassin's Creed 3, if you hold W for like 0.1 second and release you get teleported back or forward, as if it's network lag, yet it's a singleplayer game. |
I think that 30 is kind of a wierd number. sleep(10) is one second and 30 frames, so sleep(1) is 3 frames, but then you can't divide that up and then its all thrown off if you want to cut up a tenth of a second into 2 or 3 parts, especially for action games thats a problem.
I'd like something more divisible, like 40. |
1
2
For single player though, I don't see anything wrong with it :)