gamercade-io / gamercade_console

A Neo-Retro Fantasy Console. Make WASM-powered, networked multiplayer games.
https://gamercade.io
Apache License 2.0
169 stars 10 forks source link

Determine Max Game Rom Size #88

Closed RobDavenport closed 1 year ago

RobDavenport commented 2 years ago

We need to finalize what the max game rom size will be.

I think powers of two are good, and given the feature set we should be able to estimate a good balanced size.

Its good to think about the core motivations of the project as a whole too.

I could see anything from 4mb up to 64mb being realistic. Going below 4mb would potentially limit sound and high res graphics. 32mb or higher will limit the usability of the app since people will need to wait longer to launch new games.

Alternatively, it could instead be possible to split the game rom into multiple sections, such as 8mb for code, 8mb for audio, 8mb for graphics, or something else along these lines, they don't need to be equal parts.

To put some things into perspective, the SNES had a max size of just around 14.5mb, while the n64 went up to 64mb on some specialized games. CDs are 700mb and way over budget here.

For handhelds, GBA went up to 64mb, DS up to 512mb, while 3ds and PSP was in the multiple GB range.

What do you all think?

erlend-sh commented 2 years ago

Since both N64 and GBA (bit over two decades ago) managed with 64mb, to me that feels like a suitable hard ceiling. Maybe in 10 years we can lift that ceiling to whichever console was hot in the 2010s, hehe.

For early jams though, the ceiling should be set to the lowest possible, e.g. 4mb.

RobDavenport commented 2 years ago

Right, some other points worth considering here is:

  1. The .gcrom files is already raw binary, and then additionally zstd compression is applied on top of it. So this 64mb limit would be after the compression.
  2. Larger files obviously take more time to download, and also take more time to decompress. More startup delay can be a bad thing (up to a certain point). I don't think its good to expect people to want to wait more than 1 minute to both download the games AND decompress them.
  3. Assuming a worst case of a 2mbps connection (taken the worst values from here), it would take just over 2.5mins to download 32mb, but perhaps this is a naive thought. Steam download stats and some poking around lowest connection speeds, comes up with ~1.1 as the lowest, but I'm also seeing ~2.5-5mbps being a more accurate floor. 32mb @ 5mpbs is just under 1 minute.
  4. I'll also likely be hosting the games myself on some file repo, such as the one we are discussing in #35 , so here smaller files means less cost.

I could see these reasons to potentially push the number lower to start. I guess it would be easy to later, expand the size, than it would be to shrink it.

RobDavenport commented 1 year ago

For the moment, we're going to stick with 16mb for the max rom size!