Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

AppGameKit Classic Chat / R and D at 30 fps . something i've learned.

Author
Message
haliop
User Banned
Posted: 15th Dec 2013 08:06 Edited at: 15th Dec 2013 08:24
Ok so maybe a lot of ppl know it , the mobile devices limitations.

ive started working about a month ago on a simple yet very fun and very addicting project and i built it using only 2D stuff (sprites etc..) it worked great on 60 fps but then i decided to add some more background stuff more sprites clouds etc... and then it went below 30 fps which was pretty much unplayable.

i was very concerned about it not reaching the 60 fps so much i just left it for a few days not working on it and was kinda very sad that AppGameKit might have some issues about speed , that was very bad for the project.

then my lil bro came one day to see what im working on and he immediately said "man turn it 3d" then ive explained him about the limitations of mobile devices so he said.. "but other games works great with 3d so maybe AppGameKit is the problem" so then i explained about AppGameKit v2 and Render To Target that soon will be released that will just make all of us developers life much better... but still he wasn't convinced and told me to drop AGK...

so i turned it to 3d and yeah it was a disaster sometimes its 30 sometimes its 45 fps just unplayable..

then i realized why not stick to 30 fps and just speed everything by 2, so alpha menus turning on and off when from +1 alpha color to +2 alpha (in a loop ) the start up screen appearing was +3 turned it into +6

so lets say you have a car driving and on 60 fps it moves + 1 on the z value (meaning forward) but when it goes down to 30 fps it moves slowly , so the idea is to keep a locked frame rate using SetSyncRate(31,1) and move the car +2 on the z value, you get the same result only that now you can add more stuff to your car project like foliage and stuff ..

in the end i realized (today) that 30 FPS is not that bad if you can consider powering everything * 2 , you get the same results on a half of the FPS count.

if anyone knew it good , i discovered it finally only today
if you didn't know about it , try it , most devices are still a bit laggy when it comes to a decent good project with a lot of stuff in it.

30 FPS rocks.
if anyone want to share some performance tweeks in 3D you are more then welcome.

haliop
User Banned
Posted: 15th Dec 2013 08:12
btw
Why does render to target helps us developers?

Answer:

you can create a huge world with alot of stuff in it
then render to target everything that is beyond 1000 meters from you
at that point you see the same only that it is fake.

so lets say you have a city a huge one
this city contains alot of huge buildings and stores and houses
you take a picture of the far (render to target) and place it on a 3d Plane .. you see everything the same just not wasting so much on 3D buildings etc... its the same only fake.

so yeah i CANNOT WAIT FOR AppGameKit 2

xCept
21
Years of Service
User Offline
Joined: 15th Dec 2002
Location:
Posted: 15th Dec 2013 08:56 Edited at: 15th Dec 2013 08:59
You really should consider timer-based movement instead of inputting hard values like that. By doing so, you could keep the framerate at 60 (or even uncapped at 0) and everything will move at the same speed regardless of framerate. PCs would be able to run the app at hundreds of frames per second, while mobile devices could vary from 15 FPS to 60 FPS and still be perfectly playable with no difference in gameplay except less smooth visually.

AGK makes this very easy thanks to the GetFrameTime() command. Simply multiply your base value by the value returned with GetFrameTime() each frame and the movement speed of objects will be consistent at 5 FPS or 5000 FPS (this can get somewhat more complex with physics objects, however). If you have many values you want to remain consistent in a loop, it's best to assign the value of GetFrameTime() to a variable at the start of each loop and then call the variable instead of the function for performance optimization.

