Page 1 of 2

Performance - what are your standards?

Posted: Wed Feb 20, 2019 11:17 am
by Bananicorn
So by that I mean how well does your game have to run (in terms of FPS) so you consider it stable enough to release?
Do you test on real hardware or on VMs?

I personally develop on an Fujitsu Lifebook 8410[1], running Linux with just the MESA drivers, but I barely test on Windows and Mac OS, since I don't own a Mac and rarely carry my Windows laptop with me.
I generally just see that my games run above 60fps at 800x600 and stay there for most of the time, as long as they don't lag during gameplay-critical moments.

[1]https://www.cnet.com/products/fujitsu-l ... 410/specs/

Re: Performance - what are your standards?

Posted: Wed Feb 20, 2019 2:50 pm
by tentus
I'll test each of the platforms eventually, but the frequency is determined by convenience. In my case, Linux is my default development environment, and then Mac gets periodic checks, and then Windows gets checked for each major milestone. In general this kind of testing is pragmatic enough.

In terms of the actual benchmarks: for most of my games I shoot for 60fps on a 1080 resolution during gameplay, on whatever medium-tier-ish laptop I can get my hands on. A convenient trick is to screencapture yourself playing the game with extensive printing happening, and then if you git a snag go back to the screencap and step through the log while also eyeballing the gameplay leading up to it. A lot of times simple logs will obfuscate the actions that led up to a snag, while a video will make them painfully obvious.

Re: Performance - what are your standards?

Posted: Wed Feb 20, 2019 6:45 pm
by ivan
It's not really about running at high FPS, it's more about making sure the FPS is consistent.
So it's often about dealing with occasional drops in the frame rate.
I also do profiling which helps pinpoint overall bottlenecks
https://github.com/2dengine/profile.lua
If my games can run smooth with the profiler enabled I know the performance is good.

Re: Performance - what are your standards?

Posted: Fri Feb 22, 2019 9:51 am
by Bananicorn
ivan wrote: Wed Feb 20, 2019 6:45 pm It's not really about running at high FPS, it's more about making sure the FPS is consistent.
So it's often about dealing with occasional drops in the frame rate.
I also do profiling which help pinpoint overall bottlenecks
https://bitbucket.org/itraykov/profile.lua/src/master/
If my games can run smooth with the profiler enabled I know the performance is good.
Nice profiling tool!
I'm totally gonna try that out :)

Re: Performance - what are your standards?

Posted: Fri Feb 22, 2019 10:02 am
by Bananicorn
tentus wrote: Wed Feb 20, 2019 2:50 pm In terms of the actual benchmarks: for most of my games I shoot for 60fps on a 1080 resolution during gameplay, on whatever medium-tier-ish laptop I can get my hands on.
What do you consider a medium-tier laptop nowadays? Would mine be considered medium-tier? It can run stuff quite smoothly, I guess, but only with the right drivers^^

Re: Performance - what are your standards?

Posted: Sat Feb 23, 2019 7:41 pm
by monolifed
It is not fast enough unless it makes my pc catch fire
A relatively stable fps count above 60 seems reasonable to me

Re: Performance - what are your standards?

Posted: Sun Feb 24, 2019 5:22 pm
by Tjakka5
I aim to write performant code that does generate garbage, and just tries to be efficient everywhere.
If I notice I am bottlenecked by something I'll try to optimize that if I feel like that's worth it.

I use spritebatches by default. If I'm feeling fancy I might even make my own implementation using meshes and bytedata.

When I've got something running I'll test it on lower end systems as well and see if the result is acceptable.
If not, I'll try to optimize it where I can.


One good example would be in the game Sir. Dashaton.
We used a fake 3D technique that uses sprite stacking.
On my partners lower end hardware this amount of overdraw just killed performance. I think it was around 20 fps.
We optimized this by turning walls into 4 quads. They were solid anyways. This improved performance enough to call it "good enough".

We also implemented a fixed timestep (High enough to still be smooth on high refresh rate monitors) just to be save.

This was all for a game jam. For a real game I'd implement everything a lot more robust.

Re: Performance - what are your standards?

Posted: Sun Feb 24, 2019 11:28 pm
by shru
I'll elaborate on what ivan said a little bit.

You shouldn't care so much about your framerate, the more important metric is frame time. Consider a scenario where you're running your game without vertical sync on a 60Hz monitor and your FPS is 300. That's 240 frames of headroom, right? Not exactly, you can render 300 frames per second, but it'll still feel laggy if any of those frames take longer than one display refresh, ie. 16.7ms.

Unfortunately in the world of Lua you have to deal with garbage collection, which is definitely something which can cause certain frames to have a spike in processing time.

As for what I can tolerate, it depends on the pace of the game. 60+ is ideal for action games, but I don't think a lower framerate would be a dealbreaker for strategy or puzzle games, for example.

Re: Performance - what are your standards?

Posted: Mon Mar 18, 2019 5:34 pm
by Strela_999
If it beats 24 fps on my garbage laptop, it's good to go, it means it'll hav at least 30 fps on a Nokia 3310 :ultrahappy:

Re: Performance - what are your standards?

Posted: Sun Apr 07, 2019 8:30 am
by raidho36
30 fps on a $100 phone, 60 fps on a toaster.

The important part is actually testing everything. There are trillion hidden variables so you can't just assume that you'll have certain level of performance based on some metrics or techniques. If you only own a high end desktop for development - that won't do, guesstimations like "it's 1/10th as powerful so it'll have 1/10th the framerate" don't work. You'll have to actually buy some low end hardware, luckily it's very cheap.