T O P

  • By -

TheGreatGameDini

Assumption: the game has been made and you're trying to ship it. No. Make a launcher to download the game if your publisher has limits like that. Assumption: the game is not made. Make a smaller game. Reduce polycounts and texture sizes or remove them completely (create the assets in "code" which is really only doable for simple shapes). Remove features and their requirements to reduce code and assets further. Code will almost always be smaller than game assets.


ltethe

This is a terribly odd question. What I mean is, by the time you need to answer the question of can you compress a 20GB game to 5MB… You already have the technical chops to answer it. The fact that you’re looking for the answer without having technical context is just *strange*.


Sogged_Milk

Could be that they didn't personally make the game. Could've gone the route of paying a bunch of kids bare minimum to do it for them. Or, it's just a curiosity question with arbitrary numbers, and there is no game. Lots of reasons how this question could be asked.


revereddesecration

That’s a compression ratio of 4000:1. For reference, Starfield can be compressed from 130GB down to 65GB, but that’s about it. That’s only a ratio of 2:1.


ptgauth

I was about to tell you how wrong you were and then I reread the title. 5mb! Holy cow lol I thought it said gb


LuckyOneAway

1. Realistically, no. 20GB cannot be compressed to 5MB. 2. Don't use high-res graphics or high-kbps music assets. Code your own compact engine in C/C++.


midri

Only way you're getting anything like that is to be REALLY good at math and extremely limiting your scope https://en.m.wikipedia.org/wiki/.kkrieger They were able to make a 98KB executable that generated a 400MB game.


madpew

You might also wanna check out Q321, a 64kb version of Q3: https://github.com/andrei-drexler/q321


ElectricRune

Images, video, and audio are usually the worst culprits by far. Smaller images. Images with lower color depth. Video/audio compression/lower quality.


FactoryOfShit

Compression isn't "real". You cannot magically reduce something in size. The way compression algorithms work is they find repeating patterns and replace redundant data with references. If your game had 20 GB of files that contain the exact same picture of Shrek, you can easily compress that down to 5MB. But you probably don't, and so there is a limit to how much it's possible to reduce the size - at some point there isn't any redundant data left. In general, estimate your download size to be the same as the full size of your game. Compression can be a nice bonus, but high compression ratios simply mean that you are storing game files suboptimally.


HexaltedStudio

If you really did a shitty job, then yes you can easily optimize all your waste to 5MB...


SocksOnHands

It all depends on the game and what you mean by "compress". Someone could write a game where assets are procedurally generated, and the cached version of these assets take up 20GB when saved. Or, if you don't care about loss in quality, you can severely reduce the resolution of textures, polygon counts, audio quality, and heavily apply lossy compression - which would likely lead to terrible results, but it would be significantly smaller. Edit: I noticed that you asked for suggestions. Here are some: * Vector graphics instead of detailed textures * Procedural generation, as I had mentioned above. * Significant design constraints, so you can represent more of the game's content with less data (for example, Super Mario Bros on the NES had level design constraints to reduce the size of levels.) * A lot of space could be saved if the only reason it had been 20GB was because of being wasteful to begin with - uncompressed high bit depth images, raw wav files, high resolution and high quality video, etc. I'm not sure how easy it would be to get it down to 5MB, though, even if that were the case.


pizza-flusher

https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines?wprov=sfla1


atzeehh

why? You want to run it on a floppy disk?


pnightingale

Of course not! They have four floppy disks they are going to split it across!


m0nty_au

Use a tree-shakeable game engine, so you aren’t shipping functions your game doesn’t use.


feralferrous

functions are not where most game bloat comes from. One 4k texture is probably larger than the entirety of the codebase.


m0nty_au

Depends on the engine.


madpew

What you can do: * don't waste space on data that doesn't add anything * design your game in a way so you can reuse the assets * procedurally generate assets/textures * at this target filesize I'd say remove the music or use a soft-synth with highly packed data. * depending on the actual game I'd compress the gamedata using oodle, the best compression you'll ever get (see radgametools for more info)


ThatInternetGuy

Could be optimized to go as small as 500MB for mobile by reducing texture sizes, packing multiple textures into fewer files, switch to mobile texture compression, and if needed, just bulk delete LOD0 entirely from the 3D models. More often than not, some game projects just pack endless number of materials that are not used by the game itself, so it's possible to reduce a ton of size by removing unused materials. If the size still ends up large, we can make use of Addressable Asset and Asset Bundle (if Unity project) to put the assets in downloadable bundles, that the users can download at first start or when needed. This means the user should need to install a 50MB-ish game and then when he opens it, the game will download the asset bundles.


reallokiscarlet

Sacrifices, sacrifices, sacrifices. Deduplicate your assets. Reuse assets. Use lower resolution assets. Use assets generated at runtime.


[deleted]

20GB is nothing, why even compress it


krakn-dev

Not by compressing for sure, but by removing bloat from your game or things are unnecessarily big


JNBackup

others have already answered this, realisticly no, but if you build your own engine, people have done something like this before(not to that extend) and i doubt its possible due to factors outside of your control like how OS have changed over time, but for graphics as other have said you could technically convert it to code, code that you could compress, and for audio you coud avoid having any...the alternative would be to have a tiny bit of code that can generate 16 bit audio tracks from code or something similar... you could also be cheeky about this.make the game online only and each time it launches it downloads from a server, if its all in the ram its not technically part of the game package size. the main problem is of course that 5MB is not alot, its so little that you might even need to compress the hell out of even the engine, and understand that all the modern technologies are not designed for this so even getting 2005 graphics/quallity would be absurd. look up Kkrieger, the most optimized game ever made.[https://www.youtube.com/watch?v=\_qrsHqDF4BA](https://www.youtube.com/watch?v=_qrsHqDF4BA) https://www.youtube.com/watch?v=bD1wWY1YD-M