(As an aside, 30FPS for games is generally fine and what most PS3 and Xbox games use... But if the hardware can support smoother framerates I'd still prefer that apps accommodate it for smoother appearance).
haliop
User Banned
Posted: 15th Dec 2013 09:32
so... hmm

MoveCarZ(1*GetFrameTime()) should work?

haliop
User Banned
Posted: 15th Dec 2013 09:41
works wierd.. i'll keep it to 30 fps till ill understand how to work with GetFrameTime() cause its kinda messes up everything

The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 15th Dec 2013 10:31
Like xCept says, using timer based movement is a lot better to fix the issue, the game can run as smoot or slow as possible but the gameplay will still be the same. Im not sure how well getFrameTime() works for it. I usualy use this code


Using the 60*frameTime makes speedMod 1 when you have 60FPS and 0.5 when you have 30 ect. That allows you to add it without having to find new values for everything.

Say ONE stupid thing and it ends up as a forum signature forever. - Neuro Fuzzy
Van B
Moderator
21
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 15th Dec 2013 13:05
Not only will 30fps ensure that it runs on lower powered devices, it will also improve battery life, especially on iOS devices.

30fps is a good frame rate for a mobile device, people will rather have the battery life than a slightly smoother experience.

I am the one who knocks...
TDavid
11
Years of Service
User Offline
Joined: 7th Feb 2013
Location:
Posted: 15th Dec 2013 13:20 Edited at: 15th Dec 2013 13:22
The brain of average Joe can register 24 frames per second. Like every biological thing, it can be a bit more and it can be a bit less depending on the person, but I don't think many, if any people can register more than 30 fps. So 30 fps it is definetly a safe minimal threshold.

If your game was coded to run at 60 fps and can only achieve 56 fps on a device, it will look way uglier than if it was coded to run at 30 fps and actually runs at 30 fps.

Geeks saying they can see the difference between a 30 fps and 60 fps with games designed to run at these speeds are just fooled by the placebo effect of the technological hype. 30 fps is a biological limit. There's no more to it.

I use an internal timer to check from time to time at which maximum frequency my game can run, so that I know if I can put more effects in it. However I ultimately target 30 fps because any less could be noticed by superhumans, and any more would be a waste of cpu cycles and battery.
Digital Awakening
AGK Developer
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Sweden
Posted: 15th Dec 2013 14:04 Edited at: 15th Dec 2013 14:05
TDavid:
My game is horrible in 30 FPS. It becomes very choppy. At 50-60 FPS it looks smooth to me. I have it capped to 60 and all is timer based. That 24 FPS thing is absolute nonsense. How you experience framerate depends on the game and on the person. If you can't detect the difference between 30 and 60 FPS then good for you. Serious FPS (first person shooter) gamers prefer 120 FPS over 60 FPS. While I haven't tried it, they say it's more a feel than a visual thing.

SoftMotion3D
AGK Developer
18
Years of Service
User Offline
Joined: 24th Aug 2005
Location: Calgary,Alberta
Posted: 15th Dec 2013 16:33 Edited at: 15th Dec 2013 16:52
Quote: "GetFrameTime() "


didn't know about that command...lol!

but halip your correct for an easy way to code it. Just cap it at 30fps. My new game im working on is for ouya and I have realized I can draw allot more....code allot more and it hangs in just fine at 30fps without needing to code frame based movement. (Also known as 3d tweening ).

3d tweening is generally allot of extra code. as it needs to take into account speed of movement as well as speed of animation.

I believe agk v2 is going to have 3d tweening built into the game engine. So for your current game project I would just cap it 30 to make the code allot easier on you. (athough I also agree that its not the proper way to do it) but that's the easiest way to do it.

to get rid of the graphic tearing....

use vsync(1)

and then have a timer based delay in the loop to kick it back to 30fps.

this timer should start count right after your sync command to keep timing perfect and should be checked to see if its time to sync just before it syncs.

eg.

-grab timer here
-do

-is it time to sync
-yup sync
-grab timer here
-loop

I believe traditional tvs only synced at 24fps....so don't feel bad coding for 30.... 30 is just fine!

edit: @TDavid I think you are correct to some degree. I believe the high fps look can be achieved by ones code to look exactly the same at 30fps. (at least really close to it) and like I said about traditional TV's they are only set to 24fps. nobody complained about n64s games being choppy.

edit:...lol I guess people did complain about n64s refresh rate lol...

but here is the proof of what TDavid is saying...
http://en.wikipedia.org/wiki/Frame_rate

after reading that..... halo3 is locked at 30fps....what a surprize.

Cliff Mellangard 3DEGS
Developer
18
Years of Service
User Offline
Joined: 20th Feb 2006
Location: Sweden
Posted: 15th Dec 2013 17:04 Edited at: 15th Dec 2013 17:06
Quote: "My game is horrible in 30 FPS. It becomes very choppy. At 50-60 FPS it looks smooth to me. I have it capped to 60 and all is timer based. That 24 FPS thing is absolute nonsense. How you experience framerate depends on the game and on the person. If you can't detect the difference between 30 and 60 FPS then good for you. Serious FPS (first person shooter) gamers prefer 120 FPS over 60 FPS. While I haven't tried it, they say it's more a feel than a visual thing."

60 fps is everyones goal but on mobile devices so is it mostly impossible to do that.
If you have an game that runs sometimes at 60 fps and sometimes dipps to 30 so is this horrible on an mobile device,most computers will not even make you notice this as they have a more or less better cpus.

And on mobile devices so is this also a large reason to save battery life.

I know that your game runs very weird in 30 fps that I really don't understand why?
It gave me some very weird results on an galaxy tab that locks all agk games to 30 fps.

The sad thing is that most modern shooters don't even run at 60 fps today,the developers have there mind set on that users wants more shine then smoothness.

If I can get 60 fps so do I also want that more then 30 fps for the feel of the game.

I have high hopes on agk 2 that I belive will fix a lot of these bad framerates in agk.

Android 2.3 , ZTE Skate , 480x800 , 800 mhz , Samsung Galaxy Y , 240x320 , 832 mhz , Sony ericson arc 480x854 , 1 ghz
Android 4.0 , Dmtech 3g 9738B , 1024x768 , 9.7 inches , 1.2 ghz
SoftMotion3D
AGK Developer
18
Years of Service
User Offline
Joined: 24th Aug 2005
Location: Calgary,Alberta
Posted: 15th Dec 2013 17:06 Edited at: 15th Dec 2013 17:09
ok here is an example of locking in at a frame rate without getting graphic tearing.



JimHawkins
14
Years of Service
User Offline
Joined: 26th Jul 2009
Location: Hull - UK
Posted: 15th Dec 2013 17:34
Quote: "That 24 FPS thing is absolute nonsense."


Cinema, until it went digital, has always been 24 FPS. Maybe you're too young to realise this. BUT - double and triple-bladed shutters held the film in the frame for a period of time and repeated it. This gives the illusion of 48 or 72 FPS.

Edison said (after a lot of experiment) that 46 FPS was a minimum. Hence the current computer games perception that 60 FPS is a reasonable rate. However, this still has a raft of problems. Look at this Wiki:

http://en.wikipedia.org/wiki/Frame_rate

It's interesting that lack of motion-blurring can have a major impact. Our eyes do it, but most games don't.

Food for thought?

-- Jim - When is there going to be a release?
xCept
21
Years of Service
User Offline
Joined: 15th Dec 2002
Location:
Posted: 15th Dec 2013 19:07 Edited at: 15th Dec 2013 19:08
Quote: "Geeks saying they can see the difference between a 30 fps and 60 fps with games designed to run at these speeds are just fooled by the placebo effect of the technological hype. 30 fps is a biological limit. There's no more to it."


Do you really believe it's all just placebo? Video games are a lot different than film in how they are rendered to the screen (notably true motion blur which makes films look smoother at lower framerates), and higher framerates certainly do help improve smoothness while reducing latency and input lag. If you run any timer-based game (even an AGK/DBP product, Counterstrike or whatever) and create a toggle to switch between 30 and 60 FPS or higher you will unquestionably see a difference. Yes, 30 FPS is generally sufficient but your eyes can most definitely notice a difference when that framerate is doubled or quadrupled.

The belief that eyes can only see 30 FPS is the myth here.

Quote: "The USAF, in testing their pilots for visual response time, used a simple test to see if the pilots could distinguish small changes in light. In their experiment a picture of an aircraft was flashed on a screen in a dark room at 1/220th of a second. Pilots were consistently able to "see" the afterimage as well as identify the aircraft. This simple and specific situation not only proves the ability to percieve 1 image within 1/220 of a second, but the ability to interpret higher FPS."


http://amo.net/NT/02-21-01FPS.html

http://boallen.com/fps-compare.html

http://us.battle.net/wow/en/forum/topic/7199031187
Scary Little Rabbit
14
Years of Service
User Offline
Joined: 4th Aug 2009
Location: Chelyabinsk, Russian Federation.
Posted: 15th Dec 2013 19:56
Quote: "30 fps is a biological limit."
absolutely not. just take CRT display, set up 120 HZ on it, render some few animations in any "Blender" with 24, 30, 60 and 120 framerate and feel the difference. process of human perception is not discrete.

error #1:
"too many stars, too many stares. disembody."
WIP: MIND!! | free fonts for your AGKs
SoftMotion3D
AGK Developer
18
Years of Service
User Offline
Joined: 24th Aug 2005
Location: Calgary,Alberta
Posted: 15th Dec 2013 20:04
as funny as this threads getting..... 60fps can look just as good as 30fps depending on how you code it. I can make 60fps look choppy as hell and have 30fps smoother looking to fool people.

...60fps is it noticeable.... yeah it looks that way I cant argue that.

but I can argue that 30fps can look really good too depending on how you code it.

im sure those that have played halo 3 had no idea it was done in 30fps

and the reason is very simple.... more processing time to draw everything.

having that extra time to do calculations is great! If your using an interpreter language such as agk then I suggest you to use 30 to gain back some processing time!

SoftMotion3D
AGK Developer
18
Years of Service
User Offline
Joined: 24th Aug 2005
Location: Calgary,Alberta
Posted: 15th Dec 2013 20:10 Edited at: 15th Dec 2013 20:11
here is an example.....even though the video is choppy (its my recorder)

but what im saying is that it runs tested on my ouya and looks supper dang smooth! with all that extra processing time I am able to create virtual lighting in my game....not possible with a 60fps frame rate on my ouya.

http://ouyaforum.com/showthread.php?8469-Mass-Conflict-Softmotion3d-(wip)

edit:scroll down to the video

Cliff Mellangard 3DEGS
Developer
18
Years of Service
User Offline
Joined: 20th Feb 2006
Location: Sweden
Posted: 15th Dec 2013 21:16
Only to put in something in the discussion so is this something iam experimenting in vans and my game.
These are global values.
Old_GFT#
GFT#
If you want to se this in action so will I upload an updated demo soon of our game where I use it.
I made this to get rid of the noticed effect when some things happened on screen that gave a choopy effect.
Like when you killed an enemy and a lot of image swapping whas made in an short time or a lot of particles.
It got rid of the choppiness but I think there is some micro lag instead in 60 fps
But the game runs a lot better in lower framerates with this.
But to solve the issues in 60 fps do I simply belive I nead to increase the speed slightly on movement?


You can use any value for speed before GFT#.
60.0 whas only for demonstration.
Before have I always used only GFT#=GetFrameTime()
but I seam to get less choppy screen updating with the new added stuff.

Zoq reminded me of the method in this post that I tested again with getframetime instead

Android 2.3 , ZTE Skate , 480x800 , 800 mhz , Samsung Galaxy Y , 240x320 , 832 mhz , Sony ericson arc 480x854 , 1 ghz
Android 4.0 , Dmtech 3g 9738B , 1024x768 , 9.7 inches , 1.2 ghz
Digital Awakening
AGK Developer
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Sweden
Posted: 15th Dec 2013 21:57
There's a reason why most games on the new console generation runs in 60 FPS. The only game I can remember that runs in 30 FPS is Ryse. 30 FPS looks good in most cases but 60 FPS gives a smoother look. I have played 2D RTS games in 20 FPS and not complained, it depends on the game. And if you haven't tried the same games in both 30 and 60 FPS, then you can't argue that they look and feel the same.

haliop
User Banned
Posted: 15th Dec 2013 22:09
Wow... this thread looks awesome
thank you all for explaining the differences.
SMD_3D your ouya game looks great! i really liked the lightning effect that comes from the bullets that's very well done.

when i spoke about 30 fps i didnot talked about building a FPS i think AppGameKit cannot (at its current stage hopefully AppGameKit v2 will change it) hold a triple A Star FPS on 60 FPS .. even when i used DarkGDK i found it really hard to obtain 60 fps on a 3rd person shooter i built..

im talking about casual games ,30 fps for me if coded right as said above can do the trick. it means i have 30 more frames per second that i can convert into extra stuff being displayed on screen and thats really cheering me up.

Cliff Mellangard 3DEGS
Developer
18
Years of Service
User Offline
Joined: 20th Feb 2006
Location: Sweden
Posted: 15th Dec 2013 22:16
Quote: "There's a reason why most games on the new console generation runs in 60 FPS."

DA its the ps3 and 360 generation that started to give us games that don't run in 60 fps?




There is an article by some of the largest developers that they have abandoned the 60 fps goal to put in extra shine instead.

They made an market research among the gamers where they wanted more visual fx instead of high framerates.

I think you guys that manage to get your games to run at constant 60 fps today is doing a great work as I have some problems with the current version of agk.

Android 2.3 , ZTE Skate , 480x800 , 800 mhz , Samsung Galaxy Y , 240x320 , 832 mhz , Sony ericson arc 480x854 , 1 ghz
Android 4.0 , Dmtech 3g 9738B , 1024x768 , 9.7 inches , 1.2 ghz
haliop
User Banned
Posted: 15th Dec 2013 22:19
Cliff those videos are super inspiring !

Cliff Mellangard 3DEGS
Developer
18
Years of Service
User Offline
Joined: 20th Feb 2006
Location: Sweden
Posted: 15th Dec 2013 22:36 Edited at: 15th Dec 2013 22:42
Talking about locked or unlocked framerates is a warzone haliop

You should listen to all posts as you learn something from them all and can do your own version with an blend of everything

They are all talented coders but there is a zillion solutions to the same problem.

I use something that work but its not the best solution.

Windowed does my game run at constant 60 but in full screen does it run around 26-30.
The same goes on mobile devices as some run it at 30 and some at 60.
And I nead something that works in all cases.
That's the hard part.

edited.....
I remembered a game I loved that they almost destroyed with an locked framerate to 30.
Its not all devs that can do it good.


Android 2.3 , ZTE Skate , 480x800 , 800 mhz , Samsung Galaxy Y , 240x320 , 832 mhz , Sony ericson arc 480x854 , 1 ghz
Android 4.0 , Dmtech 3g 9738B , 1024x768 , 9.7 inches , 1.2 ghz
Van B
Moderator
21
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 16th Dec 2013 12:55
Because of persistence of vision, higher frame rates = smoother frame rates. Your eyes don't see just 1 frame at a time, it's not like eyes are tuned into the refresh rate of your display... it's easy to tell when something is smoother, everyone can see that 60fps is smoother than 30fps - but we are operating in a world where not every device can, or should try to refresh at high rates. A game might run at 120fps on an iPad and take 4 times the battery power of a game at 30fps, a Galaxy Tab might only manage 45fps. If we repeated that military pilot test, like flashed an image every 220th/second, we'd all see the residual image - that doesn't mean we can see every single frame, it means that the image is constructed in our brains within our own internal 'refresh rate'. I can easily believe that people can tell the difference between high frame rates, but not at 220fps, probably no more than 100fps I'd say when there are no 'tells' (a 'tell', might be the stripes on the side of a race track, makes it easy to tell how smooth the game is running).

So the question is, do we use timer based and let the device use as much battery power and processor power as it can, or do we settle on a standard 30fps. I'll say one thing... people will complain about the battery life when playing your game well before they compliment you on how smooth it is. Some games just need higher frame rates, like racing games and FPS games, but for the games this community makes for the mobile market 30fps seems like a sensible standard to me.

It's kinda moot anyway with PC's - BF4 might well run at 60fps on my PC, but when my gun fires at 800 RPM, and network lag makes it fire at 100RPM, then the frame rate is not a problem. In fact, it would be great if it ran at a consistent 50fps, so long as my bullet hose kept up. Personally, I think frame rates are just PC gamers thumb in the eye to console gamers, it doesn't mean much at all, with modern games things are going to be different... it's no longer a case of reducing or increasing texture size and polygon count, there's a whole shedload of factors introduced now, things like render target scale and FOV play a more important role now it seems. I don't think uncapped frame rates are the way to go with next gen games, I think it'll be better to lock at 60 and let the gfx hardware do its job.

I am the one who knocks...
JimHawkins
14
Years of Service
User Offline
Joined: 26th Jul 2009
Location: Hull - UK
Posted: 16th Dec 2013 14:05
Yes, Van - But I have 120Hz monitors and get superb smooth action on the PCs in most games. Smart programming doesn't use the lowest common denominator - it adjusts dynamically to the capabilities - and that's something that really should come into AGK.

-- Jim - When is there going to be a release?
Scary Little Rabbit
14
Years of Service
User Offline
Joined: 4th Aug 2009
Location: Chelyabinsk, Russian Federation.
Posted: 16th Dec 2013 14:47
exactly!

error #1:
"too many stars, too many stares. disembody."
WIP: MIND!! | free fonts for your AGKs
Van B
Moderator
21
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 16th Dec 2013 15:05
But that won't ever happen! - AppGameKit will never have automatic frame rate adjustment, AGK2 might do something with 3D physics, but nobody really knows yet.

Timer control in games will always be the responsibility of the coder, and that's the way it has to be. I mean, who's to say what glitches would be introduced with a device that has half the capabilities of the device used during development. Say you design a game to run at the fastest speed it can, it runs at 60fps on an iPad, and 30fps on a Galaxy Tab - 2D physics might be real responsive and accurate at 60fps, but at 30fps who's to say what could go wrong. For example, maybe you only need to update and check a character for collision at 60fps, but at 30fps, movements doubled, well you might need to check the path to avoid missing collisions. What if a characters jump arc isn't exactly the same at 30 and 60fps... it's a minefield when you consider it.
If someone designs a game at 60fps, it's not just a case of doubling movement speeds to make it work at 30fps.

I don't think it's a case of slowing a game down, I think it's a case of getting a game solid at 30fps, then making use of any extra power. A game has to work on the lowest device possible, because as I've said, buyers will complain 100 times before they commend... and older iOS devices like the iPad2 and iPod Touch, they prefer to be either 30fps or 60fps, just the way the timers work.

One thing is for sure, it's best decided from the start - people have to consider their target devices based on what devices they have available, and then decide whether or not to upscale from that - downscaling shouldn't really be allowed to happen IMO... nobody wants to have to do that, it's much more fun to upscale and see how much more smoothly a more powerful devices runs, than to downscale just to keep a small percentage happy.

I am the one who knocks...
SoftMotion3D
AGK Developer
18
Years of Service
User Offline
Joined: 24th Aug 2005
Location: Calgary,Alberta
Posted: 16th Dec 2013 16:30 Edited at: 16th Dec 2013 16:32
Quote: "If someone designs a game at 60fps, it's not just a case of doubling movement speeds to make it work at 30fps."


that's the incorrect way to do it yes....

you should be using a form of curve values. when a person walks he just doesn't start off at full speed ahead. Same goes for the camera. If you jerk it full speed ahead ....yeah its gunna look like crap.

I like these benefits of using 30fps:
-yup less battery usage
-more processing time to give your app more shine.
-generally able to draw more to screen
-do more calculations/processing code per sync
-have a better chance of it running the same on every device.
-multiplayer coding is much easier (less messages to send/receive)

benefits of capping it at 30:
-less code work or you will need to code timer based movement


benefits of 60fps:
-fast smooth game play


I really cant think of many reasons to use 60 at all.


@Cliff M... I like your response the most. There is a ton of ways to deal with inconsistent fps across devices. You just need to choose what works for you. The stuff I listed....what other people listed ... works for me and works for them.

try some stuff out and see what works for you. Everyone will have a different opinion of how to get the job done but know this....

every game is different so you will need to make it work for your project.

JimHawkins
14
Years of Service
User Offline
Joined: 26th Jul 2009
Location: Hull - UK
Posted: 16th Dec 2013 19:46 Edited at: 16th Dec 2013 19:46
Maybe I didn't phrase that well enough.

It doesn't strike me as sensible to constrict the appearance and performance of something running at 1920x1084 on a quad-core processor to that which suits a 640x480 phone. Having (say) three sets of selectable graphics means you can use whichever is appropriate when you have determined the device capabilities. Likewise, a quick standardised test of potential frame-rate can switch in variant routines to provide the best performance on the thing in question.

Yes - it's extra assets, and yes - it's extra work, but that's part of doing a professional job.

-- Jim - When is there going to be a release?
The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 16th Dec 2013 22:12
Personaly I didnt think you could notice the diffirence between 60 and 30 FPS before I got a new computer and played BF4 which has some framedrops. I used to play most modern games at 30 FPS and be fine with it, but once I was able to play those games at 60 FPS and get some drops to 45 or 30 you start to notice the diffirence. I defenitivley cant thell individual images apart but input feels choppy and the whole "smoothness level" goes down.

I agree that running 60 FPS on a phone is usualy just a waste of batterylife and capping it at 30 is a good idea. However, if you use timer based movement, a dip to 25 FPS wouldnt matter and you could add options to uncap the framerate for users who for some reason do not care about batterylife. It adds more options, and makes your game playable on more devices if someone is fine with playing on 15 or 20 FPS and all you have to do is add a few lines of code in the main loop aswell as one variable everytime you move something. I dont know if its harder to do in 3d as someone mentioned but for 2D games I would absolutley recommend it. One more advantage of doing it is for easier performance debugging, when I develop my apps, I uncap the FPS and then I can see if something is causing a major dip in performance and fix it before it becomes an issue.

A good example of someone not using timer based movement is the latest need for speed game, it was locked to 30 but using console commands, you could uncap the FPS which caused the car to drive twice as fast, something that is not really that good for a tripple A game.



This is a video that "proves" that you can in fact tell the diffirence between 60 and 120 FPS


Say ONE stupid thing and it ends up as a forum signature forever. - Neuro Fuzzy
JimHawkins
14
Years of Service
User Offline
Joined: 26th Jul 2009
Location: Hull - UK
Posted: 16th Dec 2013 22:51
Love it. I rest my case!

-- Jim - When is there going to be a release?
SoftMotion3D
AGK Developer
18
Years of Service
User Offline
Joined: 24th Aug 2005
Location: Calgary,Alberta
Posted: 17th Dec 2013 16:43
Quote: "Love it. I rest my case!"


I didn't know you were on trail....lol!

just kidding. Its always nice to discuss things like this to get other peoples point of views.

Im not a timer based coder yet....but maybe in the future I will start to tinker with that stuff.

for now im going to stick with capping 30 as my projects don't need that extra smoothness.... they need that extra processing time to take care of ai and my calculated lighting system.

if you haven't guessed im a really big fan of tiled graphic engines.

TDavid
11
Years of Service
User Offline
Joined: 7th Feb 2013
Location:
Posted: 19th Dec 2013 02:39 Edited at: 19th Dec 2013 02:40
Quote: "This is a video that "proves" that you can in fact tell the diffirence between 60 and 120 FPS"


I find it a bit hard to trust a video sponsored by BenQ and MSI. The speaker does his best to advertise the 120hz screen and the powerhorse he had to plug in to have the game work at such high frequencies. Maybe I'm too sceptical but I don't trust him.

Besides, he starts his show by saying that a casual gamer couldn't tell the difference between 60hz and 120hz.

People can actually see 60 fps but it's only under an adrenaline surge like a life threatening situation. Some people might reach these fps in a very tense competition but I don't think someone playing on a mobile phone will ever get near the concentration required to see a 30 fps game stuttering.

There's actually a way to tell the difference between 60Hz and 120Hz. If your game doesn't run at the same frequency as the screen, some moving shapes will be slightly distorted from time to time. Nothing as obvious as a screen tearing, but it is visible if you know what to look for.

I made a quick'n dirty Quizz app to illustrate my point. It's just a square spining with the screen refresh rate randomly set at 30hz or 60hz. The victim has to pick the right frequency. To me, it looks as smooth at 30hz as at 60hz. However, you can clearly tell when it's running at 30hz because the square gets slightly distorted when it's spinning. I don't think any casual gamer is ever going to tell the difference but it's definitely here. I think the distortion is worsened by the fact that the square is 256x256 big. With smaller shapes it might be harder to notice. If the one click deploy works tomorrow I'll post it so you can test your family and decide which frame rate is best. Here it's 2:30am, I'm going to bed.
blastar
10
Years of Service
User Offline
Joined: 4th Nov 2013
Location:
Posted: 19th Dec 2013 16:25
@Cliff Mellangard 3DEGS: enslaved - one of my favorute games!

an limited engine could be bad if you see framedrops and with FPS more frames means more fun but if you developed for 30fps on mobile devices it could be pretty good.
TDavid
11
Years of Service
User Offline
Joined: 7th Feb 2013
Location:
Posted: 3rd Jan 2014 16:56
Yay! The online one click apk builder is back!

Here's the test app I talked about in my previous post. No one around me could tell the difference between 30hz and 60hz.

Try at your own risk. For your information my phone ran it twice and it didn't blow up.

Of course this test is not relevant if your screen refresh rate is lower than 60hz.

Attachments

Login to view attachments
Marl
12
Years of Service
User Offline
Joined: 19th Nov 2011
Location: Bradford, UK
Posted: 8th Jan 2014 12:20
Perhaps if games were more engaging, people would spend less time counting frames

I favor Timer Based movement simply because my phone - target platform - has a tendency to do stuff in the background.

At fixed rates apps noticeably drop frames and while TBM doesn't necessarily prevent this, it ensures movement is adjusted to minimize disruption to play.

Quote: "Likewise, a quick standardised test of potential frame-rate can switch in variant routines to provide the best performance on the thing in question."

I have a routine which does this the first time an app is run on a device. It essentially does a complex maths loop an increasing number of times until the frame rate drops. It provides a rough guide to how many instructions can be run per frame on each device.
Naphier
13
Years of Service
User Offline
Joined: 2nd Oct 2010
Location: St Petersburg, Florida
Posted: 19th Jan 2014 22:44
What we need is a shader that provides a blurring effect which would make the little jitters unnoticeable. Even using timer based movement I've noticed on older devices when a background process starts (usually an app updating) you can get some pretty ugly skips. I've yet to see a mobile game be able to really handle that kind of draw on the device. Even on the Nexus 5 when playing something as polished as Clash of Clans you can see some goofiness if a background process occurs. Don't even get me started on the iPhone 4. It seems to drop frame rate just because it wants to.
A slight blurring effect would help the less stable devices... I think.

Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 8th May 2014 16:52
You can definitely see (or at the very least perceive) the difference between 30fps and 60fps. It's really easy to test, too. Just start a game that normally runs at 60fps smoothly, open fraps, make it limit framerates during recording, then go in-game and start and stop recording. Instant difference.

Naphier
13
Years of Service
User Offline
Joined: 2nd Oct 2010
Location: St Petersburg, Florida
Posted: 9th May 2014 22:13
That's the way I do it clonkex! I even set it down to 12 to see how bad things can get. If using timer-based movement sprites hop way too far. I'm thinking of working out a way to skip the sync calls when this is happening, but that opens up a whole new can of worms.

Login to post a reply

Server time is: 2024-04-28 08:16:19
Your offset time is: 2024-04-28 08:16:19