paulevsGitch / BetterNether

BetterNether Mod
GNU General Public License v3.0
105 stars 75 forks source link

[Suggestion] Make textures use limited palettes #463

Closed saltyseadoggo closed 2 years ago

saltyseadoggo commented 2 years ago

Description

I don't expect this suggestion to be accepted, but I'll share my point of view anyway.

Vanilla Minecraft textures use limited palettes of just a few colours, much like sprites in older video games. This gives them a crisp, retro look, and also decreases their performance cost. Better Nether's textures do not use this technique, often having dozens of individual colours. This makes them not match Minecraft's style as well in my opinion. More importantly, however, I would suspect that this is contributing to the mod's performance issues, which are noted on its curseforge page, and which notably have caused the popular All of Fabric series of modpacks to not adopt BetterNether.

I think taking the time to make Better Nether's textures use a small number of shades each, like vanilla textures...

I also believe this could be done without much difference to the texture quality. Looking at these textures, changing out a dozen shades of whatever colour for just a few wouldn't be too much a difference to the image as a whole. The golden vines, for example, could use only three yellow shades for the yellow parts without much visible difference at all.

I hope you'll consider this perspective and share your thoughts with me. Thank you.~

paulevsGitch commented 2 years ago

Vanilla Minecraft textures use limited palettes of just a few colours

Not all MC textures have limited palettes. For example striped wood, grass, some plants, concrete and many other blocks have palettes with many colors:

image

would improve performance

Any texture will be encoded into ARGB array in memory, it doesn't matter how many colors are in palette (as ARGB arrays will be same size for textures with same size). Technically it may make file size smaller, but not too much (as not all textures have large palettes + the texture size is small)

Actually, it will be better to repaint most textures, but right now we don't have enough time for this (there are really many textures, not so many as in BE, but approximately one thousand). Probably textures will get update, but not immediately and these updates will be splitted for several versions (Minecraft textures were also repainted for a large period of time and some of them are still not updated yet).

It will be great if we will get more artists and programmers into our team, right now we can work only at small amount of things in one time period

saltyseadoggo commented 2 years ago

You got me with the stripped log textures et al, I hadn't noticed that they didn't use limited palettes. You also got me on the tech analysis on the memory; I guess the performance hit may be more due to the complex models and there being a lot of them on the screen at once in mushroom forests, nether jungles, etc. But that's beside the issue. I'm glad there are plans to touch up the artwork over time in the future. I am eager to see what you and the team will come up with!

paulevsGitch commented 2 years ago

Things that have largest impact on performance:

Block models have the lowest impact - they are baked into static chunk section meshes. It can cause issues only when amount of complex models is really huge, but in the Nether biomes quad amount is (probably) similar to vanilla jungle (leaves always have 6 sides independently of surrounding blocks)

paulevsGitch commented 2 years ago

Sodium effectively solves most performance issues (for me vanilla MC runs 48-60 FPS, with Sodium it can be more than 200)