List 3 things that you think should be prioritised in the medium-long term
These are typically higher-level goals rather than individual features.
The purpose of this is to produce a document to communicate to contributors what certain things are more likely to be accepted, as they're wanted sooner. It's in no means a strict roadmap.
Bug fixes & internal cleanup
NetworkPacket and direct iostream read/write functionsUnitSAO(these are mostly short-term)
I fear that the things you listed may be a bit too specific and technical, but some meaning can be derived from them I guess. I've not done this before. There's probably a balance between being too specific and not specific enough
If I could think of less specific goals I would have listed those instead.
In other words, basically what rubenwardy wrote :)
My ideas:
Here is my mustard:
I see a lot of odd or extremely specific things
Problem: Minetest looks like a game thrown together in a couple of hours with opengl and glut, there is not a defined visual style, there some inconsistencies, some outright wrong decisions regarding visual ergonomics and readability. There is not a lot of thought put on making things look decent, we are lucky if something is just ugly and not outright annoying to use (for example: hard to read chat with a bland color, hard to see crosshair with poor contrast, hard to see and poorly designed nickname labels, the unintuitive register and login UI)
The options provided in the menu UI are very limited.
This is pushing people away from the game before they even connect to a server, I have received direct feedback about this from users.
Proposed solution: take advice from what other games do, and try to achieve something better than the absolute bare minimum when dealing with UI elements (I'm citing again the chat situation, whose changes got some resistance, it simply looks bad to the point of being useless). The game should not look like a tech demo from 2002.
I'd like to see focus in changing all of the things that were probably made years ago by some coders in a couple hours by splashing text or UI elements on the screen giving zero thoughts about user experience.
Commercial games spend a huge amount of resources on making things look good, consider that advice, this is what players expect and the result is often the best result.
Minecraft is the biggest reason Minetest is relevant, provide a decent migration path from Minecraft to Minetest, Minecraft does some things wrong but a lot of things right, take note of those and focus on them all, this is what player are familiar with and expect from a quality voxel game. Do not ignore minecraft, it's outright stupid to be completely unfamiliar with your biggest (if not only) competitor.
Minecraft has proven how much time people are willing to spend modding or developing for a little blocky game, Minecraft almost crafted a whole generation of software developers with its limited, unsupported, reverse-engineered-based modding experience.
An open source game has an enormous potential to catch this momentum. Provide a road as straight as possible for casual modders / contributors to become active in the project, provide good documentation for contributors.
When a pr is ignored for weeks a potential future core dev is lost, contributors risk to be burnt out rebase after rebase, or while having to fight for decent features to be merged. Having a pull request stalled for months is one of the worst indicators of an open source project's health.
Reconsider the "one approval" thing for trivial PRs, merge right away the simple contributions that are evidently free from any side effects. Do not argue against proposed changes when the thing they are trying to change was bodged together or poorly designed in the first place (example1, example2, example3). It's a game, not a production web server, minor breaking changes are welcome if it means that something is 10% better and has a 10% more chance of keeping an user active on Minetest. A lot of the game feels unfinished and there should be pressure to change all of this disregarding the consequences, until a sufficient quality is reached.
I randomly found some arguments and evidence about my first point, on another forum:
https://reddit.com/comments/j4luac
I've been working on the UI for IsoPutt for almost 4 months now. It's tedious, and can be hard to stay motivated!
But I've seen first hand how much impact this has had on the way people perceive the game. When you have an ugly menu, you kind of start "in debt" when the player makes it to the gameplay. The gameplay has to overcome that "menu debt" before it can be judged on it's merits. When you have a nice menu, players seem to have a less critical, more open, mindset.
I've noticed play testers playing longer, and expressing more joy now that I've improved the menu systems.
1) Better main menu (better usability, but also better-looking. Only a full redesign can be the answer IMO)
2) Completely review entities and go through all the entity/object-related issues. Objects still have, in my eperience, a lot of problems and bugs. You can't spawn entities reliably. Entity collisions seem to be unreliable (I often have mobs clip through semi-thin walls). There's a general lack of movement features (sorcerykid contributed a PR). Minetest in general is not happy when there's a large number of entities. There are no speed optimizations (to my knowledge) for simple entities that never move. There's an odd and annoying feature mismatch between non-player objects and player objects. The list goes on, and I believe this is a major reason why mobs suck so much. Maybe a big "meta issue" for entities should be created, to have all entity-related problems in one place
3) Rip out Minetest Game once and for all
I will add extra points to this comment as i think further about this:
For my part:
@SmallJoker i don't understand your point about network packer, we need to serialize everything inside it, or if you want a real change you can try protobuf which is an industry standard in network protocols nowadays, but that requires a breakage
I would like to see:
A very general summary of the most popular ideas so far:
| Roadmap Idea | Supporters |
|---|---|
| UI Improvements/Main Menu | 8 |
| Rendering/Graphics improvements | 7 |
| Internal code refactoring/changes | 5 |
| Entity improvements | 5 |
| Content-related changes | 4 |
This shouldn't be taken as what the roadmap items are specifically, but just as a general idea of what people think should be on the roadmap. It's very general as ideas had to be grouped, e.g. content distribution was grouped with removing MTG. The final roadmap should be more specific.
Other ideas are only supported by one or two people (unless I missed something), so I didn't put them on this list.
If I had to choose just one improvement, it would be entities. The current entity is very laggy, both for the client (visual) and to the server. Making them less heavy would mean that a lot of things in minetest could be accomplished that are currently unfeasible due to lag reasons. UI improvements are great, yes, but they don't change gameplay. And since particles are currently just 2D entities ...
I would also like to see the gnarly list of get_bone_position-related problems fixed one of these days.
Graphics are nice, yes. But eye-candy isn't exactly the most important thing in minetest's current position. I remember the days when you could run minetest on a Raspberry Pi and even multiple local clients would have no troubles with lag. Minetest needs optimization and refactoring before we get 'water reflection' and fancy stuff such as this. Moving out of Irrlicht is certainly one of the things that needs to happen, or most of us won't see any of these fancy graphics without getting a new PC.
When I say graphics improvements, I don't mean fancy graphics - I mean fixing broken and badly performing rendering. See z-order glitches, slow particles, and such. On the hierarchy of needs, fancy graphics comes later
On reflection I agree with the entity-sentiment (laggy, collision is slow and buggy).
• Better entities
• Detaching from irrlicht
• New main menu
If I may, I'd vote on internal code refactoring/changes because other stuff depends on it.
Let's take those entities, some prerequisites to start working on improving them:
@TheTermos Can you elaborate on your second point?
In short: clients would ask the server politely to move their players for them instead of doing the move themselves and just telling the server authoritatively their whereabouts.
One problem with current solution described here: #9806,
but there are more, e.g. hackability.
- increase position precision to 64 bit - this change probably affects most code files
Hmm, but why would you need so high position precision? I would suggest to increase maximum up to 32 bit. The current precision is 16 bit (if I don`t mistake).
- increase position precision to 64 bit - this change probably affects most code files
Hmm, but why would you need so high position precision? I would suggest to increase maximum up to 32 bit. The current precision is 16 bit (if I don`t mistake).
That is, change entity position from 32 bit (float) to 64 bit (double) to stop inaccuracies at high values, not the size of the Minetest world.
Properly thread your engine so it scales ;)
Newly updated chart:
| Roadmap Idea | Supporters |
|---|---|
| Entity improvements | 9 |
| Main Menu/UI Improvements | 9 |
| Internal code refactoring/Irrlicht detachment | 8 |
| Rendering/Graphics improvements | 7 |
| Content-related changes | 4 |
I think that, since the discussion seems to be winding down, we can probably make a roadmap out of what we have.
v-rob,
It seems you are not suggesting this, but your previous comment can be misinterpreted, so i should clarify to everyone that this roadmap will be decided by the core devs, not by democratic vote.
However it is good to have input from non-core-devs in this issue and we will consider their comments.
Perhaps there should be another table created from core dev suggestions?
Also, tagging the only active core dev who has not yet commented @pyrollo
No, wasn't suggesting that at all. Core dev specific list:
| Roadmap Idea | Supporters |
|---|---|
| Rendering/Graphics improvements | 5 |
| Internal code refactoring | 3 |
| UI Improvements | 3 |
| Entity improvements | 2 |
| Content-related changes | 2 |
Nice to see where our priorities lay
On Wed, Oct 14, 2020, 11:08 AM Vincent Robinson notifications@github.com
wrote:
No, wasn't suggesting that at all. Core dev specific list:
Roadmap Idea Supporters
Rendering/Graphics improvements 5
Internal code refactoring 3
Main Menu/UI Improvements 3
Entity improvements 2
Content-related changes 2—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/minetest/minetest/issues/10461#issuecomment-708466354,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQE7PPR7KAFI2K7BELYQFCDSKW5HZANCNFSM4SDFESZQ
.
For my part:
Im not really knowing thing about minetest is buikd:
• Shaders: water reflections, better lighting
• new liquid concept
• support for other languages (Ich möchte endlich ß benutzen können)
I think we should wait longer (perhaps another 2 weeks?) to hopefully get some input from the remaining active core dev @pyrollo
Although long inactive i will also tag the remaining engine core devs @celeron55 @sofar @ShadowNinja
Sorry, been away for a few weeks.
I have many though about what could be changed in minetest, unfortunately they almost always end up in an incompatible stuff (map storage, light management...). Focusing on compatible stuff:
Ingame graphics: I have no clear idea how to improve that but Minetest looks more and more as an old fashioned game. I feel moving toward an Irrlicht separation would have two benefits: more code genericity, be able to switch to another engine.
Code organization: There is to much imbrication making evolution difficult (example: liquid management in map management). I once started to work on a threaded map management (save thread, mapblock mutexes) but it was impossible. Also some source files are obese.
Game generic: There are still too many hardcoded game related stuff in engine: liquid management (once again), sky (improved but still limited), mapgen, and maybe more.
I have many though about what could be changed in minetest, unfortunately they almost always end up in an incompatible stuff (map storage, light management...).
Please focus on incompatible stuff, we don't need a shitty but backwards compatible game, we need a good game, it's not a production web server
Thanks
EDIT: it's not meant to you personally pyrollo, it's just this general idea of avoiding breakage that's just wrong, minecraft breaks stuff every year and nobody cares if the end result is a better product
Please focus on incompatible stuff, we don't need a shitty but backwards compatible game, we need a good game, it's not a production web server
I agree with you. I dream of a MTv6 without worrying about compatibility but, there is a risk. It would be awful to end up with a badly maintained MTv5 and an incompatible and incomplete MTv6 in parallel.
EDIT: it's not meant to you personally pyrollo, it's just this general idea of avoiding breakage that's just wrong, minecraft breaks stuff every year and nobody cares if the end result is a better product.
No pb, I clearly understood :)
Performance, stability.
You can code your way around most issues in the engine, but not if the engine screeches, crashes, burns and cries for mercy when you try to do the most basic things. The draw distance is abysmal, the framerate doesn't match the visuals, there are visible holes in the map where there shouldn't be any, things that should be culled are still being drawn, I/O is blocking the lua server step, the emerge queue is choking, the client discards nearby blocks only to re-request them over and over, entities are not guaranteed to load on time, and raycasts fail due to obscure reasons.
All the pie in the sky features are worthless if they're built on a foundation of fail. I try to fix what I can but we need more hands on this deck in particular. Formspecs can wait, there isn't much wrong with them. Anything that can be solved with luajit and some creativity should be put on hold to pay back all the tech debt. 5.4 is very stable compared to 5.0 but there's a lot left to do.
6.0 could be the breaking do-everything-right version (with less hardcoding in particular) but work on it shouldn't even begin until 5.x is truly no-bullshit stable.
I have many though about what could be changed in minetest, unfortunately they almost always end up in an incompatible stuff (map storage, light management...).
Please focus on incompatible stuff, we don't need a shitty but backwards compatible game, we need a good game, it's not a production web server
Thanks
EDIT: it's not meant to you personally pyrollo, it's just this general idea of avoiding breakage that's just wrong, minecraft breaks stuff every year and nobody cares if the end result is a better product
@Kezii Correction: This is not meant to be a full game, it's a project with the sole purpose of being a game engine for games made by the community.
Even took a screenshot of the home page image to confirm.
https://cdn.discordapp.com/attachments/306656385754464258/768217246057103420/Screenshot_at_2020-10-20_16-58-42.png
In other words what we really need is a clean/functional/optimal game engine to work with in order to make amazing games for this engine.
Regarding to compatibility, compatibility shouldn't be a focus if this project keeps encouraging users to update their clients and pushing more features for newer client versions which leads to possible incompatibilities for older clients.
1.Support ime input method(Many Asian languages will be able to input,such as Japanese ,Chinese, Korean and so on.)
2.More emphasis on performance, users can selectively move part of the rendering calculation to the GPU.
3.Better shaders (water reflection, dynamic shadows, PBR)
(Even ray tracing like "seus PTGI")
@Kezii Correction: This is not meant to be a full game
That doesn't make any difference whatsoever, I could have been referring to any game that is supported by minetest, if I want a good "game", and that game's code is (overall) 95% contained in the minetest engine, it's minetest's job to be good for the game to be good. Final users click the "minetest" icon to play a game, even if you delude yourself in thinking that minetest's only users are game developers.
The points discussed in this thread, apart from internal code refactoring, are all going to have an impact on final games, so it's irrelevant if minetest ships a game or not. Why are you even telling me this
Please focus on incompatible stuff, we don't need a shitty but backwards compatible game engine, we need a good game engine, it's not a production web server
I think this is what they think you should have said?
Just thought I would chime in on this.
It would also nice to have a Minetest port based on WebGL so that you could play minetest in a browser and give new players a “free trial”, because many people with windows really don’t like to install things.
Or try another rendering engine (like OGRE-next)
It will bring minetest support for input methods (IME) and more rendering methods (like gles3 and Vulkan and driectx11)
It also supports webgl well and is IOS compliant.
* high level API for NPC in games (yeah the NPCs is what make the game live :) )
The right-click patch is already available... please review, now. Thanks. :-)
pyrollo,
Game generic: There are still too many hardcoded game related stuff in engine: liquid management (once again), sky (improved but still limited), mapgen, and maybe more.
Jut wondering how (apart from Mapgen V6 which i would love to remove) mapgen is 'hardcoded game related stuff'?
My brainstrom, my neurons are actually going to explode:
General:
Here's a nice item for the list, only if you're serious about trying to make it an engine:
EDIT: it's not meant to you personally pyrollo, it's just this general idea of avoiding breakage that's just wrong, minecraft breaks stuff every year and nobody cares if the end result is a better product
@Kezii
I think this is the worst think on Minecraft.
Different Minecraft modding APIs, mods not working between versions, ...
You always have to use another MC version for different mods, not all mods are updated, ...
This is not the way Minetest should/can go.
There are not so many developers and users in MT as MC has. If you break their work with every MT version, they will just stop doing it.
Jut wondering how (apart from Mapgen V6 which i would love to remove) mapgen is 'hardcoded game related stuff'?
Sorry @paramat I missed your post.
I had tree things in mind:
Most helpful comment
A very general summary of the most popular ideas so far:
| Roadmap Idea | Supporters |
|---|---|
| UI Improvements/Main Menu | 8 |
| Rendering/Graphics improvements | 7 |
| Internal code refactoring/changes | 5 |
| Entity improvements | 5 |
| Content-related changes | 4 |
This shouldn't be taken as what the roadmap items are specifically, but just as a general idea of what people think should be on the roadmap. It's very general as ideas had to be grouped, e.g. content distribution was grouped with removing MTG. The final roadmap should be more specific.
Other ideas are only supported by one or two people (unless I missed something), so I didn't put them on this list.