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/
Performance - what are your standards?
-
- Prole
- Posts: 37
- Joined: Thu Apr 12, 2018 9:59 am
- tentus
- Inner party member
- Posts: 1060
- Joined: Sun Oct 31, 2010 7:56 pm
- Location: Appalachia
- Contact:
Re: Performance - what are your standards?
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.
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.
Kurosuke needs beta testers
Re: Performance - what are your standards?
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.
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.
Last edited by ivan on Sat Dec 11, 2021 8:25 am, edited 2 times in total.
-
- Prole
- Posts: 37
- Joined: Thu Apr 12, 2018 9:59 am
Re: Performance - what are your standards?
Nice profiling tool!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.
I'm totally gonna try that out
-
- Prole
- Posts: 37
- Joined: Thu Apr 12, 2018 9:59 am
Re: Performance - what are your standards?
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?
A relatively stable fps count above 60 seems reasonable to me
Re: Performance - what are your standards?
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.
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?
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.
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.
-
- Prole
- Posts: 5
- Joined: Sat Feb 23, 2019 1:21 pm
Re: Performance - what are your standards?
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
Re: Performance - what are your standards?
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.
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.
Who is online
Users browsing this forum: Ahrefs [Bot], Bing [Bot] and 1 guest