List of important system features to ready Minetest
I decided to make another Minetest list today, this time about the features and mechanics that haven't been implemented yet, and which I consider to be important. I already checked the TODO wiki and many of those points aren't there, nor did I see them discussed a lot in the past, so I'm posting them here.
Basically, these are the features I believe Minetest will need in order to be considered ready, and will eventually be required. I listed them in order of importance, top being most important. If the developers wish, feel free to use this for official reference, if it matches what most users agree with. Note that I'm not trying to say what must be done and what not, and I made this to help keep focus on what's important in terms of system features. I know they can't be done overnight, though I'd love to see the top ones being implemented soon at least.
- Sound: Already discussed a lot and on the TODO list, so no need to say more. I believe this is the most important feature that Minetest needs to have next. (implemented)
- 3D players, mobs and animals: Also heavily discussed, so I won't go into more detail. I believe this is the next important feature in order to give Minetest the realism and quality it needs. One detail I wish to highlight: I know some people are worried that models would affect performance, or they simply prefer sprites. Which is why I suggest making meshes a setting, and giving each item both a 3D model and 6-way sprite set. That way, people can choose and everyone is happy. (implemented)
- Smooth daytime cycle with sun and moon: This was almost done a while ago, but IIRC the implementation was bad so it never made it in. Cycling between 3 fixed times of day (with no visible sun and moon) looks very bad, and this is the next thing I consider an emergency. (implemented)
- Menu: I believe Minetest really needs a real menu, with a skinned GUI and all important settings. The only way to configure Minetest is to edit the configuration file before starting it up. The first menus I think we need are a "Controls" menu for changing keybinds, and a "Video" menu for changing things like draw distance, smooth lightning, renderer, brightness, view bobbing, etc. I also believe inventories need to be better. The inventory / chest / furnace windows need a skin to look nicer, and the furnace also needs a bar to indicate fuel and progress (rather than a "Furnace is active: **%" text floating when you look at it).
- Realistic physics for players and items: The next change I consider important is giving dropped items, players and mobs correct physics. Right now, items barely fall to the ground if placed on walls, while players maintain no inertia, have no acceleration, and just move when pressing a movement key. Players should only accelerate when they are touching the ground, and maintain velocity in the air, rather than walking on air and stopping instantly when you let go of the button. Swimming is also basic, and the player stops in place when touching water rather than sinking in. Lastly, when dropping an item from your inventory, I'd prefer to see it thrown in front of the player like Minecraft, rather than dropped under him. (implemented)
- Mined blocks dropping to the ground: When mining a block in Minetest, that block appears in your inventory. I believe that's too simple and unrealistic, and will also be a limitation later on (eg: When TNT mining will become possible). I suggest doing this like in Minecraft, though a different idea is welcome if it's good. This means that when you break a block, a smaller version falls to the ground, which the player has to walk over in order to pick up. (mod exists but is not upstream)
- Weather: Someone already attempted this, as seen here. It looks nice, and I'd love to see some rain and snow by default. My suggestion would be to make default weather in LUA, so people creating custom worlds can make their own weather.
- Texture animation: Flowing water is already on the TODO list. But apart from that, I believe support for animating textures in general is needed. This can already be done in LUA by changing the texture on a surface every few ticks, which is good for making the furnace entrance red while active, but bad for constant animations. My suggested implementation is a LUA hook for items, in which you define a group of textures to loop between, the duration of each texture, but also a transition rate. Being able to fade smoothly will likely be important in order to achieve things like ripples on still water (same as MC). (implemented)
- Particles: Particles will eventually be needed for good quality. In Minecraft, they appear above torches, when mining blocks (based on the type of block broken), and in other circumstances, which I'd also like to see in Minetest. (implemented)
- Post-processing: This goes toward the bottom of the list. Although the normal Minecraft doesn't have this, many clones implemented post processing effects, which greatly extend the beauty of the world. I believe Minetest could nicely use some too... such as bloom / HDR, depth of field, reflective water, gloss and bump mapping, motion blur, and anything else that works. Obviously as optional settings. Irrlicht should have common shaders for this, so I imagine it would be easy to add some post-processes later on. If anyone wants a feel of how they'd look like, here are some videos from another project called Terasology: video 1, video 2. (shader support now exist but can't handle post-processing yet)
I'll keep the list updated in case there are any changes. I'm not including mods and mobs here, since they're related to gameplay and something people will make in time, thanks to Minetest being possible to mod. Let me know what you think, and if you have other suggestions or disagree with some I posted.
Basically, these are the features I believe Minetest will need in order to be considered ready, and will eventually be required. I listed them in order of importance, top being most important. If the developers wish, feel free to use this for official reference, if it matches what most users agree with. Note that I'm not trying to say what must be done and what not, and I made this to help keep focus on what's important in terms of system features. I know they can't be done overnight, though I'd love to see the top ones being implemented soon at least.
- Sound: Already discussed a lot and on the TODO list, so no need to say more. I believe this is the most important feature that Minetest needs to have next. (implemented)
- 3D players, mobs and animals: Also heavily discussed, so I won't go into more detail. I believe this is the next important feature in order to give Minetest the realism and quality it needs. One detail I wish to highlight: I know some people are worried that models would affect performance, or they simply prefer sprites. Which is why I suggest making meshes a setting, and giving each item both a 3D model and 6-way sprite set. That way, people can choose and everyone is happy. (implemented)
- Smooth daytime cycle with sun and moon: This was almost done a while ago, but IIRC the implementation was bad so it never made it in. Cycling between 3 fixed times of day (with no visible sun and moon) looks very bad, and this is the next thing I consider an emergency. (implemented)
- Menu: I believe Minetest really needs a real menu, with a skinned GUI and all important settings. The only way to configure Minetest is to edit the configuration file before starting it up. The first menus I think we need are a "Controls" menu for changing keybinds, and a "Video" menu for changing things like draw distance, smooth lightning, renderer, brightness, view bobbing, etc. I also believe inventories need to be better. The inventory / chest / furnace windows need a skin to look nicer, and the furnace also needs a bar to indicate fuel and progress (rather than a "Furnace is active: **%" text floating when you look at it).
- Realistic physics for players and items: The next change I consider important is giving dropped items, players and mobs correct physics. Right now, items barely fall to the ground if placed on walls, while players maintain no inertia, have no acceleration, and just move when pressing a movement key. Players should only accelerate when they are touching the ground, and maintain velocity in the air, rather than walking on air and stopping instantly when you let go of the button. Swimming is also basic, and the player stops in place when touching water rather than sinking in. Lastly, when dropping an item from your inventory, I'd prefer to see it thrown in front of the player like Minecraft, rather than dropped under him. (implemented)
- Mined blocks dropping to the ground: When mining a block in Minetest, that block appears in your inventory. I believe that's too simple and unrealistic, and will also be a limitation later on (eg: When TNT mining will become possible). I suggest doing this like in Minecraft, though a different idea is welcome if it's good. This means that when you break a block, a smaller version falls to the ground, which the player has to walk over in order to pick up. (mod exists but is not upstream)
- Weather: Someone already attempted this, as seen here. It looks nice, and I'd love to see some rain and snow by default. My suggestion would be to make default weather in LUA, so people creating custom worlds can make their own weather.
- Texture animation: Flowing water is already on the TODO list. But apart from that, I believe support for animating textures in general is needed. This can already be done in LUA by changing the texture on a surface every few ticks, which is good for making the furnace entrance red while active, but bad for constant animations. My suggested implementation is a LUA hook for items, in which you define a group of textures to loop between, the duration of each texture, but also a transition rate. Being able to fade smoothly will likely be important in order to achieve things like ripples on still water (same as MC). (implemented)
- Particles: Particles will eventually be needed for good quality. In Minecraft, they appear above torches, when mining blocks (based on the type of block broken), and in other circumstances, which I'd also like to see in Minetest. (implemented)
- Post-processing: This goes toward the bottom of the list. Although the normal Minecraft doesn't have this, many clones implemented post processing effects, which greatly extend the beauty of the world. I believe Minetest could nicely use some too... such as bloom / HDR, depth of field, reflective water, gloss and bump mapping, motion blur, and anything else that works. Obviously as optional settings. Irrlicht should have common shaders for this, so I imagine it would be easy to add some post-processes later on. If anyone wants a feel of how they'd look like, here are some videos from another project called Terasology: video 1, video 2. (shader support now exist but can't handle post-processing yet)
I'll keep the list updated in case there are any changes. I'm not including mods and mobs here, since they're related to gameplay and something people will make in time, thanks to Minetest being possible to mod. Let me know what you think, and if you have other suggestions or disagree with some I posted.