So, we know the game is for desktop platforms , but that could be quite a wide range. Requiring an RTX 3080 is… probably not a good idea. At the same time, insisting that the game run on a 32-bit potato is not practical either (I mean, 32-bit? In 2020? I suppose Boris might appreciate it). So what’s the sweet spot between the two?
For reference, here’s Unity 2019’s minimum system requirements. An SSE2-enabled CPU means “Pentium 4 or later” (so, from the year 2000 or later) and a DX10-capable GPU means “GeForce 8xxx series or later” (so, from the year 2006 or later). That rules out the potato, but in principle a game made with Unity 2019 should still run on a 14-year-old machine. That could mean running on computers which are older than some of the project contributors!
Meanwhile, the Steam Hardware Survey gives more data about what people are typically using for desktop games. No potatoes there.
I suggest that we aim for something like this as a minimum spec:
Windows 10, macOS 10.13, or Ubuntu 16.04
3GB of RAM
Dual-core CPU @ 2GHz
GeForce GT 630 / 640M or AMD Radeon HD 7450
1GB of VRAM
5GB free disk space
The Steam Hardware Survey suggests that a spec like that should cover around 90% of all players on Steam, which I think is a good place to start.
However, 1GB of VRAM and a dual-core CPU is pretty constraining - just because the game should run on a spec like that doesn’t mean it has to run well. So in addition to the minimum spec, we could adopt a ‘recommended’ spec:
Windows 10, macOS 10.13, or Ubuntu 16.04
8GB of RAM
Quad-core CPU @ 2.3GHz
GeForce GTX 1080
4GB of VRAM
5GB free disk space
This gives us a bit more breathing room, while still being accessible to ~70% of Steam players.
We should aim for the game to run at a solid 60FPS on the recommended spec, and a solid 30FPS on the minimum spec (possibly with some settings turned down).
I think this is a great suggestion and a good target to cluster around. If it needs to adjust later fine but good to adopt something like this early to facilitate decision making. Take my upvote.
Hey! So I’m aboard the other requirements, but GTX 1080 is super overkill. As min spec we could probably go for a 1050 or lower, and recommended we could go for a 1060 6GB, which might also be overkill
Alright, I pulled the Steam video card data into Excel and massaged it into a table so we could actually see the cutoff more clearly.
Of the NVIDIA cards - which account for 66% of the total - if we require a GTX 1050 or later, that covers 58% of the market. If we assume that the other manufacturers are similar, then a “GTX 1xxx series or equivalent” minimum spec would give us 87% of the market, which I think sounds fine. So yeah, dropping it to a GTX 1050 seems like a good idea to me.
Well, the target hardware has a big impact on the content, right? We could push all the way down and say that it has to run on a 14-year-old machine, but the lower the target spec, the more we are tying the hands of the people creating artwork.
The game design says that the island “is a small patch of land almost completely covered by trees and palms” - so I think we should expect quite densely-populated scenes, and I think ideally we’d want it to be quite dynamic, so branches can sway in the wind etc?
One thing to try would be to create an example of a densely populated ‘island section’, run it on some cards, and see how many ms/frame rendering costs. Maybe we can put 10000 trees and ferns on-screen on a GT 740m in 5ms/frame, in which case, sure, let’s lower the minspec further.
I would say find references on games that are of a similar scope and theme as the one we are developing and base the specs on their minimum specs. That way we can have a better scope as what something is overkill or not.
For example, Yooka Layle. I think it’s a game that is quite similar to what we are looking to develop.
I think we need to be more specific than ‘NVidia or ATI graphics card’ - imagine that we are actually going to go out and buy parts to build a machine for this, so we can use it for regularly testing the performance. We need enough information to know what to buy, reasonably clearly enough
Other than that, keep it coming! What other games do you think would have comparable technical requirements? (They don’t even have to be Unity games).
Many good games where made with low specs, imho having to target these specs help a lot a project to focus on what matter and budget accordingly. I know the project isn’t about ambition and pushing unity to its limit, but part of learning making games is precisely about dealing with limitations and the lessons pay off handsomely. Especially for art, even AAA capitalize on lesson learned in previous generation. And a lot of time, you have to port your game to mobile, so there is a real case of learning to deal with low specs, Fortnite is a case study about it. Another case is genshin impact, crazy good visual that scale amazingly.
Personally I have a gforce 705 and a radeon r2, respectively 150 and 70 flops more or less, my phone is probably around 4 or 11 flops on opengl 2.0. And there is visually decent games on island since at least the GameCube era with dense forest. Composition matter the most anyway. I mean Mario galaxy still looks nice today upscaled, sonic colour was confused for a x360 games, both are Wii games so no more than 12 flops with essentially no modern programmable shader, I would definitely learn about their visuals as we can have more breathing room than a simple Wii. Also probably a switch could a perfect minimal target, I mean fraking Witcher 3 run on it.
It would be sad you cut off poor people like me, especially those trying to learn game dev, because they can’t access a 1000+ $ computer of a middle class family, and that’s already more than twice my monthly income. And there is a huge emergent market in India that are still on low end phones. I could barely run the 3d game kit already.
So planning early art to scale, as it’s easier to upscale rather than downscale. If it looks good with low end, adding details for high end would be a breeze.
To build on top of this thread, how should we monitor whether we are actually able to run on these lower spec machines?
Would it make sense to have a dedicated performance testing thread for each release where people will test the game, post their performance numbers (would be great if we can build in some tools to keep track of the FPSs min, max, avg and such to have a consistent dataset) and also post the specs of their machine + OS? Through that we could put the data into a spreadsheet and start looking at whether there are performance issues rising that we need to resolve in order to meet the target requirements.
Potentially yeah, but running the game inside the editor or as a debug build to allow for the profiler to track data could cause extra overhead that won’t be there in the final build and could give us some inconsistent data. It would be better to test with a true final build in order to get rid of such overhead. Once we do figure out that there is a performance regression then of-course we should use the profiler to find out where it’s coming from
Doesn’t fit together?
I would suggest for recommended (I even can play Call of Duty Modern Warfare on 1440p with all max with around 70 FPS with that gpu):
GeForce GTX 1070
8GB of VRAM
Also, for min settings, I don’t think this game will be a HDRP unity game with breakthrough graphics (that’s not what the styles etc. tend to), you can play it on a newer integrated GPU without problems.
having a thread performance dedicated to just testing performance would be nice, or maybe the performance reports could be made in the bug section. For early testing, I think there should be a demo scene (perhaps unoptimised) with an estimated performance cost similar to the project in mind that we could all download and test. optimizations would be made based on the performance results.
It’s gonna be very difficult to create a scene specifically for creating a baseline of performance when we basically don’t even have a game yet. I think it’s better to keep track of the performance as we go and once we start seeing issues we should step in to improve the codebase
Let’s keep the performance testing discussion in a separate thread, please. It’s premature to get into that before we have even agreed on what the target hardware is
Allow me to toss my two cents in from a different angle: the idea behind the Open Project is that anyone from all walks of life can contribute, right? The team behind this won’t necessarily have company-provided hardware or a rig built for gaming (let alone game dev). Some of us just might be trying to pitch in from our Dad’s laptop that came with a measly RX 540 because we’ve got $20 to our name and are still hunting for jobs, but also incredibly excited about an opportunity like this. We then end up frustrated because later down the line the project became too demanding for our hardware and we can’t even test it for bugs, let alone actually contribute.
I haven’t been this motivated to get involved in a project in ages. Please don’t cut me off.