The future of Minetest

bzt
Member
Posts: 217
Joined: Tue Sep 24, 2019 14:26

The future of Minetest

by bzt » Post

Dear All,

I'm now playing MT with my boys for years now, and I'm concerned about its future. Using my project leader and management experiences I'd like to sum up the problems I've identified. Please don't take this list as offense, quite the contrary, I would like to help with this list. I'd like to hear the opinions of other players too so that the MT developers can know where to put focus, which problems are the most urgent to solve, because they are clearly lost right now.

I kindly ask everybody only to post constructive criticism, I don't want to start a flamewar, rather to create a thread to prioritize things to do and suggestions on possible solutions (the emphasis being on solutions).

Here's my list in order of importance (most problematic first, in my humble opinion):

1. no concept for Lua bindings and API, incompatible changes all the time
Every time I update the Minetest Engine, games and mods broke, and I have to face a big pile of random Lua script crashes. I'm not sure why this is happening, but I suspect it's because the lack of (proper) tests and consistent API. Even the Minetest Game is keep crashing after the latest MTE upgrade :-( (something about lua entity on_step handler missing a property).

2. incompatible changes in the UI
I always get dozens of errors after an update about non-existent or missing configuration options. I think options should be stable and consistent, only rarely changed, and even then with backward compatibility in mind. Or at least there should be a way to update configuration files along with the content. I can image that many update problems can be tracked back to incompatible configuration files. Here the biggest problem is, you cannot fix this using the UI alone, you have to delete all of your configuration files manually and set up and reconfigure everything from the ground up.

3. it is not possible to update contents consistently
There's no option to list contents to be upgraded for the installed/updated MT engine. I mean when I upgrade the MT engine, then I cannot get a list of contents that needs to be upgraded to avoid crashes. There's an "update" button next to the entries, but I have to look through more than 150 pages, and there's no guarantee that an upgrade will work with the certain MTE version I have. I guess there should be a "minimum engine" (and an optional "maximum engine") version information in the content's meta info file, and the UI should filter the contents using the current MTE version. It would be great to add an "Upgradeable" option to the search select box (right now you can only filter for All, Game, Mods, Textures etc. but not for the contents that have the "update" button).
A very annoying problem, that with the latest MTE update, MTG disappeared from the list, so I cannot update it any more (and the latest MTG I have keeps crashing with the latest MTE).

4. MT engine has no main concept, it's development completely ad hoc
I think the reason behind the unmanageable number of issues (about 1000 open issues on github as of writing!!!) and the insanely long time for PRs to be merged (sometimes years!!!) lies in the lack of a clear concept. If there were a clear vision for MT, it would be easier for the developers to decide if a PR aligns with MT's goal or not (by that I mean both the PR writers' and the PR mergers' life would be simpler). There would be probably less problems with the merged PRs as well, meaning much less open issues in the first place.

5. obsolete engine under the hood
The last point, because I'm not entirely sure how much of the problems are caused by the obsolete and non-maintained irrlicht MTE built upon. I guess fair bunch of problems can be lead back to the fact that MTE must be compatible with irrlicht which is not maintained to keep up with latest OS versions, but I can be wrong about this one.

Now I would like to collect suggestions how to come around these issues, because I feel if everything goes on as it is now, then the future of MT is at stake.

Cheers,
bzt

User avatar
eyekay
Member
Posts: 67
Joined: Fri Feb 07, 2020 10:49
GitHub: Azl-Eyekay
In-game: eyekay49
Contact:

Re: The future of Minetest

by eyekay » Post

(Note: I am very inexperienced in both modding and playing survival, don't take me too seriously)
1. I usually make sure to update the games/mods to their latest version when updating the engine. And if MTG is crashing it means you aren't on the version which comes with the engine, which means you have a modded version of MTG. What I do is make a modpack in MTG where I add all the other mods not in vanilla. When updating MTG I simply copy the modpack

2. Never faced this somehow, nothing to say

3. Agree with everything, especially the upgradable filter. I had actually made a topic on a very similar topic here viewtopic.php?f=3&t=24650 however ContentDB has a bigger problem namely dependency resolution. And I would definitely like some way to make a script to run contentdb commands

4. Nothing to say, but hopefully with the feature freeze of MTG the development should now be concentrated on the engine instead.
<a href=about:blank> My projects</a>

User avatar
Krock
Developer
Posts: 4649
Joined: Thu Oct 03, 2013 07:48
GitHub: SmallJoker
Location: Switzerland
Contact:

Re: The future of Minetest

by Krock » Post

1. About "on_step": Please trust me that this was the sanest and easiest way to implement a new API function. Problem there is that mods that overwrite the function did not expect more inputs, resulting in data loss when used again in Minetest's builtin code.
Disable all mods, update Minetest Game and re-enable mods until you find the victim - or look at the stack backtrace to figure out the source of the problem.

2. Sorry, do you have an example case? Are you talking about formspecs, HUDs, or just the inventory?

3. Soon (TM) possible, see https://github.com/minetest/minetest/pull/9995
Please keep in mind that ContentDB is a new feature and will be extended in the future. Though I'd recommend to clone via git and run a script to update them automatically - sometimes mod authors (including myself) forget to set up an automatic update (or perform a manual update).

4. Suffer is deep. Disappointment is immeasurable.

5. You'd spend at least a few months migrating MInetest to another framework. Regarding Irrlicht - here's our own fork: https://github.com/minetest/irrlicht/
Look, I programmed a bug for you. >> Mod Search Engine << - Mods by Krock - DuckDuckGo mod search bang: !mtmod <keyword here>

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: The future of Minetest

by ShadMOrdre » Post

Krock,

Thanks for answering this post in with professionalism!!!

Regarding Point #2, I think bzt refers to the actual minetest.conf file. It seems that when I upgraded from MT v5.1.0 to 5.2.0, a limited few options were read from minetest.conf. None of my mapgen settings transfered easily, with the changes to caves and other things in mgv7. I had to work hard at getting a working mgv7 world to generate as before. Many of the config options in minetest.conf have been changed dramatically, from v0.4.16/17 to 5.0 and on to 5.1 and now 5.2. I have not looked at the recently released 5.3, but can only imagine with the further changes to the mgv7 mapgen, and other changes to the layout, name, or option from either the minetest.conf file or the menu interface that shows them. There is no sanity in trying to reconfigure MT when I essentially have to not only reset options, but learn new names, or their place in the menu interface, and so on. I also can't see any default values, or configured values, for that matter, when viewing the non-technical names of said options, which seems to simply be useless otherwise.

Again, thanks for the feedback.


bzt,

In adding to what Krock has stated, I'd like to add that MT, as a rather niche OSS project, doesn't really have the cooperation amongst modders that other communities might have. There is a rather dedicated group who maintain a limited number of "standard" mods, and there are server ops who also maintain the mods that their server is running. Outside of these two groups, unfortunately, there are too many individuals, (self included), who are either working on a specific project, working to achieve a certain functionality, or are otherwise just making mods for the joy of it. There has been talk about collaboration, but it usually ends there, as most of us do have other obligations, most of which are more important.

This is not to sound or be discouraging. This also happened in the Opensim community, at some point. That community eventually become only the die hard fans and users, and even that faded as new things came along. Some games are built to last. MT is certainly one of those games, mainly due to the ability to mod, but also because it continues to be available on the PC, itself an evolving culture of "latest / greatest / newest / killer-app -ness".

Shad

bzt
Member
Posts: 217
Joined: Tue Sep 24, 2019 14:26

Re: The future of Minetest

by bzt » Post

Hi,

Okay I see my message did not get through. It is not about a particular problem, but in general about the fact that every time I update MTE the games and mods broke.

So this topic is about the problems of MTE in general, and how we could help to improve Minetest to avoid these annoying issues in the future. The "big picture" so to speak. Hope this is now clear.

But just to satisfy your curiousity and because I appreciate very much that you're trying to help, here are some specific issues and details.

1. I don't use modded MTG, only vanilla.
So far every time I've updated MTE, I also updated MTG. With the latest version I can't do that, because MTG is simply missing from the list (I only see Minetest Life and Minetest Extended, but not Minetest Game). I don't play MTG, I use it to check MTE compatibility after upgrade.
The exact error btw:

Code: Select all

ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'default' in callback luaentity_Step(): /usr/share/minetest/builtin/game/item_entity.lua:198: Collision info missing, this is caused by an out-of-date/buggy mod or game
(Again, MTG disappeared from the list on the UI, so I cannot click on its update button any more.)

2. it is very common that there are tons of config errors after update.
I can't and don't want to name anything in particular, because this spread though almost all mods. After an MTE update and clicking on all mod's update button in the content list, I always get errors. I don't remember any update after which the game console wasn't full with red messages... But just for example:

Code: Select all

ERROR[Main]: Invalid setting type "noise_params" in /home/bzt/.minetest/mods/valleys_mapgen/settingtypes.txt "vmg_noise_1 (#1: Base ground height) noise_params -10, 50, (1024,1024,1024), 5202, 6, 0.4, 2"
or

Code: Select all

 ERROR[Main]: generateImage(): Could not load image "default_tool_mesepick.png" while building texture; Creating a dummy image
And similar messages. Again, these are just examples! The one @ShadMOrdre wrote about minetest.conf is another good example.

I'm not interested in solving these in particular, I'm interested in finding an universal solution so that updated mods won't report errors like these in the future. Linking mod's versions to certain MTE version could improve this considerably. Having some method to convert mod's old files to the new ones could be another (would be the mod writer's responsibility to write that hook if they change their files in an incompatible way, MTE would just call the hook on "update" button press).

3. thanks @Krock, that's a really good news indeed! I only use the UI to update mods. I think except some very hardcore power users, all MT users do this. About the git sync tip, thanks, but I'm not interested in cutting edge features, my concern goes for a playable and stable game, because it's mostly my boys who play with MT. So I aim at the latest stable version, with as few crashes as possible :-) So far MCL2 was the best at delivering this, all respect to Wuzzy! I had serious issues with Lord of the Test, Farlands, Castrum, etc. One game which my boys liked a lot, The End is actually unplayable with latest MTE, and I had to spent days to fix all Lua issues myself. I hope a solution to avoid randomly crashing games after any update is an achievable goal.
Just for the records, the most common error messages after any update is about Lua nils, about 90% in my experience. That's why I rated Lua API incompatibility issues as the first.

Finally about irrlicht, as I've said I don't know how much of the problems are caused by the fact that MTE is based on irrlicht. But I put this as the last point because I guess this is the least relevant. I wouldn't mind b3d only models in mods and fake-software-hacked-lights or other missing fancy-eyecandies if the game is otherwise enjoyable. I totally understand that replacing irrlicht under the hood is essentially a rewrite-from-zero, and I'm hoping most problems could be solved without.

Cheers,
bzt

bzt
Member
Posts: 217
Joined: Tue Sep 24, 2019 14:26

Re: The future of Minetest

by bzt » Post

ShadMOrdre wrote:
Mon Aug 17, 2020 20:34
I'd like to add that MT, as a rather niche OSS project, doesn't really have the cooperation amongst modders that other communities might have.
That's okay, and I understand. I'm not proposing a fully-blown cooperation amongst modders, no! It is one of the best feature of MT that so many games and mods exists, and everyone can create their game and world!

What I'm proposing here is, to let's talk about how could the MT engine help modders with updates and compatiblity. This includes things like making the UI more user friendly ("upgradeable" filter), but also things like adding Lua hooks on both mod and MTE updates, converting config files on updates etc.

Basically it's about what needs to be done to minimize crashes after updates.
Spoiler
My fear is, that if MTE does not solve these broken backward compatibility issues, then this and the sheer number of open unresolved issues on github will frighten away new potential modders and will break the enthusiasm of current modders, so there will be no new contents. Unfortunately we know what happens with mods that do not keep up with MTE's ever changing Lua API. In short, I'm worried about the future.
Cheers,
bzt

User avatar
Festus1965
Member
Posts: 4181
Joined: Sun Jan 03, 2016 11:58
GitHub: Festus1965
In-game: Festus1965 Thomas Thailand Explorer
Location: Thailand ChiangMai
Contact:

Re: The future of Minetest

by Festus1965 » Post

bzt wrote:
Mon Aug 17, 2020 14:33
Dear All,
Thanks - you see some others than me ...

* I still have a lot of mismatched clients try to connect ?
Question wrote:What for you changed the protocols for 3 ? times now, when still allow the older ones to be used (or support them in server-list)
* We just had another break in compatibility from 5.2.0 to 5.3.0
Question wrote:I was testing the 5.3.0 RC1 early with ... and at that point there was NO ANY pointing onto this basic changes that concern a lot of mod, even not allow me anymore to load my actual running map with 5.3.0 as of some new rules ...
* My main source is still something with *.minetest.net ... YOU told me often enough already !
wondering wrote:but github.com and others ARE NOT ... and so far I see a bit a lot of different sources, and ALL not *.minetest.net, and they are to much of them ... sure users will not report back all ... stars, issues as sooo much diff logins
(I showed you how to fix all in one in just 2 weeks ... with gitea.minetest.one)
Human has no future (climate change)
If urgend, you find me in Roblox (as CNXThomas)

User avatar
Pyrollo
Developer
Posts: 385
Joined: Mon Jan 08, 2018 15:14
GitHub: pyrollo
In-game: Naj
Location: Paris

Re: The future of Minetest

by Pyrollo » Post

I totally agree with #4 lack of vision. I hope work will be done soon to fill this lack. It's essential to know what MTE should and should not be, in a detailed way. MTE is supposed to be a generic voxel game engine but is still full of MinetestGame specific stuff.
[ Display Modpack ] - [ Digiterms ] - [ Crater MG ] - [ LATE ]

Termos
Member
Posts: 417
Joined: Sun Dec 16, 2018 12:50

Re: The future of Minetest

by Termos » Post

Pyrollo wrote:
Tue Aug 18, 2020 12:07
It's essential to know what MTE should and should not be, in a detailed way. MTE is supposed to be a generic voxel game engine but is still full of MinetestGame specific stuff.
The way I see it, MT is never going to be a generic engine, the staff isn't ready to confront the part of the community that demands game specific features and in fact they have been granting their requests quite generously so, a moddable game it is, which isn't necessarily a bad thing as long as it isn't falsely advertised otherwise.

So MT, embrace the gameyness and stop pretending to be an engine.

If there's ever to be an MT engine, it needs to be forked, followed by a few months of unrestricted development - cutting out the crap, code cleanup and compression, porting to another render lib, fixing client-server model etc.

User avatar
Zughy
Member
Posts: 301
Joined: Thu Mar 26, 2020 18:23
GitHub: belongs_to_microsoft
In-game: Zughy
Location: Italy
Contact:

Re: The future of Minetest

by Zughy » Post

Can't really say much about it but #4. This is an issue I created a while ago, about creating a roadmap:
https://github.com/minetest/minetest/issues/10057
As a lot of other things, it just lies there.

What Celeron55 thinks of Minetest is basically to create something which designs itself. There is a list of things to do, yes, but it's scattered all around the place. Maybe "Feature A" will be implemented tomorrow, maybe never, who knows. This behaviour is what personally made me distance myself from the engine development even if I truly believe in Minetest and - more broadly - in FOSS; because it's all a huge question mark and it's not worth the hassle. It's a mix of deresponsibility, disrespecting contributors and, in some cases, pretending to be right. In short "it's not a job", and it's clear they don't want it to be time-taking as a job would. And that's fine, but it shouldn't be the default answer for everything.

Choices need to be made. People can't evaluate something, people can't make rough estimates if they don't know where Minetest is going. If someone decides to become a core developer, that someone should be held accountable for what Minetest is or is trying to be. But, it looks to me they don't know either. They just review things, write some code, shrug. Official communications lack too, starting from celeron55 who just pops up every once in a while (even if he, according to his interview, lurks quite a lot. So he's probably reading this message or at least this topic). And don't let me started on core devs ignoring you, as the author asked a flame-free discussion

Honestly, I'm not surprised people try to fork Minetest from time to time. As for me, I've been focusing on my mods and my server only, lurking on GitHub to see what's going on and contributing to the community with new mods and a texture pack. In short, doing whatever I can do with the tools already available, without hanging on the hope to see something implemented.

bzt
Member
Posts: 217
Joined: Tue Sep 24, 2019 14:26

Re: The future of Minetest

by bzt » Post

Thanks for your valuable opinions!

@Pyrollo: you're right, but there's two things here. First, what MTE should be and should not be is exactly what needs to be written down, I agree. About the second part I don't agree 100%, because I think many MTG components (now in MTE) are general enough to serve as a base for other games. I think it's okay to have MTG specific parts, as long as they are not too specific and they can be used elsewhere too. (Here I'm trying to say that MTG is not really a playable game per se, more like a basic voxel environment where you can wander, hope this makes sense.)

@Termos: see my answer to Pyrollo. I agree that MTE is not and should not be just a voxel engine, but I think it shouldn't be an MTG only game either. I think basically how the engine is right now is all right, I don't mean to change its focus. It's just lacking some clear and stable interfaces (mostly between MTE and LUA mods) to help with modding.

@Zughy: wow, too bad that I also missed your issue! I guess if we can discuss and agree with the developers on what each milestone should contain, we'll be on the right track!

Okay, let's now talk about the solutions. I think the first and most important thing is to provide a way to flawlessly update mods (according to @Krock, this is already on the way). Then the next thing is to draw a clear line where MTE ends and where MTG starts. This way it would be easier for future games to see what they can be built upon, and hopefully this would stabilize the API as well a bit. Something that is MTG only, should go to MTG Lua, while others that are common enough to all games should go to MTE.

Opinions?
bzt

User avatar
rubenwardy
Moderator
Posts: 6972
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: Bristol, United Kingdom
Contact:

Re: The future of Minetest

by rubenwardy » Post

Minetest 5.4 will contain an Update All button like so:

Image

I also have a PR open for dependency installation in that dialog, it just needs testing and review.

The reason that mods have been breaking is because of attempts to fix issues with the engine under the surface. A surprising number of mods rely on undocumented behaviour or straight-out bugs, which adds a large amount of risk to any change that could be visible.

I've been taking a quasi-break since the 5.3 release, as I've been feeling demotivated and burned out for quite a while.
pyrollo and v-rob have both just been added as core developers, hopefully that should help things.
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
Zughy
Member
Posts: 301
Joined: Thu Mar 26, 2020 18:23
GitHub: belongs_to_microsoft
In-game: Zughy
Location: Italy
Contact:

Re: The future of Minetest

by Zughy » Post

rubenwardy wrote:
Wed Aug 19, 2020 22:23
I've been taking a quasi-break since the 5.3 release, as I've been feeling demotivated and burned out for quite a while.
Take care man, health first, always
rubenwardy wrote:
Wed Aug 19, 2020 22:23
pyrollo and v-rob have both just been added as core developers, hopefully that should help things.
And this is great!

parasite
Member
Posts: 186
Joined: Sat May 06, 2017 17:45
GitHub: Parasitoid

Re: The future of Minetest

by parasite » Post

Perhaps I don't have much to say and someone will find this post irrelevant or waste of time, but I would like to summarize some things that came to my mind as I read statements posted above. But first I would like to address two points.
rubenwardy wrote:
Wed Aug 19, 2020 22:23
I've been taking a quasi-break since the 5.3 release, as I've been feeling demotivated and burned out for quite a while.
I am sorry to hear that. Thanks to your commitment so far - also thanks to the involvement of many others, of course, but that's not the point - i could enjoy the fun with the minetest.. This app is as good as it is, because you spent some of your time on it. I would like to thank you very much for your hard work. But it is obvious that everyone need a time to rest, to think, for "vacation". I hope you will recharge your batteries of creative motivation soon and - whether or not you direct your future energy back to the minetest - I aslo hope that you will find joy in co-creating complex coding projects again.
rubenwardy wrote:
Wed Aug 19, 2020 22:23
pyrollo and v-rob have both just been added as core developers
Earlier I heard something about plans of geting new core developers and was wondering who the hell do they mean? Here is the answer. Congratulations to both of you, pyrollo and v-rob!

And now I would like to point out that while so many posts and threads in this forum are quite infantile, or very specific on the other hand, regarding specific features, specific code, bugs and screenshots, this one deals with quite important things in an elegant way. It's really nice to see a pretty serious, mature issue under discussion. I hope this discussion is not over yet and can really help in minetest management.

I know that it is difficult to achieve a good result if you do not have a well-defined vision of what you want to achieve beforehand. As far as I understood the interview with c55, especially the part where he described the very beginnings of the minetest many, many years ago - I have the impression that this project exceeded the initial assumptions and expectations. What c55 wanted to show, prove and demonstrated by making the minetest, has already been shown, proved and demonstrated. Now he is proud of what he has achieved, and that his project has attracted so many other active developers. Now the minetest seems to be seen as a mature application and further work on it looks like about making small, cosmetic adjustments.

But is it really so? Couldn't minetest, however, continue to develop qualitatively and become a much more complex and intriguing application? (including rewriting all the code to use something better than irrlight - this seems to be pretty complex, but maybe there is a way that it could be planned and managed?) After all, it has large (as for open software project) human resources involved and perhaps the right vision and better organization of work could push the project much further, towards something much more advanced than it is now. This does not necessarily require "better" programmers, or programmers working with minetest in a full-time, as if it was a well-paid job in a corporation. It is really worth considering whether getting better results is not just a matter of "better" organization and management of the work of volunteers. Evryone are focused on the very personal, individual involvement of the given person in the project. But what if it is possible to define more precisely the goals and necessary activities in which the volunteer could get involved and thus make much better use of his or her limited time? What can be done to better organize and use the involvement of so many diverse volunteers? But this requires a vision of what the minetest should become (and should not be) in the near future. A vision that can be well verbalized, defendable in fervent discussion against counter-arguments, and perhaps even drawn in diagrams.

English is not my native language and I am not sure if what I am writing here is understandable at all, but I just wanted to say that it is good to have some kind of meta-discussions on project organization and management, because maybe changing something in this field, it would make possible to increase the efficiency of specific work on the code, which is, after all, done by many different people (having different skill levels, interests and goals, some of which do only one PR and no longer show up, while others return with varying regularity) during the large time window.

User avatar
runs
Member
Posts: 3225
Joined: Sat Oct 27, 2018 08:32

Re: The future of Minetest

by runs » Post

- Minecraft breaks ALL the mods with every f*king update. LOL. And in case of mod updates, they are all "handmade"! In fact, many good mods are lost over the years, because the developers abandon them or lose interest in them. Minetest in contrast is quite stable with mods, but it has some problems, maybe only when going from 4 to 5, or from 5.2 to 5.3. Minetest rarely breaks mods.

- What a mania that Minetest should be generic. Okay, being generic is good because it keeps you clean of all the bullshit and assorted crap. But Minetest is an engine for a specific type of game: Voxel (OK, Minecraft like, so what's the point of kidding ourselves). It's never going to be a Doom or a Skyrim, even if they can be implemented in some way or another. For example, RPGMaker is for making RPGs or Renpy for Visual Novels. What I mean is that in my opinion the developers should implement Voxel's games functionalities, even specific ones, doing so with the utmost care of course. Minetest Engine is not a C++ Development Tool to program anything, it should be a Visual Basic to make jokes (but fun ones). IMO.
Last edited by runs on Fri Aug 21, 2020 00:08, edited 1 time in total.

User avatar
Festus1965
Member
Posts: 4181
Joined: Sun Jan 03, 2016 11:58
GitHub: Festus1965
In-game: Festus1965 Thomas Thailand Explorer
Location: Thailand ChiangMai
Contact:

Re: The future of Minetest

by Festus1965 » Post

When I saw the automatic updating option page from 5.4 preview ... my first thought was ...

does it recognize and warn when you are on 5.2 and wanna update mods, that are updated for 5.3 ???

As of a rule in MT already: updating has 50% to 50% to solve an older issue, but also to bring you a new one !!!
Human has no future (climate change)
If urgend, you find me in Roblox (as CNXThomas)

User avatar
rubenwardy
Moderator
Posts: 6972
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: Bristol, United Kingdom
Contact:

Re: The future of Minetest

by rubenwardy » Post

The content dialog knows about Minetest versions - it won't show you an update unless it supports the version you're running
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

bzt
Member
Posts: 217
Joined: Tue Sep 24, 2019 14:26

Re: The future of Minetest

by bzt » Post

rubenwardy wrote:The content dialog knows about Minetest versions - it won't show you an update unless it supports the version you're running
This, plus the "Update All" button is just perfect! Thanks a lot! I think there's only one thing left, an optional Lua callback so that the newly updated mods can convert their files to the new formats if they want to. It could be called "postinstall" event hook or something like that, and could receive the mod's previous version string as argument (or NIL should this be the first install). This could be in "postinstall.lua" in the mod's directory for example, separately from the other Lua files of the mod, only parsed by MTE on updates/installs.

With these, all mod update issues can be solved!
runs wrote:Minetest rarely breaks mods.
Sadly my experience is otherwise. After an upgrade my boys always run into troubles just by playing MT (mostly MCL2 which is pretty stable, I give you that). Most of the time these can be fixed by installing a newer version of the game (along with it's packed modules), but sometimes you could download a mod that's written for a newer version of MTE than what you actually have. That's why I'm so glad about rubenwardy's post, because that basically solves the issue. And, of course, there are games that are not maintained any more. For example, I had to fix The End manually because it was randomly crashing (it starts well, looks like ok, but you'll realize that mosters won't come, and after a fix, when you try to make damage with a dwarf's sword it crashes with a Lua error for example etc.).
runs wrote:What I mean is that in my opinion the developers should implement Voxel's games functionalities, even specific ones, doing so with the utmost care of course.
Exactly my thoughts. I think they have already made a really great job doing this, it's just the Lua API needs a little care and standardization (or should I say API-freeze), that's all. Hopefully the new main developers can help with that. It is my intention to help them the best I could in this effort!
GayJesus wrote:I was glad to read Minetest core dev is shifting away from MTG and focusing on engine and bugs. MTG as a clean slate that a 6 year old can modify is gonna be a good thing.
I agree! That should be the focus of MTE. For MTG however I wouldn't mind if it would be a little more than a clean slate, because modders also have the Developer Test "game", which is supposed to be a clean state if I'm not mistaken.
parasite wrote:And now I would like to point out that while so many posts and threads in this forum are quite infantile, or very specific on the other hand, regarding specific features, specific code, bugs and screenshots, this one deals with quite important things in an elegant way. It's really nice to see a pretty serious, mature issue under discussion. I hope this discussion is not over yet and can really help in minetest management.
Thank you very much! It is my hope too that this can help the developers a lot! I believe we have already discussed the most important issues! :-)

Cheers,
bzt

User avatar
paramat
Developer
Posts: 3700
Joined: Sun Oct 28, 2012 00:05
GitHub: paramat
IRC: paramat
Location: UK

Re: The future of Minetest

by paramat » Post

bzt wrote:
Mon Aug 17, 2020 14:33
Every time I update the Minetest Engine, games and mods broke, and I have to face a big pile of random Lua script crashes. I'm not sure why this is happening, but I suspect it's because the lack of (proper) tests and consistent API. Even the Minetest Game is keep crashing after the latest MTE upgrade :-( (something about lua entity on_step handler missing a property).
I just wanted to confirm what rubenwardy wrote and Krock hinted at.

When mods and games crash on update, this is usually due to mod/game code errors that were previously tolerated by the engine but are now not tolerated any longer due to a necessary engine improvement.
Admittedly this has happened quite often recently.
Inconvenient, but a good thing, as the engine has been improved, and mod/game code errors are no longer hidden and are therefore fixed.

The API is very consistent, not breaking mods and games is high priority.
You mentioned testing. Obviously, official MT has no control over content made independently and cannot test all this content. Outside of Minetest Game it is a case of 'use content at your own risk'.
The community tests the development version, and official MT encourages this to be done a few weeks before a release. This catches some mod/game breakages but inevitably some are missed.

snowyu
Member
Posts: 25
Joined: Mon Jun 07, 2021 06:42
GitHub: snowyu

Re: The future of Minetest

by snowyu » Post

bzt wrote:
Mon Aug 17, 2020 14:33
1. no concept for Lua bindings and API, incompatible changes all the time
Every time I update the Minetest Engine, games and mods broke, and I have to face a big pile of random Lua script crashes. I'm not sure why this is happening, but I suspect it's because the lack of (proper) tests and consistent API. Even the Minetest Game is keep crashing after the latest MTE upgrade :-( (something about lua entity on_step handler missing a property).
It should be: if there is any error, let the mod die as soon as possible, not the engine. It would be terrible that any script error make the browser keep crashing.
bzt wrote:
Mon Aug 17, 2020 14:33
2. incompatible changes in the UI
I always get dozens of errors after an update about non-existent or missing configuration options. I think options should be stable and consistent, only rarely changed, and even then with backward compatibility in mind. Or at least there should be a way to update configuration files along with the content. I can image that many update problems can be tracked back to incompatible configuration files. Here the biggest problem is, you cannot fix this using the UI alone, you have to delete all of your configuration files manually and set up and reconfigure everything from the ground up.
The current formspec is hard to understand and use.
bzt wrote:
Mon Aug 17, 2020 14:33
3. it is not possible to update contents consistently
There's no option to list contents to be upgraded for the installed/updated MT engine. I mean when I upgrade the MT engine, then I cannot get a list of contents that needs to be upgraded to avoid crashes. There's an "update" button next to the entries, but I have to look through more than 150 pages, and there's no guarantee that an upgrade will work with the certain MTE version I have. I guess there should be a "minimum engine" (and an optional "maximum engine") version information in the content's meta info file, and the UI should filter the contents using the current MTE version. It would be great to add an "Upgradeable" option to the search select box (right now you can only filter for All, Game, Mods, Textures etc. but not for the contents that have the "update" button).
A very annoying problem, that with the latest MTE update, MTG disappeared from the list, so I cannot update it any more (and the latest MTG I have keeps crashing with the latest MTE).
The mod lacks version and semantic version dependency management.

Code: Select all

"formspec": "~1.2.0" # only allow patch releases update(  1.3.0 > x >=1.2.0 ).
"formspec": "^1.2.0" # only allow minor releases update( 2.0.0 > x >= 1.2.0).
bzt wrote:
Mon Aug 17, 2020 14:33
4. MT engine has no main concept, it's development completely ad hoc
I think the reason behind the unmanageable number of issues (about 1000 open issues on github as of writing!!!) and the insanely long time for PRs to be merged (sometimes years!!!) lies in the lack of a clear concept. If there were a clear vision for MT, it would be easier for the developers to decide if a PR aligns with MT's goal or not (by that I mean both the PR writers' and the PR mergers' life would be simpler). There would be probably less problems with the merged PRs as well, meaning much less open issues in the first place.

5. obsolete engine under the hood
The last point, because I'm not entirely sure how much of the problems are caused by the obsolete and non-maintained irrlicht MTE built upon. I guess fair bunch of problems can be lead back to the fact that MTE must be compatible with irrlicht which is not maintained to keep up with latest OS versions, but I can be wrong about this one.

Now I would like to collect suggestions how to come around these issues, because I feel if everything goes on as it is now, then the future of MT is at stake.
I think MT should be an engine first, then extends to a "browser". You can build your "browser" (like Chrome and Chromium).
And This would turn MT into the cornerstone of the realization of the metaverse.

MT engine will mainly focus on the following aspects:
  • Data
    • Environment
      • Air(component, poisonous), Air pressure, Temperature, Humidity, Gravity...
      • Land: Plane, Spherical
      • Liquid: (maybe only need the material melting point table)
    • Thing
      • Material(Non-living)
      • Object
        • Plant
        • Animal: Player: Human&Computer(NPC)
  • Data Security
  • Pluggable 3D Physics Engine to drive the Data
  • Pluggable Render Engine
    • Terrain, 3D Model, Particle Effect
    • Switch-able between Pixel style(Old graphics card or old machine) and Realistic style
  • Pluggable GUI Engine
  • Pluggable Script Engine
  • Pluggable Network(Comunication) Engine

bzt
Member
Posts: 217
Joined: Tue Sep 24, 2019 14:26

Re: The future of Minetest

by bzt » Post

What has MT to do with a browser? It's not a browser, never was, never will be, not even if you use emscripten to compile it.

Otherwise concerning point 3, "it is not possible to update contents consistently" what do you mean by "The mod lacks version"??? There's not only proper versioning in the mods, but the feature I lacked has been implemented in the MT engine since.

It has been never easier to update all updatable mods at once, for which I'm very grateful for the devs! Well done! Please consider my point 3 obsolete!

Cheers,
bzt

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: The future of Minetest

by ShadMOrdre » Post

A "browser" concept almost sounds correct.

A simple client, that runs as a top notch world viewer, separate from server side provided code and data.

This is not unusual, as it is how Second Life / Opensim worked. The only downside to that entire community was that the viewer code remained proprietary, even after Linden Labs released it as open source. Opensim was an open source developed project that was able to successfully reverse engineer the server side protocols.

Minetest, being both a server and a client, with the entirety of the source code available, makes for a far better option.

There really isn't any reason why a better "browser" like client only application couldn't be coded to simply use the Minetest interface. A headless MT server can be accessed by any application that can use the protocol.

If someone came up with a stand alone client, this could easily help in also delegating developer duties. Changing server protocols becomes easier to manage, treating them more like an RFC. The client can then focus on things like render engine updates, interface updates, and updates to server protocols.

This is not a bad way to look at it.

I just wouldn't recommend a browser based client, or even a SecondLife / Opensim like client, which became a beast to manage, use, compile, or simply view spectacular builds.

Shad

bzt
Member
Posts: 217
Joined: Tue Sep 24, 2019 14:26

Re: The future of Minetest

by bzt » Post

ShadMOrdre wrote:
Tue Aug 24, 2021 02:24
A "browser" concept almost sounds correct.

A simple client, that runs as a top notch world viewer, separate from server side provided code and data.
I still don't get it. There's nothing browser specific in that, it is true for any client-server model. Plus it is already how MT engine works: you can host a game and make one instance as server, and connect to it with the other instances thus making them the clients. Then the server instance provides all code (mods) and data (textures, worldmap etc) to the simple client instances, which in turn act as a "world viewer". This already works in MT engine pretty well.
ShadMOrdre wrote:
Tue Aug 24, 2021 02:24
I just wouldn't recommend a browser based client
But you can already compile the MT engine with emscripten into WASM, and run it from a browser as a client, so this already works too.

Cheers,
bzt

snowyu
Member
Posts: 25
Joined: Mon Jun 07, 2021 06:42
GitHub: snowyu

Re: The future of Minetest

by snowyu » Post

The "browser" is just an unsuitable analogy. Or is it more aptly like a game launcher? The only thing similar to a browser is to enter a different game world address to play the game currently:

Code: Select all

mt://the-remote-gameworld.com
local://world1

User avatar
daret
Member
Posts: 136
Joined: Tue Nov 12, 2019 20:36
GitHub: daretmavi
In-game: Daretmavi

Re: The future of Minetest

by daret » Post

I like Minetest very much, but some think are hard to do.

Maybe some "small" goal could be, that Minetest engine should support everything and more than Minecraft does.
This would at least help games like Mineclone.

Minetest engine is in many ways better, but sometimes unreasonably limited.
E.g.
  • Dynamic tools / animated - like bows, compass, ... - item picture change without the animation
  • Leashes, Fishing - I never saw a good mod for it. I believe, the "rope" needed for fishing rod / leashes is not possible, or?
  • Dimensions - I know, you can create vertical worlds, but they are still somehow direct connected. You cold use vertical space for some space game and the dimensions for different solar system or something like that ...
  • World size - 65500 (or so) is big, but far from infinite. There was some discussion in 2014, but think this is not changed, or?
  • ...

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot], Google [Bot] and 13 guests