I would like to make 3D games in 4K that are a few Megabytes (MB) in download size.

Is there a way to use 3D Vector Graphics in games to reduce the file size ? Or is there any other way to achieve the same level of compression achieved by Flash(.swf) and Swift3D ?

  • 7
    \$\begingroup\$ 4K woould be the resolution. No Textures, but lots of duplicates, such as grass. \$\endgroup\$ – Neel Sep 24 '18 at 11:38
  • \$\begingroup\$ There is stuff like this : youtube.com/watch?v=BAyd5wSPQrM but it converts the svg to a mesh. Not sure if you want to animate things as well. \$\endgroup\$ – Sidar Sep 24 '18 at 11:38
  • 68
    \$\begingroup\$ This question doesn't make much sense. When your game uses 3d graphics, then changing the rendering resolution does not affect the filesize of the game. at all. You can render the same 3d scene in 640x480 px or 3840 × 2160px. You just need to change two numbers for that. Rendering in a higher resolution might look blurry if you show close-ups of low-resolution textures and have a bad framerate on low-end hardware, but what you get is technically a "4K game". Maybe your definition of "4k game" is more than just the screen resolution? Please specify. \$\endgroup\$ – Philipp Sep 24 '18 at 13:00
  • 7
    \$\begingroup\$ @Sidar vector graphics are the only kind of graphics supported on modern machines at all for 3D \$\endgroup\$ – Cubic Sep 24 '18 at 15:18
  • 9
    \$\begingroup\$ In case you weren't aware that it was a thing, the 64kb demo scene included some amazing 3d graphics, like fr-08 (aka ".the .product"). It just took time and dedication. (Here's the site for the people who put that one together) \$\endgroup\$ – Cort Ammon Sep 24 '18 at 19:10

There are ways to make nice 3d graphics with low memory footprint, however that requires you to have the right experience and knowledge. There are games like .kkrieger which is a 3d first person shooter, with the size of a few kilobytes.

This is not just compression algorithms. You can't just make a massive game and press a button and suddenly its 100kb, that's not how it works.

Also you have to make the right balance between quality and file size. Sure we all want an HD experience with realistic graphics and very low memory requirements, but the higher quality, the heavier it gets.

Here are a few tricks:

  • Procedural generation: The more data you generate on the fly, the less data need to be saved on the disk. Instead of having a massive static world, it's lighter (filesize-wise) to have a randomly generated one.
  • Repeating assets: Have objects share the same textures, maybe switch some material settings to make them look different. For example, imagine you have one texture for the ground, one for the walls, and one for the ceiling. You can theoretically make an dungeon roguelike game, that has infinite size, because it keeps adding new rooms that are fully textured.
  • Custom Engine: Game engines try to be as abstract as possible, to allow users to create a big variety of games. Unfortunately this comes with an overhead, that can't be avoided. Using a custom engine would ensure that there's not that many unnecessary data, and that everything is optimised to your needs. (Thanks @Sidar)
| improve this answer | |
  • 11
    \$\begingroup\$ Kkrieger was also a custom engine. If you use any engine these days at minimum you have 10 megabytes just for engine capacity alone. \$\endgroup\$ – Sidar Sep 24 '18 at 13:01
  • 2
    \$\begingroup\$ @Sidar That is an excellent point, I'll add it to my answer \$\endgroup\$ – TomTsagk Sep 24 '18 at 13:03
  • \$\begingroup\$ Also I just realized OP is asking for literal "3d vector" graphics. i mean you could model your meshes and use vertex colors with a flat shader, which does exactly that. It's cheaper too. \$\endgroup\$ – Sidar Sep 24 '18 at 13:07
  • 2
    \$\begingroup\$ @Sidar I just noticed that as well. 3D graphics are anyway similar to Vector Graphics, as in, they scale without losing quality. I guess OP wants textures as 2D vector graphics? \$\endgroup\$ – TomTsagk Sep 24 '18 at 13:15
  • 9
    \$\begingroup\$ Note that kkrieger takes it to the extreme but their goal was 64k. If they can fit that in 64k you can fit a lot more in 4M. Or you can fit somewhat more and it'll be much easier to make fit. \$\endgroup\$ – user253751 Sep 25 '18 at 5:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.