Minecraft 2, Part 2: The Graphics
(This originally appeared on the Minecraft Forum here)
Minecraft 2, Part 2:
Some time ago, Mojang announced that they would be adding a feature called the “Super Duper Graphics Pack” (SDGP) to the non-Java versions of Minecraft. This brings many modern rendering techniques to the game, before only seen in PC shaders. Whether or not this looks good is subjective, but most likely anyone looking at it would still recognize the blockiness game.
Written in a better rendering engine, like Direct3D or Vulkan, Minecraft 2 would be able to take advantage of more efficient rendering techniques and have improvements to it to have modern graphical effects, such as seen in the SDGP. In addition, I’ve got an idea that could “fix” sunlight, allowing for Cubic Chunks.
Disclaimer: as I have never programmed a rendering engine, I do not know exactly how to implement most of this. Some mechanics may also require a restart if they are modified.
Okay, I’m not really fixing the sunlight problem. I’m actually just going to ignore it. Lighting, instead of being a mechanic determined by a block’s light level, will now be purely aesthetic. This will allow for many new effects in lighting, including colored lights, dynamic lights, and more realistic shadows. Sunlight will also be affected by this, and would only cast shadows from blocks that are currently rendered (this would mean floating islands or high ceilings that are above render distance will not cast a shadow, but I believe it’s a small price to pay). Since light would no longer have a major effect on gameplay, the only remaining cons of such a system would likely be greatly outweighed by all the pros of cubic chunks. Systems such as mob spawning and crop growth would no longer be effected by lighting and would be handled differently (which I’ll detail in future suggestions in this series).
Sunlight would have a slight yellowish tint to it during the day, and have a more pinkish tint during sunset or sunrise. These colors would be modified slightly depending on the biome the player is standing in (the sunlight might have a green tint in swamps, and sunsets might be more red in deserts). Moonlight would be blue, and its strength would be modified based on the phase of the moon, being strong when full and practically non-existant when new. Sunlight and moonlight will decay rapidly 32 blocks below the global surface value, getting weaker for every block of depth beyond that, and at 64 blocks below, will stop being rendered entirely (caves are going to be much deeper than in the current game). This will prevent abnormally large underground rooms from being lit by sunlight with a low render distance, as well as save on performance, though it could be an issue for players who decide to build at that depth. For performance reasons, the game will only render either the moonlight or the sunlight, but never both at the same time (during sunset or sunrise, the lighting will transition to a weak ambient light, and then to the opposing global light source).
As you’ve probably guessed by now, the new lighting system will include colored light. Beyond your standard torch, there will be many light sources, and several will have the ability to give out a color other than yellow. Light passing through translucent colored blocks would be tinted depending on the base color of the block (light passing through red stained glass will always be pure red, even if you’ve retextured it to be purple or several colors).
Dynamic lights will also be a thing. They aren’t really laggy when implemented correctly, though with the addition of shadows, they will have more of an effect on performance than the current dynamic lights mod, but not by much.
For performance, players will be able to adjust the light quality in their video options. Low quality will have low-resolution shadows and colored lighting will be disabled. Medium quality (default) will have a medium shadow resolution (comparable to the shadows made by sunlight in the original Skyrim). High quality will have high-resolution shadows and light going through transparent/translucent blocks will take into account the opacity of the individual pixels on the block. Ultra will be like High, but will also take into account the colors of the individual pixels on the block the light is passing through for colored light.
(Based off Ouatcheur’s idea) Chunks, when they come into or out of render distance, will fade into or out of view, and any shadows they cast will fade with them. This will make the shadows transitions not as jarring.
Volumetric God Rays will also be a thing. By default they are disabled, but can have their quality cycled between low, medium, and high. Higher qualities will increase the density and distance of God Rays.
This applies some feathering around the edges of objects to reduce the jaggedness of diagonal lines. It can be set to off, FXAA (cheap, “fake” anti-aliasing), 2x, 4x, 8x, and 16x.
Bloom is an effect where a small amount of blur is composited into the rendered frame to add a more “film-like” effect. It causes bright pixels to “bleed” into dimmer pixels, and the effect is greater the higher the contrast. It is enabled by default.
Depth of Field
This causes blur on pixels which are a certain distance away from wherever the camera is focusing. It can be set from 0-100, where 0 is disabled and 100 causes only pixels the exact distance away from the focus to be in complete focus.
All textures can optionally have an additional texture (textureNameBM.png) which gives them a bump map. A bump map is an invisible texture put on top of an existing one that tells the game how to shade the texture. This simulates depth even when the surface the texture is on is completely flat, and is used in most modern games. It is enabled by default.
Some surfaces are reflective, such as glass and water. There are three settings available for this, one for liquids, one for blocks, and one for items. All three would have four quality settings, from disabled to high, and would affect the resolution of the reflection, as well as the quality of the distortion filter applied. Liquids and blocks are set to low by default, while items are set to medium by default.
This applies a smaller resolution of a texture on far-away blocks. It is similar to the current mipmaps setting, going from disabled to four levels of mipmapping. Blocks far enough away to be using mipmapped textures would have their bump maps disabled.
Connected Textures and Random Textures
The game would come with connected textures support, accomplished by making a folder with the same name as the base texture, and including all the textures as well as a text file that says how they all connect. There would also be random textures available, whose usage are also specified in the text file. They are enabled by default.
Well, I think that’s it. If you can think of anything else, I might add it. Keep in mind that these mechanics will require a more modern graphics card to play the game, though if your card is old, you may be able to get by if you set everything to the lowest possible quality. Now that we’ve got the background stuff out of the way, though, we can now move on to the meat of this series, actual game mechanics! Stay tuned for part 3!
You must be logged in to reply to this topic.