Honest feedback from a newcomer

nocturnalwizard
Member
Posts: 15
Joined: Wed Jan 18, 2023 20:34
GitHub: nocturnalwizard
In-game: nocwiz

Honest feedback from a newcomer

by nocturnalwizard » Post

Greetings everyone.

I'd like to begin by mentioning that I am VERY new here! I have only been a part of this project/community for about a month, and I am sincerely grateful for EVERYONE who has contributed here, whether by active participation in the development of the game, mods, etc., or just by way of participating on the forums and providing suggestions, ideas, and feedback. You have all come together to create something truly wonderful and amazing here.

Now, before I share any feedback, I'd like to mention that I am a professional developer / systems administrator with 25+ years experience. That, of course, probably makes me far more opinionated and biased than the vast majority of the actual user base. Since finding Minetest, I've been dedicating all of my spare time to studying Lua, the Minetest API, and the Minetest Modding Book, and while I'm a little peeved by how difficult it has been, I've managed to learn how to build and accomplish some really neat things, and I've even learned 3D modeling with Blender. Most importantly, to me, I've been using all this new knowledge I've gained, and all these new skills I've been learning, to build a Minetest server that I share with my wife and kids, and we've all had a LOT of fun along the way.

I'd also like to say that I love the game (by which I am referring to the Minetest application itself as a client and server based on the Irrlicht engine), and that is my only motivation for speaking up and posting this here today for the second time (my session apparently timed out, and I lost my first attempt at this post, so now I'm rewriting it from scratch since I couldn't go "back" from the login screen). I am posting this because I have found something here that I truly enjoy. Minetest, to me, represents an exciting and fun opportunity to challenge myself, to learn new skills, and to create something my whole family can have fun together with and enjoy. I've even explored the possibility of using Minetest as an educational tool (my wife and I homeschool our kids).

With all of that said, my journey into Minetest over this month has many times been difficult and proven itself to be a great source of frustration. I don't want to come across as some hostile newcomer who's just looking to stir things up, step on anyone's toes, or otherwise insult or offend anyone, but only to share my honest feedback. I have to imagine that if someone like me finds it as confusing and frustrating as I have, the "average Joe" must find it exponentially more difficult to navigate this incredibly diverse landscape of "addons" (mods, texture packs, etc.), nevermind the core API which is but sparsely documented. My intention here is only to hopefully contribute some constructive criticism that may perhaps make it easier for others who, like me, are late to the party and just finding Minetest 13 years down the road.

Now, of course, anyone can just install the game, play the default "Minetest Game", and call it a day... or even simply install one of the well-developed and actively-maintained games out there, such as MineClone2 or MeseCraft. These options seem totally painless thanks to the hard work and continued dedication of those who created them. That is precisely what I did in the beginning, and that was fun for a time, but that's also where the "ease of use" ended.

Ultimately, the coder in me prevailed, and I started digging into the source code rather early on. I quickly learned that these "games" are but a collection of mods carefully crafted and integrated to create a series of elements (nodes, tools, entities), challenges, rewards, etc. that make the game actually fun to play (the first thing I discovered when I dove in was the "devtest" game which offers nothing but a few dev/debug tools, and that was obviously not much fun). Once I wrapped my brain around the logistics of the game, and the relationship between Irrlicht, Minetest, and the mods and mod collections referred to as "games", that's where the real fun (but also a great deal of frustration) began.

Having played the default Minetest Game, then MineClone2 and MeseCraft, I realized that they all had some things in common, but they also each brought some unique thing or another to the table that was lacking in the others. It was for this reason that I began to wonder if, perhaps, I could incorporate certain things from one game into another, and build one that had everything I liked, and nothing that I didn't. For example, my 5 year old son (who I'm extremely proud of just for grasping "how to play" a pc game!!), finds it very difficult to enjoy playing whilst being repeatedly killed by angry mobs with bows and arrows in MineClone2. MeseCraft seemed to be the most "family friendly" and enjoyable for us all regardless of age or skill level, but it was also difficult for me, as a newbie who didn't know Lua, to extend and add things into due to conflicts with other mods, most of which seem to be "customized" specifically for use by that game (backtracking, I also found the same is true of MineClone2, for the record -- keep reading and you'll know that I ultimately came to understand why, too).

Before diving into learning Lua, studying the API, and all that, I first began by simply scouring ContentDB in search of mods that we found interesting. What I found was an extremely large and diverse hodge podge collection of mostly incomplete, incompatible, or abandoned projects that either never saw their way out of the conceptual stages or haven't been actively maintained for years, both of which yield little more than a ton of errors when attempting to install and run them. I found the "depends" information, at least, somewhat useful in that it at least pointed to other mods upon which certain mods are built upon. However, trying to figure out which VERSION of the game itself (Minetest) or mod upon which another mod depends proved much more difficult.

So, here it is, my itemized feedback (and commentary) for whatever it may be worth to this community:

#1 - Versioning, across the board, seems extremely convoluted, and for the most part, totally undocumented as it relates to interdependency.

As with other systems which rely on package management, for example, NodeJS/NPM, I believe this could be fixed simply by adding version information to the "depends" field in mod.conf. In its current (comma delimited string) format, it may prove difficult, but perhaps tables could instead be used? e.g.:

Code: Select all

depends = {
	{ name = "mod_name", version = "1.2.3" },
	...
}
If not, developers could at least be sure to note which version of Minetest you were last running, and which version of those mods you had installed which your mod depends on. A simple entry in the README would suffice.

#2 - Aside from "Maintenance State" which is, from my observations, most frequently "unknown", ContentDB doesn't maintain any sort of flag/field indicating the overall status of a project.

Based on the types of projects I've seen, I feel it would be extremely helpful to know, at minimum, what stage a given project is in, for example:
  • concept ("I have an idea for a mod, and here's some mockups / mock code")
  • proof-of-concept ("Here's a rudimentary implementation of that concept showing it's possible")
  • pre-release ("More work needs to be done prior to being considered generally available")
  • active ("This is fully developed, tested, and confirmed working with Minetest v1.2.3 [and mod_name v1.2.3, ...]")
  • deprecated ("This project has been replaced by alternate_mod_name or is no longer compatible with newer releases of Minetest and no further development is planned")
  • abandoned ("No commits to repo and no other forum/ContentDB activity from author(s) in over a year")
This field could be added to mod.conf, simply like so: status = active, but I know this would largely depend on the authors/contributors continued active participation, and trusting them to use this new field responsibly to keep others informed of their true and correct project status. Conversely, it could be administered by designated personnel (moderators), and somewhat automated even. For example, ContentDB could link up with phpBB backend and also configured to poll repos on some configured interval to check an author's last forum activity and when the last commit was made to a given repo, and if after a year, for example, there has been no such activity, a project could automatically be marked "abandoned." An author, in this case, should be able to log back in and restore the project to an appropriate status, however, if they are actually still active (or should they again become active).

#3 - It's a little bit of a pain that everyone hosts their code in different places, some of which (e.g. Gitlab) require me to set up an account just to access the code.

I guess I'm just wondering... why can't we all agree on one code hosting platform? All the projects included in ContentDB seem to be extremely specific to Minetest itself, so there doesn't appear to be any benefit in keeping these "addons" separate by hosting elsewhere. Granted, I've read some people's arguments that "Minetest competes with Minecraft which, along with GitHub, is owned by Microsoft, and Microsoft may one day decide to just delete all our stuff!!", but these arguments are totally unfounded and, quite frankly, based in unreasonable paranoia. Do you know how many direct Microsoft competitors host their (extremely valuable) code on Github? Do you really think they'd dedicate valuable time and resources to hunting down and eradicating Minetest mods?

Speaking of which, and out of curiosity sake, given the number of projects and their overall filesize, if everyone has such an issue with choosing a single git host, why doesn't Minetest just host its own official git server? It doesn't seem that it would be cost prohibitive. I understand there are certain liabilities, especially if project maintainers incorporate copyrighted material or other material that may infringe on others' rights, however that could be easily mitigated with proper terms of service and administration.

#4 - Mods, texture packs, etc., overall, are poorly managed with no apparent oversight or vetting process

I've been around a long, long time, and over the years, I've seen probably close to a thousand different Linux distros pop up. Currently, there are hundreds which are actively maintained. The question I constantly ask myself is "why can't we all just work together?" I've found myself here having the exact same sentiment toward Minetest. Why does everyone who builds anything feel the need to stake their claim to fame by releasing a whole new mod (direct comparison: distro) rather than contributing to any of the thousand other mods (distros) already in existence, most of which are licensed such that there would be no reason not to, many of which have never left the initial pre-release stages anyway? If nothing else, you've got a perfect boilerplate! There is no less "creative genius" in bringing someone else's vision to life than there is in bringing your own.

Anyway, the point is, the namespace here is completely polluted, and as a result, annoyingly convoluted. Some of you people are like domain squatters, reserving a namespace for a mod that you haven't even built yet by releasing an empty repo to ContentDB, or maybe with nothing but some mock code or, worse, code borrowed from another project that you intend to do differently.

Meanwhile, others of you seem to have come up with some REALLY COOL ideas for modifications or additions to already existing mods, and though they are SUBSTANTIALLY similar, you for whatever reason insist on creating a whole new mod. WHY!? Like, seriously, do you have ANY idea what a TURN OFF it is to have to install 15 different door mods just to see which one actually (still) works, much less spend the time trying to figure out how to get them to work together? When I first went about figuring out how to create my own game, I just wanted doors. That's when I found "doors", "doors redo", "doors redux", "extra doors", "C doors"... holy cow! Which do I choose? Do I need them all? Oh, wait, none of them actually work right on their own, as sourced from the original repo (maybe a beginner mistake? Please correct me if I'm wrong!).

You guys DO know that the whole point of "open-source" is to allow contributions (see: additions and modifications) to a given project or piece of code, right? Is it that your ego is too big to contribute to someone else's work, or is the problem that the original authors' ego is too big to allow someone else to contribute to theirs? What's going on here? Why are there no less than 5 different ways to add any one thing to my game, all of which come with a boat load of other (mostly unwanted) tweaks or dependencies?

Another example is mobs. I've spent over a week now just trying to get mobs to work together, but I can't seem to do so. Everyone goes their own way, and nobody seems to have any consideration for the other. The ONLY author who has reached back out to me when I sent a private message asking for details was TenPlus1 **shout out, you're awesome**. From my limited newcomer perspective, the overall lack of cooperation screams "MY MOD IS THE COOLEST! Who cares about those other ones?"

You know what's way more attractive and encouraging to new developers who might want to join in? Other developers working together to ensure that their code doesn't break someone else's. It's just being polite / common courtesy, and on that note, seniority always wins. The creators of the original "door mod" should not have to ensure forwards compatibility, but vice versa. If I install "doors redo" or "doors redux" it shouldn't break my installation of "doors", your project's direct predecessor. ** Note: no offense to whomever created the various door mods. I'm not even specifically referring to the "doors" mods, just using it as an example.

#5 - What's up with the documentation?

The Minetest API itself (https://minetest.gitlab.io/minetest/) is a huge and helpful resource, and as I've said before, I am deeply grateful to those who made it possible. At the same time, it seems deftly incomplete; it's almost as if those who wrote it didn't want the casual reader to learn too much. Now, I'm shooting from the hip here. Perhaps it's just that nobody has had the time to go in and properly document things. Then again, it's been 13 years, and if I hold this project to the same standard I would any other open source project, I'd have to say there's a certain measure of neglect there. Either that, or there are way less people contributing here then I'd imagine. If there's only a handful of you working on this since day one, and nobody has so much as offered to help along the way, then I guess I'd understand.

My biggest complaint here is that there are no functional references (i.e. links to related documentation), very few working examples, and many functions, objects, classes, etc., leave too much to the imagination. All the functions (maybe? I don't know. I haven't cross-referenced the actual Minetest c++ source code or anything) seem to be documented, but there's few, if any places where the parameters/arguments or return values are actually documented. For example:

Code: Select all

Raycast¶
A raycast on the map. It works with selection boxes. Can be used as an iterator in a for loop as:

local ray = Raycast(...)
for pointed_thing in ray do
    ...
end
The map is loaded as the ray advances. If the map is modified after the Raycast is created, the changes may or may not have an effect on the object.

It can be created via Raycast(pos1, pos2, objects, liquids) or minetest.raycast(pos1, pos2, objects, liquids) where:

pos1: start of the ray
pos2: end of the ray
objects: if false, only nodes will be returned. Default is true.
liquids: if false, liquid nodes (liquidtype ~= "none") won't be returned. Default is false.
Raycast seems to accept 4 arguments: pos1, pos2, objects, and liquids. Aside from the "if false... default is true/false", how would I know that these expect booleans? What type of value do pos1/pos2 expect? Should I pass a string, a table (old style spatial vector) or a vector object (the resultant value of vector.new)? Also, what the heck does this thing return? Anything?

This is just one small example out of hundreds I could give.

Also, for example, I wanted to figure out how to modify my "Player". Where do I begin? Search the documentation...

Code: Select all

[b]PlayerMetaRef[/b]

Player metadata. Uses the same method of storage as the deprecated player attribute API, so data there will also be in player meta. Can be obtained using player:get_meta().
Oh... okay... wait... what? It kinda seems like only somebody who's been here since day one could possibly understand what that means. Also, where do I find the deprecated player attribute API since that's my only reference? Nice to know it ("PlayerMetaRef") can be obtained by player:get_meta(), but what is "PlayerMetaRef" exactly? An integer? string? Most likely a table... right? Or is it a class with methods and properties? Lets search the docs... "player:get_meta" maybe? Nope... no results... screw it... Google to the rescue! Oh, thanks RubenWardy! **shout out, you're awesome** The Minetest Modding Book seems to have some info on that...

You get the idea. Again, this is just all my outsider's perspective looking in. If I drink enough coffee, and am skillful enough with my search queries, I can usually find what I'm looking for, however there are many places that leave lots of room for improvement.

P.S. RubenWardy, thanks for attempting to make a book on this. It needs some updates, and could definitely use a lot more work to be considered a complete volume, but it's become my best friend this past month and I am very grateful.

So, last but not least..

#6 Hi, I'm new here. Which permutation of possible items and configurations can I use to actually make a working recipe that doesn't conflict with / break someone else's without studying every single mod released to date and generating my own spreadsheet maybe?

Maybe this is my ignorance (again, I'm new, forgive me if this has already been figured out somewhere, but I certainly can't find it), but why isn't there a database of registered recipes somewhere so I can easily find what's NOT in use, and let other people know what I'm using so they don't step on my toes later?

-----

That's all for now, and... hopefully this is well received. Please know that I come from a good place in saying all of this. I truly believe that I've found something awesome here, and I took all this time out of my day to write this (twice now) because I'd really like to be a part of this and see this thing make leaps and bounds forward. Things are a mess right now, though, and I'm hoping that maybe some of my "newcomer passion" can inspire some sort of push in the right direction.

Maybe that sounds extremely arrogant, and maybe people have been here for 13 years trying to do exactly that, and you just need more help. If so, please tell me! I'd be happy to help, and I'm definitely qualified. All I can tell you is that I have seen far too many posts from people wondering why this game is not already more popular than Minecraft... well, probably because 1) they have a coherent, paid team of developers all working together to achieve the same goals, and 2) the current way everything is documented / structured, it's not really inviting to new developers like myself who might want to jump in unless, like me, they have personal motivations (so far, I REALLY like building and playing with my kids).

I will say this, too: I've been inspired by a number of mods to want to continue the original author's vision, or to bring it up to speed with the current Minetest version, make it more efficient, or otherwise contribute in some beneficial way, but as soon as I go to look at the PR's on the project, I usually find there's already a line of people there with their own PRs who have already been there waiting sometimes a year or more with no action from the owner! It sure would be nice if some of these abandoned projects could be revived and handed down to willing contributors.

For example, I'd happily take over the dinosaur mod (currently Paleotest, but apparently deprecated and abandoned as well?) -- my kids would love it! But what do I do if I want dinosaurs in my game right now? The models are broken, and the author only included the .b3d files, but no original .blend files. I could add to the madness by making more "new" mods (but not really, though, just a little different than the other 15 that already exist), or I guess I could just say screw it and keep my work private, but that sucks for others who might want it but aren't capable of creating their own... Original authors really should do the responsible thing and pass the torch whenever they're no longer interested in or capable of continuing a project.

I'd really like to help out if anyone is interested in allowing me to do so. I'm sure I'd gain a lot of knowledge and new skills in the process, so I'd be happy to do so. I know a whole lot about servers, databases, software, APIs, etc., and I'm proficient with a number of other languages, so it shouldn't take me much time to master C++/Lua...I'm learning, but it's a rough road of trial and error so far, and if there's anything I can do to help myself and remove some of the road blocks for the next guy, I'd be willing. Let me know!

User avatar
Lone_Wolf
Member
Posts: 2576
Joined: Sun Apr 09, 2017 05:50
GitHub: LoneWolfHT
IRC: LandarVargan
In-game: LandarVargan

Re: Honest feedback from a newcomer

by Lone_Wolf » Post

Thanks for the feedback, I'll just pop in to answer one bit:
The question I constantly ask myself is "why can't we all just work together?"
Because it's the same question almost everyone else asks. Things will get better when it becomes "Can I work with you on this?", and I think things are slowly starting to edge that way as new modders trickle in
My ContentDB -|- Working on CaptureTheFlag -|- Minetest Forums Dark Theme!! (You need it)

User avatar
ElCeejo
Member
Posts: 210
Joined: Thu Feb 28, 2019 23:29
GitHub: ElCeejo
In-game: ElCeejo
Location: Your Mother's house

Re: Honest feedback from a newcomer

by ElCeejo » Post

For example, I'd happily take over the dinosaur mod (currently Paleotest, but apparently deprecated and abandoned as well?) -- my kids would love it! But what do I do if I want dinosaurs in my game right now? The models are broken, and the author only included the .b3d files, but no original .blend files. I could add to the madness by making more "new" mods (but not really, though, just a little different than the other 15 that already exist), or I guess I could just say screw it and keep my work private, but that sucks for others who might want it but aren't capable of creating their own... Original authors really should do the responsible thing and pass the torch whenever they're no longer interested in or capable of continuing a project.
PaleoTest is dead. Stay mad.

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: Honest feedback from a newcomer

by Festus1965 » Post

Thank you very much - I had fun to read it and find a lot of 'hints' still after 5 years.

* pointing on an one central git years ago, with example gitea.minetest.one
* pointing on a better compatible mod to game version option years ago with examples
...
Last edited by Festus1965 on Sun Jan 29, 2023 00:55, edited 3 times in total.
Human has no future (climate change)
If urgend, you find me in Roblox (as CNXThomas)

User avatar
GreenXenith
Member
Posts: 1356
Joined: Wed Oct 28, 2015 01:26
GitHub: GreenXenith
Location: UTC-8:00
Contact:

Re: Honest feedback from a newcomer

by GreenXenith » Post

nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
Greetings everyone.
Hello there!
I'd like to begin by mentioning that I am VERY new here! I have only been a part of this project/community for about a month
<snip>
Now, before I share any feedback, I'd like to mention that I am a professional developer / systems administrator with 25+ years experience. That, of course, probably makes me far more opinionated and biased than the vast majority of the actual user base.
I myself have been part of the Minetest community for about 10 years, so hopefully I can give you some good insight!
I'd also like to say that I love the game. <snip> I am posting this because I have found something here that I truly enjoy. Minetest, to me, represents an exciting and fun opportunity to challenge myself, to learn new skills, and to create something my whole family can have fun together with and enjoy.
I concur whole-heartedly :)
my journey into Minetest over this month has many times been difficult and proven itself to be a great source of frustration. I don't want to come across as some hostile newcomer who's just looking to stir things up, step on anyone's toes, or otherwise insult or offend anyone, but only to share my honest feedback. I have to imagine that if someone like me finds it as confusing and frustrating as I have, the "average Joe" must find it exponentially more difficult to navigate this incredibly diverse landscape of "addons" (mods, texture packs, etc.), nevermind the core API which is but sparsely documented. My intention here is only to hopefully contribute some constructive criticism that may perhaps make it easier for others who, like me, are late to the party and just finding Minetest 13 years down the road.
While I have been here a long time, I might be one of the most cynical members of the community regarding Minetest's design and implementation. I completely understand the frustration that comes from this platform.

It may be beneficial to understand a brief history of Minetest:
Minetest started as a Minecraft clone. Not much of a community, no modding API, it wasn't an engine. It was just celeron55 testing his skills to see if he could recreate Minecraft in its alpha state (at the time, 2010). The modding API did not happen until ~2012, and around this time is when Minetest was split into an engine and a game. However, it was not really thought of as a "game engine", just some cool toy to add content to. Games were sort of a byproduct of the way mods were implemented.

Since Minetest did not start as a game engine, and didn't really have a focus on being a game engine for a long time, there was not much though put into whether or not features would work well in the context of games. People just wanted to make content, usually for Minetest Game, and they wanted that content to be able to do more, so for a long time that is how development went.
Only within the last few years has development started to see a shift in how we think about Minetest, but I fear it is far too late, and we may have to settle for something a little different than what Minetest currently claims to be (or at least what people think it is.)

In short: Minetest is an afterthought platform, not a planned game engine.
Much of the time the reason for something being implemented incorrectly or suboptimally (or not at all) is due to conflicting opinions and no clear direction.

And also,
Image

-----
it was also difficult for me, as a newbie who didn't know Lua, to extend and add things into due to conflicts with other mods, most of which seem to be "customized" specifically for use by that game (backtracking, I also found the same is true of MineClone2, for the record -- keep reading and you'll know that I ultimately came to understand why, too).
I didn't see a specific followup to this, but something to understand regardless:
Minetest tries to be a game engine. And just like you can't use mods for Skyrim in Minecraft, it is not expected that you will be able to use a mod from one Minetest game in another.
I first began by simply scouring ContentDB in search of mods that we found interesting. What I found was an extremely large and diverse hodge podge collection of mostly incomplete, incompatible, or abandoned projects that either never saw their way out of the conceptual stages or haven't been actively maintained for years, both of which yield little more than a ton of errors when attempting to install and run them. I found the "depends" information, at least, somewhat useful in that it at least pointed to other mods upon which certain mods are built upon. However, trying to figure out which VERSION of the game itself (Minetest) or mod upon which another mod depends proved much more difficult.

#1 - Versioning, across the board, seems extremely convoluted, and for the most part, totally undocumented as it relates to interdependency.

<snip>
I believe this could be fixed simply by adding version information to the "depends" field in mod.conf

If not, developers could at least be sure to note which version of Minetest you were last running, and which version of those mods you had installed which your mod depends on. A simple entry in the README would suffice.
Versioning was not a concern in early Minetest days; You won't find documentation on it because it simply isn't a part of the content specification. The Content Database is a relatively new system, and while it does bring its own, higher bar for dependencies, it still has to mostly conform to what Minetest expects.

The ContentDB does, however, let packages specify minimum and maximum Minetest versions. Note that I say "let" and not "require". While most newer packages will at least specify which major version of Minetest it is compatible with, it is not a requirement, and many older packages lack the versioning altogether. Many old packages were added to the ContentDB by the staff team, but because we don't have time to thoroughly test every package (there are ~3000+ mods on the forum alone) some version limits may get missed.

Just for your information, you can set the min/max Minetest versions in your mod.conf. Otherwise, we have no standard for package versioning. Implementing a versioning standard is fairly trivial, getting everyone to agree on it is another story. Making a mod-based versioning system is also an option, if you'd rather deal with that can of worms instead.
#2 - Aside from "Maintenance State" which is, from my observations, most frequently "unknown", ContentDB doesn't maintain any sort of flag/field indicating the overall status of a project.

Based on the types of projects I've seen, I feel it would be extremely helpful to know, at minimum, what stage a given project is in, for example:
Aside from WIP, this is true.
concept ("I have an idea for a mod, and here's some mockups / mock code")
pre-release ("More work needs to be done prior to being considered generally available")
I am not certain these belong on the ContentDB, as they are not usable packages. Better to stay on a git host until they are ready.
proof-of-concept ("Here's a rudimentary implementation of that concept showing it's possible")
This is where most of my mods lie, though only one or two of them are actually on the ContentDB :)
deprecated ("This project has been replaced by alternate_mod_name or is no longer compatible with newer releases of Minetest and no further development is planned")
This is muddy with how the ContentDB policies outline name rights and the like. If a package supersedes another in-place (same name) then the original simply gets removed. This was a functioning solution at the time, but not necessarily the best one (especially now that I think about it, older clients may not be able to access compatible package versions if the legacy packages are removed).
A more robust system may be in order for this sort of thing.
abandoned ("No commits to repo and no other forum/ContentDB activity from author(s) in over a year")
There should be a qualification between "abandoned" and "maintenance-only". Otherwise, yes this would be helpful.
I guess I'm just wondering... why can't we all agree on one code hosting platform?
Humans being humans.

But seriously, this is not an issue localized to this community. Try to convince everyone else on the internet to agree one one code hosting platform.
And really, this is part of why the ContentDB exists. It acts as a centralized platform for mods to be found, that way the end user does not have to worry about what git host anyone chooses to use. And for the most part, as a developer, I don't really care what service you use to host things as long as I can clone it without hassle. I'd also rather deal with a few different git hosts than force everyone to choose something they might not like using.
Speaking of which, and out of curiosity sake, given the number of projects and their overall filesize, if everyone has such an issue with choosing a single git host, why doesn't Minetest just host its own official git server? It doesn't seem that it would be cost prohibitive. I understand there are certain liabilities, especially if project maintainers incorporate copyrighted material or other material that may infringe on others' rights, however that could be easily mitigated with proper terms of service and administration.
There is an unofficial GitTea instance I believe, but, again, good luck convincing everyone to use it.
And I think you overestimate our active manpower ;) The community may be large, but finding active users that are willing to put in the service to moderate these things is non trivial. The ContentDB has a hard enough time managing content as it is.

-----
#4 - Mods, texture packs, etc., overall, are poorly managed with no apparent oversight or vetting process

Why does everyone who builds anything feel the need to stake their claim to fame by releasing a whole new mod rather than contributing to any of the thousand other mods already in existence
A few practical reasons:
* A package may be so significantly out of date that starting anew is more logical
* The package author may be inactive (or in rare cases, dead)
* The package author may not be accepting changes
* The package author may not be open to your specific changes
* Your implementation of a concept may be so wildly different than the existing one that it is unmergable

But otherwise, I think the redundant versions come from either lack of information, publishing beginner/practice mods, or just general disagreements. Mind you, ContentDB tries to curate this to an extent.

(Side note: This entire point does not apply to texture packs; Art is entirely implementation-based and not subject to the "concept" already existing)
the namespace here is completely polluted, and as a result, annoyingly convoluted.
Absolutely. Only recently has the ContentDB begun to require internal game mods to be namespaced (unique to each game), and some authors have begun namespacing their mods by name (though not often). Otherwise, there are no namespace requirements for concepts, or even for mods specific to a certain game.
Some of you people are like domain squatters, reserving a namespace for a mod that you haven't even built yet by releasing an empty repo to ContentDB, or maybe with nothing but some mock code or, worse, code borrowed from another project that you intend to do differently.
Non functional packages should not exist on the ContentDB and should be reported.
<snip>
When I first went about figuring out how to create my own game, I just wanted doors. That's when I found "doors", "doors redo", "doors redux", "extra doors", "C doors"... holy cow! Which do I choose? Do I need them all? Oh, wait, none of them actually work right on their own, as sourced from the original repo.

You guys DO know that the whole point of "open-source" is to allow contributions (see: additions and modifications) to a given project or piece of code, right? Is it that your ego is too big to contribute to someone else's work, or is the problem that the original authors' ego is too big to allow someone else to contribute to theirs? What's going on here? Why are there no less than 5 different ways to add any one thing to my game, all of which come with a boat load of other (mostly unwanted) tweaks or dependencies?
This goes back to the earlier explanation, but also, you may be expecting too much from a ragtag community of hobbyists, volunteers, and tinkerers. An old and fragmented one at that. You will also find this problem in other games that have large mod ecosystems. Minecraft is no stranger to this either. Unifying people is not trivial.

I am also choosing to ignore the tone here too, as I understand your frustration, but keep in mind that this is the kind of "hostile" sounding stuff that turns a lot of community members off to these kinds of posts.
Another example is mobs. I've spent over a week now just trying to get mobs to work together, but I can't seem to do so. Everyone goes their own way, and nobody seems to have any consideration for the other. The ONLY author who has reached back out to me when I sent a private message asking for details was TenPlus1. From my limited newcomer perspective, the overall lack of cooperation screams "MY MOD IS THE COOLEST! Who cares about those other ones?"
Mobs have been a longstanding issue in the community. This stems from there being so many ways to implement them, Minetest not having very good first-class support for a lot of the things a mob engine needs, and the engine evolving. You could get mob engines to work together in a technical sense if they kept to themselves properly, but you can also blame TenPlus1 for making the most-used mob engine and using "mobs" as his global namespace ;)

In a performance sense, it may be wise to not combine mob engines, as that could get computationly complex quickly. Simply because of how inefficient some mob processes are, mixing even two could cause issues. I don't have data for this though, because of course none of us have any more luck than you mixing them.
You know what's way more attractive and encouraging to new developers who might want to join in? Other developers working together to ensure that their code doesn't break someone else's. It's just being polite / common courtesy, and on that note, seniority always wins. The creators of the original "door mod" should not have to ensure forwards compatibility, but vice versa. If I install "doors redo" or "doors redux" it shouldn't break my installation of "doors", your project's direct predecessor. ** Note: no offense to whomever created the various door mods. I'm not even specifically referring to the "doors" mods, just using it as an example.
Absolutely. But, again, getting people to agree is not trivial. This combined with Minetest lacking any form of implementation standard means that authors tend to just create content without regard for how other implementations may work, expecting you to use their version alone. Obviously this is not a good thing, but it is also not a trivial thing to standardize at this point.

You will also find this issue in the Minecraft mod ecosystem, and likely other large ecosystems.

-----
#5 - What's up with the documentation?
Oh boy :D
it seems deftly incomplete; it's almost as if those who wrote it didn't want the casual reader to learn too much. Now, I'm shooting from the hip here. Perhaps it's just that nobody has had the time to go in and properly document things. Then again, it's been 13 years, and if I hold this project to the same standard I would any other open source project, I'd have to say there's a certain measure of neglect there. Either that, or there are way less people contributing here then I'd imagine.
I would estimate about 95% of features are completely documented (to a functional extent). The question is whether or not you can find where :)

I would also say that you are definitely, again, expecting too much from this disorganized, jumbled bunch of hobbyists. Especially when the people writing documentation are usually just doing the bare minimum and are not actually very good at writing documentation, at least without trying. Most big open source projects are both far more organized and unified, and have people dedicated to curating and writing documentation.

However,
The Minetest API itself (https://minetest.gitlab.io/minetest/) is a huge and helpful resource
<snip>
My biggest complaint here is that there are no functional references, very few working examples, and [much] leaves too much to the imagination.

Oh... okay... wait... what? It kinda seems like only somebody who's been here since day one could possibly understand what that means
I would like to first mention that the GitLab website is not really official, rather a third-party markdown-to-readthedocs conversion of the official monolithic API document found at https://github.com/minetest/minetest/bl ... ua_api.txt (edit: it has apparently been made official). The API is "written" in markdown format, but does not really use the markdown format. In fact, it's a text file (it couldn't reference sections if it wanted to).

Minetest's documentation is a known issue, one that some of us have tried to tackle (at https://github.com/minetest/minetest_docs), but it is a long and difficult process that requires a lot of time and resources. Yes, there should be references. Yes, there should be better type documentation. And so much more.

After having been here for so long, I usually traverse the .txt API using ctrl+f and keywords I know off-hand, or I just rely on my VSCode extension.

-----
Which permutation of possible items and configurations can I use to actually make a working recipe that doesn't conflict with / break someone else's without studying every single mod released to date and generating my own spreadsheet maybe?

why isn't there a database of registered recipes somewhere so I can easily find what's NOT in use, and let other people know what I'm using so they don't step on my toes later?
1. Lack of standards.
2. "Recipes" are a concept technically unique to Minetest Game (though included with the engine), one which most games tend to just use anyway. Thus, a centralized database would only make sense per-game, assuming recipes exist and are in a form that can be recorded.
3. Mods are free to include their own forms of "recipes". It gets complicated fast.

-----
It sure would be nice if some of these abandoned projects could be revived and handed down to willing contributors.
Both the minetest-mods and mt-mods organizations take in abandoned mods. Why are there two competing organizations? Welcome to Minetest ;D
I'd happily take over the dinosaur mod (currently Paleotest, but apparently deprecated and abandoned as well?) -- my kids would love it! But what do I do if I want dinosaurs in my game right now? The models are broken, and the author only included the .b3d files, but no original .blend files. Original authors really should do the responsible thing and pass the torch whenever they're no longer interested in or capable of continuing a project.
Fair warning: Do not take anything ElCeejo (Paleotest author) says personally or very seriously. The "responsible author" part of that is not something he really follows... apologies for that.

The B3D thing has been a pain in our collective sides forever; Not including .blends wouldn't be a huge issue if we used a modern interoperable format. This is currently being worked on.

-----
That's all for now, and... hopefully this is well received. Please know that I come from a good place in saying all of this. I truly believe that I've found something awesome here, and I took all this time out of my day to write this (twice now) because I'd really like to be a part of this and see this thing make leaps and bounds forward. Things are a mess right now, though, and I'm hoping that maybe some of my "newcomer passion" can inspire some sort of push in the right direction.

Maybe that sounds extremely arrogant, and maybe people have been here for 13 years trying to do exactly that, and you just need more help. If so, please tell me! I'd be happy to help, and I'm definitely qualified. All I can tell you is that I have seen far too many posts from people wondering why this game is not already more popular than Minecraft...
<snip>
You are not the first, and you certainly wont be the the last to have accurate and critical insight into the problems this platform has. And statistically, you won't be the first newcomer to have plenty of experience behind you. Outside experience is helpful on paper, but applying it here in practice is something you'll need to experience for yourself. And you need a hell of a lot of spirit to mess with the old dusty innards of the engine for even a few minutes.

Like you, I would love to see this platform become something more, maybe a true game engine, even. But it is a long, long uphill battle. It's not something I can really articulate to you. If you stick around for a few months, you will likely understand the way development operates and why change is absurdly difficult. But who knows, maybe you have enough passion to get something rolling.

I've been meaning to do a write-up with a deeper analysis of what Minetest is, isn't, where it's going, and why it's going there. But that also takes a fair amount of time and life has a habit of sucking that away.

Much to the chagrin of many community members, we do have a rather active Discord server, if you'd like to have some more immediate responses and longer discussions around stuff like this. There is also the #minetest LiberaIRC channel, if Discord isn't your thing (which I am certain plenty of people will soon try to convince you of). Keep in mind that just about anywhere you go in this community, someone will have something negative to say about everyone, especially about newcomers with "new ideas" on everything wrong with Minetest. You'll have to weather that storm if you are serious about getting deep into this mess :)
Last edited by GreenXenith on Sat Jan 28, 2023 20:46, edited 2 times in total.
YouTube | Mods | Patreon | Minetest Discord @greenxenith

You should not be able to read this message.

nocturnalwizard
Member
Posts: 15
Joined: Wed Jan 18, 2023 20:34
GitHub: nocturnalwizard
In-game: nocwiz

Re: Honest feedback from a newcomer

by nocturnalwizard » Post

GreenXenith wrote:
Sat Jan 28, 2023 04:49
Hello there!

[...and everything else that followed...]
Thank you. That was perhaps the most mature, thoughtful, and well articulated response I have ever received on any forum post, anywhere, EVER. I also truly appreciate the candid nature with which it was written. Nothing better than making such a critical observation and someone replying to the tune of "Yep, we've got problems. Welcome!" I truly admire your humility.

Speaking of which, yes, please do forgive the aggressive / hostile tone with which a couple of my paragraphs were written. In retrospect, I do see that I fell short a number of times in achieving my goal of remaining absolutely positive, constructive, and not taking shots at anyone. I am obviously quite frustrated to the point of anger on a couple of my points, but I think by the time I got to those topics, I was more upset about the fact that I spent a good hour writing my post the first time only to lose it to phpBB's "login" page due to my session timing out and having to write it all over again LOL. That and it was right at the end of a long and stressful work day. I'll certainly be more thoughtful moving forward now that I better understand the nature of this community.

Honestly, though, I had no idea what to expect of this sort of game, and I also have no experience with "online gaming" communities. I think the point you made that really hit home with me the most was "hobbyists, volunteers, and tinkerers." That puts a WHOLE LOT into perspective because I honestly thought this was more of a professional community of developers (and enthusiasts) actually attempting to create an open source voxel game on par with Minecraft, Roblox, etc. So, thank you for helping guide me to and align me with reality. It helps me view things in a much different light and appreciate everything that's been done here that much more. I may be a professional developer in real life, but here in the Minetest world, I too am just a guy who "found something cool and is trying to have some fun with it."

Not only did I learn a whole lot from your response, but I also feel that I better understand the situation now. I think perhaps one of the most important things to note about me is that my experience with "gaming" altogether is as follows: my first console was an Atari, then an NES, and later, a Sega Genesis. Eventually, I bought a Nintendo 64, and then my final investment into "gaming" was an Xbox when it first came out along with a couple Tom Clancy games. I didn't buy another video game for around 15 years until I finally reached a point in my life where I had some small semblance of "spare time". Around 2016, I finally caved in and bought a PS3 with Call of Duty which I've played probably less than a hundred times since. That's it. I've hardly played video games, much less ever designed or developed one. So, there's that. To be fair, I've never even played Minecraft or Roblox. Those are my kids' favorite games, though, which is what led me to find Minetest in the first place, in search of an open-source alternative I wouldn't have to spend a ton of money on to keep them busy (buying them coins so they can buy in-game content).

I suppose most of my frustration comes from expectations carried over from my professional life and feeling like a failure at the end of almost every day because I've devoted nearly every waking hour outside of work this past month trying to figure this thing out, and I'm still nowhere near where I'd hoped I'd be by now. I can't count how many times I've banged my head against the desk this past month thinking, "man, if this thing just had better documentation, I could do such amazing things." Then again, I'm a Scorpio and a veteran, so I'm strong-willed and hard-headed by both nature and nurture.

All that aside, I'm actually quite proud of myself for having figured any of this out at all, though, and from what you said, it seems I'm probably in good company with others who feel exactly the same. Hopefully, I will find my place here and eventually be able to contribute some useful things of value to the community. I'm definitely interested in pursuing this further and learning as much as possible -- perhaps even more so now after your response! I suppose I will have to figure out this "Discord" thing and come visit. I've heard of it a number of times, but still have no idea what it is. As to IRC, now you're speaking my language, but I kinda gave up after everyone split from Freenode. Wherever I may find you, I look forward to seeing you there!

User avatar
Blockhead
Member
Posts: 1622
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under
Contact:

Re: Honest feedback from a newcomer

by Blockhead » Post

nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
A lot of stuff
Welcome. Come in, sit down. I see you've read GreenXenith's post. I can agree with most of what he says. Let me add my own 2 cents (or a bit more than 2c worth I guess)

How would I characterise Minetest? Minetest is a volunteer project. It is overall is very hard to professionalise and presents a low barrier to entry. People aren't paid much so will only do so much. And they will do those things that are fun more readily than those that need doing but aren't fun. Minetest is decentralised. It has a core minetest.net website with some subdomains, a GitHub organisation, and an official IRC channel that is bridged to Discord and Matrix. But outside that, user-generated content can come from literally anywhere on the internet. Engine forks can be rehosted anywhere. There's no way to get banned by a company from playing a game you paid for *in singelplayer on your own device*. It's free software, and that's a good thing.

Minetest is by no means unique in its proliferation of trivial, poorly made and incompatible mods, which you can find a proliferation of on ContentDB OR CurseForge OR many Steam Workshops. The fact that people are bad at naming things is almost a universal constant, just look at the number of mods called something really generic like mobs, food, farming, or a my- prefix (whose?). Basically, you are asking the people who are total noobs to just be better somehow. Noobs don't magically get better, they have to go through a learning process like anyone else. And developing stricter inclusion criteria would just make people angrier, and sap more resources from ContentDB maintainers, who are volunteers.

The ContentDB maintenance state should probably be mandatory and more people should mark their version compatibility. GreenXenith already linked the ContentDB guide on these things; more people should read the ContentDB documentation. A lot of sensible people have adopted either semantic versioning or a rolling release model. You should do the same and encourage others to do the same. These are bugs with people and their processes, not technical ones.

You can and should PR documentation improvements. They make it into the source repository all the time, and not just for new features but many times for older or reworked features. Documentation improvements remove the difficulty of learning from a multiplicity of devs at the mere cost of some time from a singular or small group of devs. If you have a blog or something similar, please do write about Minetest, because people are going to find it in a search engine. A great clickbait would be something like "How to get started developing for Minetest in 2023".

Let's face it: The 3x3 Crafting system sucks, hard, and inevitably leads to conflicts for any non-trivial amount of mods. It worked for Notch when he started Minecraft and it was a simple game. It's basically an anti-pattern for large games though. The best thing you can do in your mod or game is avoid the 3x3 system and add your own types of crafting. Repixture uses a craft guide which allows you to select a recipe which just needs certain quantities. Nodecore takes the idea to the extreme. Basic Materials tries to help alleviate the issue somewhat by trying to be a common core dependency, but that has its own annoyances. Technic has many machines with different crafting types, sidestepping the issue somewhat. And AdvTrains faces the problem of trying to make 3x3 crafting grid recipes somehow work for every train mod we have, or having to engineer our own system. Overall a plea for centralisation and standardisation is fruitless - people are playing different games entirely, whether they are kidding themselves by playing modded MTG, or actually making a separate game like Mineclone. Multi-game mod support is a cool idea, but it's never going to be easy. Anyone who claims otherwise is just going to port basic materials to your game or some other nonsense, leading to no differentiation between games.

Asking everyone to use the same git host is just plain a bad idea, and sounds like a control move not a helpful one. You mentioned npm: well, npm package authors are free to put their linked source repositories anywhere. The majority do it on GitHub because GitHub is the 300 pound gorilla, but there are source repositories that link to GitLab as well. The only ways that multiple git hosters is a headache is registering on them to post issues and pull requests, and that some cgit sites don't support shallow clones. But you're a tech savvy guy. Use a password manager and GitHub/GitLab SSO where available. Minetest is decentralised and stands behind software and platform freedom.

P.S. Always write important forum posts in a separate editor, save it to disk, and then post by pasting into that. You never know if phpBB is going to eat your post :( It's happened to me before, even flubbing my keyboard inputs and deleting the post out of my browser without sending it to the server...
GreenXenith wrote:
Sat Jan 28, 2023 04:49
Discord server, if you'd like to have some more immediate responses and longer discussions around stuff like this. There is also the #minetest LiberaIRC channel, if Discord isn't your thing (which I am certain plenty of people will soon try to convince you of).
Hello, here I am. I would like to remind everyone that Discord is free as in beer proprietary messaging application which has few methods of funding beyond venture capital and trying to sell Nitro subscriptions which include features like bigger file uploads and playing games on a Discord server. It has furthered its efforts to make money with partnerships with companies like Microsoft (Xbox) and Spotify, and by selling merchandise. Discord claims to provide only aggregated data to their partners, but even the fact that they have that data is unnecessary. Discord has no way to use end to end encryption which should be standard to defeat dragnet surveillance. Discord has routinely been used as a vector for the propagation of malware and spamming. They can terminate your account for no reason at any time and you will lose access to all of your messages. You cannot own a Discord server, access is merely granted by Discord at their whim. Discord often asks you to provide a provide a phone number if you connect to it over Tor. Discord routinely scans the programs on your computer to see what game you are playing. Read more here.

By contrast, Matrix is a open network and standard for communication, which you can use with a completely free, open source stack of software. Element client for Matrix has the same basic features as Discord such as text chat, channels, link previews, voice chat and screen sharing, but is completely open source. You can own a Matrix server and it will federate/sync with other Matrix servers seamlessly. Matrix direct messages use end-to-end encryption. Matrix can easily be bridged to other platforms such as IRC and Discord like how the Minetest IRC channel is. The matrix usernames even look better on the IRC channel than the Discord ones because it's not just the Discord-IRC bot's username but an actual username with the [m] suffix. The only benefit Discord provides is mindshare/marketshare and perhaps some more advanced exclusive features which I honestly don't care about. But then again, most people don't care about privacy and free software, only convenience, so it's little surprise people use the Minetest Discord server.

(IRC is good too, but too rudimentary and archaic seeming for most people, needing things like bouncers and too few good newbie-friendly clients being available).
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB ✝️♂

User avatar
snoopy
Member
Posts: 263
Joined: Thu Oct 20, 2016 16:49
Location: DE, European Union

Re: Honest feedback from a newcomer

by snoopy » Post

Honestly?

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: Honest feedback from a newcomer

by rubenwardy » Post

Thanks for the thoughts. I don't really have time to read and reply to all of this, so I skim read through and then read in details the bits the stood out to me
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
However, trying to figure out which VERSION of the game itself (Minetest) or mod upon which another mod depends proved much more difficult.
ContentDB allows packages to mark which Minetest versions they support. If you find that a mod/game claims to support all versions but doesn't, you should report it so that we can tag it correctly.
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#1 - Versioning, across the board, seems extremely convoluted, and for the most part, totally undocumented as it relates to interdependency.

As with other systems which rely on package management, for example, NodeJS/NPM, I believe this could be fixed simply by adding version information to the "depends" field in mod.conf. In its current (comma delimited string) format, it may prove difficult, but perhaps tables could instead be used? e.g.:

Code: Select all

depends = {
	{ name = "mod_name", version = "1.2.3" },
	...
}
Package managers with versioned dependencies are incredibly complicated to implement. They also tend to require being able to install multiple versions of the same package, which is something that would break Minetest. In most cases, the latest versions of mods should just work. If they don't, please report the mods to us. Another problem is that depending on version numbers makes it harder to support forks and drop-in replacements

Note that the package manager already only shows packages that support the current engine version.

For more information about the difficulty of versioned package managers, see https://research.swtch.com/version-sat

ContentDB and the package installer was designed based on Minetest's requirements, which is why it's based purely on modnames for example.
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#2 - Aside from "Maintenance State" which is, from my observations, most frequently "unknown", ContentDB doesn't maintain any sort of flag/field indicating the overall status of a project.
Maintenance State is the field used to track this. It's required when editing packages, but if the user hasn't edited their package in a while it'll still be unknown. Adding a field to .conf files wouldn't help and would actually make things worse, as it would prevent ContentDB staff from being able to edit it

To find out the status of a package, you can look at recent releases, the git repo, and the author's forum/github accounts. If a package is broken and unmaintained, it's likely to end up removed from ContentDB by CDB staff
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#3 - It's a little bit of a pain that everyone hosts their code in different places, some of which (e.g. Gitlab) require me to set up an account just to access the code.
This is a non-issue, ContentDB is the single place for information about packages. We're not going to force content creators to use a single git service or use git at all, that's anti freedom
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
why doesn't Minetest just host its own official git server?
Because it hosts money, time, and isn't necessary
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
Anyway, the point is, the namespace here is completely polluted, and as a result, annoyingly convoluted. Some of you people are like domain squatters, reserving a namespace for a mod that you haven't even built yet by releasing an empty repo to ContentDB, or maybe with nothing but some mock code or, worse, code borrowed from another project that you intend to do differently.
ContentDB enforces the use of modnames, and I can grant exceptions where relevant. If the mod hasn't been created yet then the reservation is invalid - the mod needs to exist and have a forum topic or contentdb package to own the name
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
That's when I found "doors", "doors redo", "doors redux", "extra doors", "C doors"... holy cow! Which do I choose? Do I need them all? Oh, wait, none of them actually work right on their own, as sourced from the original repo (maybe a beginner mistake? Please correct me if I'm wrong!).

....

You know what's way more attractive and encouraging to new developers who might want to join in? Other developers working together to ensure that their code doesn't break someone else's. It's just being polite / common courtesy, and on that note, seniority always wins. The creators of the original "door mod" should not have to ensure forwards compatibility, but vice versa. If I install "doors redo" or "doors redux" it shouldn't break my installation of "doors", your project's direct predecessor. ** Note: no offense to whomever created the various door mods. I'm not even specifically referring to the "doors" mods, just using it as an example.
Mods using the same name on ContentDB are required to be API compatible with the original. The original in this situation is doors in Minetest Game. Doors Redux is not on ContentDB for this reason.
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
You guys DO know that the whole point of "open-source" is to allow contributions (see: additions and modifications) to a given project or piece of code, right? Is it that your ego is too big to contribute to someone else's work, or is the problem that the original authors' ego is too big to allow someone else to contribute to theirs? What's going on here? Why are there no less than 5 different ways to add any one thing to my game, all of which come with a boat load of other (mostly unwanted) tweaks or dependencies?
Actually, you misunderstand this. Open source doesn't necessitate this - you could have an open source mod, but not accept any pull requests or issues. Conversely, you could have a proprietary project and collaborate with others

The whole point about open source is actually free sharing and remixing. If you don't like how a project is being developed, you can fork it.
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
Original authors really should do the responsible thing and pass the torch whenever they're no longer interested in or capable of continuing a project.
It's usually hard to find someone to pass the torch to. And if someone is interested, they can fork the mod
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

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: Honest feedback from a newcomer

by rubenwardy » Post

GreenXenith wrote:
Sat Jan 28, 2023 04:49
I would like to first mention that the GitLab website is not really official, rather a third-party markdown-to-readthedocs conversion of the official monolithic API document found at https://github.com/minetest/minetest/bl ... ua_api.txt. The API is "written" in markdown format, but does not really use the markdown format. In fact, it's a text file (it couldn't reference sections if it wanted to).
Just want to point out that https://minetest.gitlab.io/minetest/ is official and not third-party. Soon, it'll be moved to a minetest.net subdomain
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#5 - What's up with the documentation?

The Minetest API itself (https://minetest.gitlab.io/minetest/) is a huge and helpful resource, and as I've said before, I am deeply grateful to those who made it possible. At the same time, it seems deftly incomplete; it's almost as if those who wrote it didn't want the casual reader to learn too much. Now, I'm shooting from the hip here. Perhaps it's just that nobody has had the time to go in and properly document things. Then again, it's been 13 years, and if I hold this project to the same standard I would any other open source project, I'd have to say there's a certain measure of neglect there. Either that, or there are way less people contributing here then I'd imagine. If there's only a handful of you working on this since day one, and nobody has so much as offered to help along the way, then I guess I'd understand.

My biggest complaint here is that there are no functional references (i.e. links to related documentation), very few working examples, and many functions, objects, classes, etc., leave too much to the imagination. All the functions (maybe? I don't know. I haven't cross-referenced the actual Minetest c++ source code or anything) seem to be documented, but there's few, if any places where the parameters/arguments or return values are actually documented. For example:
Updating documentation is very boring, so not many people bother, and it's hard to get changes merged into the engine. A big obstacle to this file is the format - for a long time, I was unable to gather the political will to change this from a .txt file to a markdown file (which allows links). Other core developers blocked this. This is why the documentation doesn't contain any links. I now have approval to change this file into a markdown file. We'll need volunteers to update and improve it, and add links to different sections

I'm well aware that the documentation sucks, it's one of the reasons I started making the Minetest Modding Book all that time ago. Unlike lua_api.txt, which aims to be a complete reference, the Modding Book aims to be a friendly guide/book to introduce the API. It doesn't aim to document everything exhaustively, but instead the core parts and theory needed. I plan to release it to print at some point, would be cool
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

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: Honest feedback from a newcomer

by rubenwardy » Post

The goal of ContentDB is to be a repository of well formatted information about packages.

As such, one of the major areas of work is to add more information to help users install the right mods. I recently added a new feature that allows mods and texture packs to declare what games they support, this will soon be displayed in the main menu - making it easier to find mineclone mods for mineclone, and warning the user when they try to enable a MTG mod on nodecore

I'm the only person working on ContentDB and my time is limited, so I can't do everything
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
cx384
Member
Posts: 653
Joined: Wed Apr 23, 2014 09:38
GitHub: cx384
IRC: cx384

Re: Honest feedback from a newcomer

by cx384 » Post

That's a lot of valuable feedback!
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#2 - Aside from "Maintenance State" which is, from my observations, most frequently "unknown", ContentDB doesn't maintain any sort of flag/field indicating the overall status of a project.
I also consider this a big problem. CDB is filled with unstable/unfinished/outdated packages and it very hard to tell which of them are in an usable state.
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#4 - Mods, texture packs, etc., overall, are poorly managed with no apparent oversight or vetting process
Back in the days this was no problem, since the amount of mods was very small and due to the small minetest community it was unlikely that someone would contribute to a project, but nowadays it became a problem.
People should really work together and establish more standards.
And not just publish own versions of everything, like it just happened with another color beds mod when it is easy to see that this has been done many times (first time 2012 by PilzAdam).
Can your read this?

Peril
Member
Posts: 40
Joined: Sun Feb 10, 2019 14:11

Re: Honest feedback from a newcomer

by Peril » Post

... and I thought I was verbose!
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#1 - Versioning, across the board, seems extremely convoluted, and for the most part, totally undocumented as it relates to interdependency.
I really love the idea, I'd extend this to say "recommended version" as newer versions may also work. So we don't want to confuse people unnecessarily.

That being said as you have pointed out this is down to mod maintainers to add to their readme files. They also should add which author as mods can share identical names. Minetest doesn't care as long as there is a mod with the name it is looking for.
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#2 - Aside from "Maintenance State" which is, from my observations, most frequently "unknown", ContentDB doesn't maintain any sort of flag/field indicating the overall status of a project.
I love this idea too but as far as I am aware, the maintainers of ContentDB are not paid and there are very few of them. About the only thing they have time for is checking the licenses and whether the content is appropriate. Whether it's working or not is entirely different and takes up way more time.

I'd help out, but for something like that I'd also want a small contribution for my time as it's not very exciting and it's not quick.
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#3 - It's a little bit of a pain that everyone hosts their code in different places, some of which (e.g. Gitlab) require me to set up an account just to access the code.
Mods are made by volunteers and absolutely nothing to do with the Minetest Devs. Most were hosted on Github until Microsoft took over and then everyone started to move to more open source decentralized repositories. This is a good thing.

To just see the code, you can download the mod, it's really that simple.

People won't agree on which platfrom to use because everyone has different requirements. Even if you tried to mandate that everyone use a "Minetest" repository, someone would just fork ContentDB and host their own putting further pressure on users to source mods elsewhere instead of being able to see just one central repository.
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#4 - Mods, texture packs, etc., overall, are poorly managed with no apparent oversight or vetting process
The is the same issue as in previous questions.

People have different requirements. Lets take the Anvil-mod, someone might just want a bog standard Anvil-mod that is basically a clone of Minecraft. Others might not want that behavior, they might want it to be cheaper, more expensive, they might not like the crafting recipes, the textures or whatever else. So they'll have their own mod or indeed texture pack.

While I my own grievance with how ContentDB organizes it's texture packs (I'd love to see the number of textures a pack contains without downloading, just a file count would do), these all have unique design philosophies. Artists often don't have the same vision for how their game is to look, others just can't carbon copy the style and don't want to ruin existing packs. They instead create and maintain their own. It is a lot of work, especially since some texture packs are not 16bit but range into 512 or 1024...

It's really the same thing with distros not everyone has the same requirements or needs. So when their needs aren't being met they create their own.

Regarding mods that still work, unfortunately this is a staffing issue, there are just not enough staff to do all of the work and minetest cannot afford to hire anyone (if they can, I'm willing to do to set a few hours of my time aside to help out). If you have concerns or queries about which mod you should use, you should head over to Modding Discussion and ask. Content DB does helpfully list which mods depend on what.

Open Source is that the code is open source. That's it. Whether you are allowed to contribute or fork is a licensing matter. Even if you are allowed to fork that doesn't mean you're permitted to change the original source code as that is entirely within the purview of the author.

Lets say for example my mod provides doors, in every color so long as it is black. But you want a blue door. That's cool, but I don't want it in my mod, because it does not match what my mod is about, not because your code is wrong or because I don't like your design or a host of other reasons but simply because it doesn't fit within my (the original author) vision.

Now I do agree with you that mods are very frequently packed full of too much stuff. As far as I'm concerned, each mod should have an individual item or effect. They should then be grouped into mod packs and then games. This would allow people to choose exactly what they want in their game. In some cases (see Anvil) some users have extracted mods out of other mods for this exact reason, they wanted to do something else. That's great because that's how it works.

If you want a mod to work your way, and it's open source and you can fork it, then have at.

Regarding TenPlus1 while he's great at supporting new users, the dev isn't so great at co-operating with other mod creators. As such his packs don't have support across other packs. Now, you say you've only been here a month or so, I have to tell you that some authors just don't hang around on a day to day basis, some will spend months away no problem. So it could be just a timing issue that you haven't had a response or you might not be corresponding with the new maintainer. It's hard to tell.

Some mods may add features to others, but other mods like a redo mod will completely overwrite the mod and of course it would be expected to be incompatible/conflict. They're not an extension, they're a replacement.
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#5 - What's up with the documentation?
There are definitely issues with the documentation, but again, staff. It has to be said that the Lua official documentation is the version of the truth you should be following. The minetest documentation... consider it more of a suggestion.

Until minetest gets more people involved... it's going to take a while.
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#6 Hi, I'm new here. Which permutation of possible items and configurations can I use to actually make a working recipe that doesn't conflict with / break someone else's without studying every single mod released to date and generating my own spreadsheet maybe?


Use a minetest-game, otherwise, unfortunately you will have to do this work yourself.

If you want to take over a mod, fork it and go for it.
Forgot my old username/email, it's been a number of years please bear with.
Stats: OS: Manjaro Linux; Using minetest-git via AUR

Peril
Member
Posts: 40
Joined: Sun Feb 10, 2019 14:11

Re: Honest feedback from a newcomer

by Peril » Post

rubenwardy wrote:
Sat Jan 28, 2023 18:19
The goal of ContentDB is to be a repository of well formatted information about packages.

As such, one of the major areas of work is to add more information to help users install the right mods. I recently added a new feature that allows mods and texture packs to declare what games they support, this will soon be displayed in the main menu - making it easier to find mineclone mods for mineclone, and warning the user when they try to enable a MTG mod on nodecore

I'm the only person working on ContentDB and my time is limited, so I can't do everything
Please add a file count to the texture packs? I use a lot of mods that have various textures and it's a bit hit and miss on which texture pack has textures for what. By simply installing one of the biggest I should be able to ensure most things are covered.
Forgot my old username/email, it's been a number of years please bear with.
Stats: OS: Manjaro Linux; Using minetest-git via AUR

nocturnalwizard
Member
Posts: 15
Joined: Wed Jan 18, 2023 20:34
GitHub: nocturnalwizard
In-game: nocwiz

Re: Honest feedback from a newcomer

by nocturnalwizard » Post

rubenwardy wrote:
Sat Jan 28, 2023 17:51
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
You guys DO know that the whole point of "open-source" is to allow contributions (see: additions and modifications) to a given project or piece of code, right? Is it that your ego is too big to contribute to someone else's work, or is the problem that the original authors' ego is too big to allow someone else to contribute to theirs? What's going on here? Why are there no less than 5 different ways to add any one thing to my game, all of which come with a boat load of other (mostly unwanted) tweaks or dependencies?
Actually, you misunderstand this. Open source doesn't necessitate this - you could have an open source mod, but not accept any pull requests or issues. Conversely, you could have a proprietary project and collaborate with others

The whole point about open source is actually free sharing and remixing. If you don't like how a project is being developed, you can fork it.
I never said that open source "necessitates" it, but that is the whole point of open source. It's a bit irresponsible of you to keep stating publicly (on Discord and now here) that I misunderstand open-source. You are directly implying that you are right and I am wrong. The real problem is that you have seniority here, and people listen to and trust you because of that.

I myself have spent the entire past month automatically prioritizing (in my mind) any post by "rubenwardy" simply because you wrote the "Minetest Modding Book". As a newcomer, that fact gave you instant credibility as far as I was concerned. So, what you say carries a lot of weight, and for that reason, you ought to be careful of what you say and how you say it (i.e. check your audience).

When people trust you based on your merits, that gives you great power of influence. Without the necessary experience and knowledge to counter your statements and viewpoints, people who do trust you will ultimately follow you and adopt your viewpoints and the knowledge you share as their own.

I myself been an open-source developer who has participated in and contributed to countless open-source projects over the past 3 decades, and I can tell you that there are a LOT more successful open-source projects in support of my philosophy than yours. The whole point of open-source (financial matters aside) is to embrace transparency, collaboration and peer review, therefore enhancing reliability and ensuring long-term success.

Transparency: with open source, I should be able to access the raw source code, the original artwork, audio, and assets, everything.

Let me ask you: how many mods come with .b3d files but no .blend files that I can import back into Blender if I want to make adjustments or simply learn how to create my own models and animations based on another previously created model?

Currently, my kids are begging for dinosaurs. I could pick up the reigns on (the new deprecated) PaleoTest and bring it up to speed if it were truly open source, but I cannot because it is not. The original author omitted the original .blend files and only provided the final "compiled" or "rendered" .b3d, therefore making it "closed source" or, in other words, PROPRIETARY.

Countless other projects follow the same philosophy as yours: "It's open source, so I can do whatever I want." To me, that shows a lack of direction, purpose, and leadership within the community. Where is the commitment to responsibility and accountability?

Collaboration: every open source project should include "contribution guidelines." These are usually laid out by the original authors/maintainers and they're well documented (in the README or CONTRIBUTING file, for example) in countless open source projects.

There's more ways to contribute than simply writing code. There's documentation to write, announcements to make, end-users to keep informed, and countless other things an open source project must do to stay alive, relevant, and useful. Contribution guidelines should tell me the ways in which I can get involved in a project, what needs to be done, and set forth expectations and standards for such contributions. So long as I act in accordance with those guidelines, I should be welcome to make said contributions. Contributions should be encouraged and welcomed.

Conversely, here in the Minetest world, most mods appear to be authored and maintained by a single individual, or maybe a couple of friends, with no clear path to making any contribution at all. When the original author(s) disappears, gives up, loses interest, or whatever, the project dies.

What's the net cost to the total user base when people follow your philosophy? No harm, no foul, right? "Just go make your own!" Except, now every single user who wants to continue using a mod that previously died and was revived later as an entirely separate project must
  • Discover / be made aware that a new alternative exists
  • Uninstall the first version (possibly breaking other mods which depended on it)
  • Install the "new" version (possibly further breaking other mods because it's not backwards-compatible)
  • Figure it out or give up and abandon that mod altogether along with any which depended on it
Not to mention that all the history is lost. There's no clear version history to follow. I can't go back and make direct comparisons (diff) or review specific commits to see what changed or, the most important aspect of open source: WHO CHANGED IT.

Peer Review: the greatest part about a healthy open source project/community is that there are OTHER developers reviewing your code. The "second set of eyes" is inherent in the development process, and two minds are always better than one.

You specifically said that if you don't like the way something works, or you want it to do something different, you should just create a fork. THAT IS NOT WHAT FORKS ARE FOR. Forking is only used for that purpose when things GO WRONG, for example when projects reach deadlocks due to disagreements, closed mindedness, or unwillingness to adopt new ideas and features; also when projects DIE because the maintainers gave up, quit, died, bailed, or otherwise ABANDONED the project. Ideally, in a healthy open source project/community, THIS SHOULD NEVER HAPPEN.

Github:
A fork is a new repository that shares code and visibility settings with the original “upstream” repository. Forks are often used to iterate on ideas or changes before they are proposed back to the upstream repository, such as in open source projects or when a user does not have write access to the upstream repository.
Atlassian/Bitbucket:
The Forking Workflow helps a maintainer of a project open up the repository to contributions from any developer without having to manually manage authorization settings for each individual contributor. This gives the maintainer more of a "pull" style workflow.
Gitlab:
Whenever possible, it’s recommended to work in a common Git repository and use branching strategies to manage your work. However, if you do not have write access for the repository you want to contribute to, you can create a fork.

A fork is a personal copy of the repository and all its branches, which you create in a namespace of your choice. This way you can make changes in your own fork and submit them through a merge request to the repository you don’t have access to.
FreeCodeCamp:
Suppose you love working on a particular framework or library like React.js. One fine day, you figure out a way that you can enhance the functionality of React yourself. React's source code is available as a public repository on GitHub, so you can make a local copy of it by forking it. Once you get the local copy of the code, you can make the relevant changes and ask the React community to review your changes. After reviewing your code changes, the React community may approve them or ask you for more changes. They are most likely to take your code changes after approval.
With open source, provided that I follow the guidelines set forth by the project maintainers, I should be able to contribute whatever I want so long as it adds benefit and value to the project overall in alignment with the project's goals. THAT is the whole point of FORKS. We should fork a project (of which we are not a direct contributor or maintainer), make proposed changes, then create a pull request back to the upstream project for PEER REVIEW by other contributors and the project maintainers and, provided that it adds benefit, does not cause any harm (such as causing other components to break), it should get merged in. That's how you become a "contributor." Otherwise, if you have direct access, you could just create a branch.

ONLY IF it is rejected for one reason or another should I consider creating my own alternate "version." -- the vast majority of mods are created by one person and those people seem entirely closed minded to allowing such collaboration. Go look at the number of mods with pull requests that have been sitting open for a year or longer with zero response at all from the original author/maintainer.

So, with that, I disagree with your views on open source. Personally, I love how Red Hat puts it:
Open source software is developed in a decentralized and collaborative way, relying on peer review and community production. Open source software is often cheaper, more flexible, and has more longevity than its proprietary peers because it is developed by communities rather than a single author or company.

What are the values of open source?

There are lots of reasons why people choose open source over proprietary software, but the most common ones are:

Peer review: Because the source code is freely accessible and the open source community is very active, open source code is actively checked and improved upon by peer programmers. Think of it as living code, rather than code that is closed and becomes stagnant.

Transparency: Need to know exactly what kinds of data are moving where, or what kinds of changes have happened in the code? Open source allows you to check and track that for yourself, without having to rely on vendor promises.

Reliability: Proprietary code relies on the single author or company controlling that code to keep it updated, patched, and working. Open source code outlives its original authors because it is constantly updated through active open source communities. Open standards and peer review ensure that open source code is tested appropriately and often.

Flexibility: Because of its emphasis on modification, you can use open source code to address problems that are unique to your business or community. You aren’t locked in to using the code in any one specific way, and you can rely on community help and peer review when you implement new solutions.

Lower cost: With open source the code itself is free—what you pay for when you use a company like Red Hat is support, security hardening, and help managing interoperability.

No vendor lock-in: Freedom for the user means that you can take your open source code anywhere, and use it for anything, at anytime.

Open collaboration: The existence of active open source communities means that you can find help, resources, and perspectives that reach beyond one interest group or one company.

nocturnalwizard
Member
Posts: 15
Joined: Wed Jan 18, 2023 20:34
GitHub: nocturnalwizard
In-game: nocwiz

Re: Honest feedback from a newcomer

by nocturnalwizard » Post

Peril wrote:
Sat Jan 28, 2023 20:29
... and I thought I was verbose!
You haven't seen anything yet LOL
Peril wrote:
Sat Jan 28, 2023 20:29
I really love the idea, I'd extend this to say "recommended version" as newer versions may also work. So we don't want to confuse people unnecessarily.
True, whether it's "Confirmed working with..." or "Recommended version:" is all the same.
Peril wrote:
Sat Jan 28, 2023 20:29
That being said as you have pointed out this is down to mod maintainers to add to their readme files. They also should add which author as mods can share identical names. Minetest doesn't care as long as there is a mod with the name it is looking for.
And that's precisely why it comes down to leadership within the community. I understand now that this is mostly a volunteer effort, made up of many "hobbyists and tinkerers." Without clear guidance, how can we expect anyone to know what to do? Even with all my years of experience, I feel totally lost here. Imagine how someone who has no real "open source" experience must feel: "figure it out."
Peril wrote:
Sat Jan 28, 2023 20:29
I love this idea too but as far as I am aware, the maintainers of ContentDB are not paid and there are very few of them. About the only thing they have time for is checking the licenses and whether the content is appropriate. Whether it's working or not is entirely different and takes up way more time.
Welcome to the land of open source.
Peril wrote:
Sat Jan 28, 2023 20:29
I'd help out, but for something like that I'd also want a small contribution for my time as it's not very exciting and it's not quick.
Unfortunately, if everyone maintained your position, open source would go nowhere. Personally, I contribute because it makes my life easier and I get to build the things I want and like. By contributing responsibly (adding relevant documentation, etc., for whatever I do create, or at least providing guidance to someone else who is willing to make that effort), I also make and leave things a little bit easier and better for the next guy who comes along.

In open source communities, we have to at least make an attempt to forego our natural self-centered tendencies. It's the golden rule... do for others, and the good of all. Your compensation is in the form of credit where credit is due... "Peril contributed all of the documentation for the PlayerMetaRef documentation... thanks Peril!"
Peril wrote:
Sat Jan 28, 2023 20:29
Mods are made by volunteers and absolutely nothing to do with the Minetest Devs. Most were hosted on Github until Microsoft took over and then everyone started to move to more open source decentralized repositories. This is a good thing.
I can't imagine why...
As of January 2023, GitHub reported having over 100 million developers and more than 372 million repositories, including at least 28 million public repositories. It is the largest source code host as of November 2021.
What are people really afraid of?
Peril wrote:
Sat Jan 28, 2023 20:29
People have different requirements. Lets take the Anvil-mod, someone might just want a bog standard Anvil-mod that is basically a clone of Minecraft. Others might not want that behavior, they might want it to be cheaper, more expensive, they might not like the crafting recipes, the textures or whatever else. So they'll have their own mod or indeed texture pack.
No problem, but please make it descriptive: "cheaper_anvil_mod" or "expensive_anvil_mod" is a whole lot easier to understand than "super duper anvil mod redone twice and improved" ("improved" because... well, because I say so!)

But this also comes back to my question of "why does everyone need to stake their claim to fame?" If you want to make tweaks to suit yourself or your server or whatever, it doesn't need to be released as a whole new mod to the entire community. Make your tweaks. Be happy. If others see your tweaks and say "boy, I wish I had that!" THEN consider forking and creating a publicly available alternative. However, so long as your mod is but a "tweak" to an existing mod, you (should) take on the responsibility of ensuring backwards compatibility, and whenever the origin is updated, you should ensure that yours is updated to maintain such compatibility.
Peril wrote:
Sat Jan 28, 2023 20:29
(all commentary regarding texture packs)
I can't even comment because I haven't even gotten into that yet.
Peril wrote:
Sat Jan 28, 2023 20:29
It's really the same thing with distros not everyone has the same requirements or needs. So when their needs aren't being met they create their own.
Again, fine. Why does it need to become a whole new mod cluttering up the ecosystem though? Download the mod, make your tweaks, be happy. That's how the vast majority of the Linux world works. You pick one you like, then tweak accordingly. If every single Linux user created a whole new distro for every single tweak and preference, it would be impossible to navigate. It already is, for the most part.

That's one of the things that has held Linux back since the early 90's. When someone wants Windows, or Mac OS, they just install Windows or Mac OS. Comparatively, look where Linux is: Linux Distribution Timeline -- impossible to navigate.
Peril wrote:
Sat Jan 28, 2023 20:29
Regarding mods that still work, unfortunately this is a staffing issue, there are just not enough staff to do all of the work and minetest cannot afford to hire anyone (if they can, I'm willing to do to set a few hours of my time aside to help out). If you have concerns or queries about which mod you should use, you should head over to Modding Discussion and ask. Content DB does helpfully list which mods depend on what.
No, that's irresponsibility of the authors/maintainers. I get that this community is mostly made up of amateurs -- "hobbyists and tinkerers" -- but legitimate developers make it a point to go back and leave notes, even just to say "I'm not doing this anymore. Let me know if you want to take it over, or fork it, because I'm done." Even on communities like Stackoverflow, responsible users make a habit of going back through old posts and updating when things change. There's just zero accountability here, and again, that comes down to poor leadership and direction from the community as a whole.
Peril wrote:
Sat Jan 28, 2023 20:29
Open Source is that the code is open source. That's it. Whether you are allowed to contribute or fork is a licensing matter. Even if you are allowed to fork that doesn't mean you're permitted to change the original source code as that is entirely within the purview of the author.
Indeed, but that's an entirely different topic and nothing to do with the points I addressed.
Peril wrote:
Sat Jan 28, 2023 20:29
Lets say for example my mod provides doors, in every color so long as it is black. But you want a blue door. That's cool, but I don't want it in my mod, because it does not match what my mod is about, not because your code is wrong or because I don't like your design or a host of other reasons but simply because it doesn't fit within my (the original author) vision.
That's the sort of thinking that kills projects (and relationships). THIS IS MINE, AND MY WAY IS BEST! Who would even want to be around a person like that? I dislike a lot of shit my wife likes, but I just shut up and go along with it. We find ways to compromise and make it work so we both get what we want without having to maintain two separate households. How irresponsible would that be? Now our kids have to figure out which home is "home"? Which bed they're sleeping in this week? How do you think your end-users feel? You force them to pick sides, and things always go wrong when "black door" guy makes some really cool update, but now "blue door" guy refuses to also update because of the resentment he still holds from when "black door" guy said "blue doors are stupid!"
Peril wrote:
Sat Jan 28, 2023 20:29
Now I do agree with you that mods are very frequently packed full of too much stuff. As far as I'm concerned, each mod should have an individual item or effect. They should then be grouped into mod packs and then games. This would allow people to choose exactly what they want in their game. In some cases (see Anvil) some users have extracted mods out of other mods for this exact reason, they wanted to do something else. That's great because that's how it works.
Now you're talking. See Unix Philosophy. Ideally, each mod should follow this philosophy: do only one thing, and do it well.
Peril wrote:
Sat Jan 28, 2023 20:29
If you want a mod to work your way, and it's open source and you can fork it, then have at.
That's another problem. Why does everyone think they must create a fork, much less a whole new mod? Download it, tweak it, be happy.
Peril wrote:
Sat Jan 28, 2023 20:29
Regarding TenPlus1 while he's great at supporting new users, the dev isn't so great at co-operating with other mod creators. As such his packs don't have support across other packs. Now, you say you've only been here a month or so, I have to tell you that some authors just don't hang around on a day to day basis, some will spend months away no problem. So it could be just a timing issue that you haven't had a response or you might not be corresponding with the new maintainer. It's hard to tell.
Again, a lack of responsibility. If you created it, you should make a best effort attempt to support it, or at least make it possible for others to do so in your absence. Otherwise, you contribute only to the mess.
Peril wrote:
Sat Jan 28, 2023 20:29
Some mods may add features to others, but other mods like a redo mod will completely overwrite the mod and of course it would be expected to be incompatible/conflict. They're not an extension, they're a replacement.
Then that should be clearly stated, and any deviations or differences from the original should be documented so "doors" users know what they need to change or do if they want to use your "doors redone (differently)."
Peril wrote:
Sat Jan 28, 2023 20:29
There are definitely issues with the documentation, but again, staff. It has to be said that the Lua official documentation is the version of the truth you should be following. The minetest documentation... consider it more of a suggestion.

Until minetest gets more people involved... it's going to take a while.
I'd gladly take on that project, but I myself don't know enough to do so. Who can I talk to? Anyone willing to volunteer some time to answer questions that would help me generate more valuable documentation, such as parameter types and values, return types and values, etc.?
Peril wrote:
Sat Jan 28, 2023 20:29
nocturnalwizard wrote:
Sat Jan 28, 2023 00:06
#6 Hi, I'm new here. Which permutation of possible items and configurations can I use to actually make a working recipe that doesn't conflict with / break someone else's without studying every single mod released to date and generating my own spreadsheet maybe?


Use a minetest-game, otherwise, unfortunately you will have to do this work yourself.
Exactly. Why not maintain a central database of recipes so others can easily figure out what's already been done and what's available / not currently used?
Peril wrote:
Sat Jan 28, 2023 20:29
If you want to take over a mod, fork it and go for it.
And that's exactly what created this mess. Forking (by yours and rubenwardy's definition) is not taking over a project, continuing a project, contributing to a project, or really anything to do with that project at all. It's creating a whole new project, which is why there are 15 different ways to do everything. Direct comparison:
  • pico
  • nano
  • vi
  • vim
  • emacs
  • ...and the list goes on

nocturnalwizard
Member
Posts: 15
Joined: Wed Jan 18, 2023 20:34
GitHub: nocturnalwizard
In-game: nocwiz

Re: Honest feedback from a newcomer

by nocturnalwizard » Post

GreenXenith wrote:
Sat Jan 28, 2023 04:49
you may be expecting too much from a ragtag community of hobbyists, volunteers, and tinkerers.
I think the bigger problem is that I didn't realize how many people were trying to monetize their contributions, use their contributions as a springboard into pseudo-entrepreneurialism, or otherwise attempt to profit or gain from Minetest.

User avatar
Blockhead
Member
Posts: 1622
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under
Contact:

Re: Honest feedback from a newcomer

by Blockhead » Post

What then, nocturnalwizard, should *really* change in Minetest? What will you do? Are you volunteering to dedicate a lot of time to manage Pull Requests against minetest-mods repositories, and asking more people to move their stuff there? That would seem to align with your principles and advice. We certainly need the help.
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB ✝️♂

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: Honest feedback from a newcomer

by rubenwardy » Post

I think maybe we're talking about different things. I'm talking about open source software as in the open source definition: https://opensource.org/osd
It gives users certain freedoms, including free distribution, access to source code, and more. It says nothing about how the project is developed.

You appear to be talking about "open source values", which is distinct and not required to be followed by open source software.

I never said anything about my own values or philosophy, just that open source software gives rights and doesn't imply anything else. I, of course, agree with and follow "open source values" in my own projects. But that doesn't mean that everyone does
nocturnalwizard wrote:
Sat Jan 28, 2023 22:36
Conversely, here in the Minetest world, most mods appear to be authored and maintained by a single individual, or maybe a couple of friends, with no clear path to making any contribution at all. When the original author(s) disappears, gives up, loses interest, or whatever, the project dies.
There's the mt-mods organisation that forks popular mods when the author has left. A few mods were also transferred to them by the author, including all of VanessaE's mods.
nocturnalwizard wrote:
Sat Jan 28, 2023 22:36
Not to mention that all the history is lost. There's no clear version history to follow. I can't go back and make direct comparisons (diff) or review specific commits to see what changed or, the most important aspect of open source: WHO CHANGED IT.
If the original author used git and the new author is competent, then they will have kept the git history.
nocturnalwizard wrote:
Sat Jan 28, 2023 22:36
You specifically said that if you don't like the way something works, or you want it to do something different, you should just create a fork. THAT IS NOT WHAT FORKS ARE FOR. Forking is only used for that purpose when things GO WRONG, for example when projects reach deadlocks due to disagreements, closed mindedness, or unwillingness to adopt new ideas and features; also when projects DIE because the maintainers gave up, quit, died, bailed, or otherwise ABANDONED the project. Ideally, in a healthy open source project/community, THIS SHOULD NEVER HAPPEN.
Forking is a natural part of open source. Not every one agrees to how a project should be developed - whether that be development direction or ways of working. An author is not required to accept your changes if they don't believe it's in their vision for their project, in which case you can fork and make your own version. Forking is also a valid option when the parent project dies.

One example of a fork is Voxelands. The developer behind Voxelands decided to fork Minetest when it added a modding API, because the developer disagreed and wanted to focus on making a builtin game in C++ instead. These two goals are fundamentally opposing, you can't have both of these. Differences in opinion and vision is not a bad thing, and it's great that open source gives you the ability to take something and move it in your own direction.

Please note that a "fork" is a specific type of repository in GitHub and other git services used to contribute code back to the original. It is distinct from project forking, where you decide to make your own new project. In fact, you don't want to use the fork feature to fork a project on GitHub as it disables the use of issues and other features

------------------------------------

Something you have to remember is that Minetest is a hobby for a lot of people, they do it for fun in their own time and don't necessarily want to provide long term support. Minetest makes making mods easy, a lot of kids are doing it - not everyone is adept at programming and collaboration.

It would be great to see more collaboration, but the freedom to create and share is important in an open source community
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

AwesomeDragon97
Member
Posts: 14
Joined: Sat Nov 12, 2022 23:53

Re: Honest feedback from a newcomer

by AwesomeDragon97 » Post

nocturnalwizard wrote: Another example is mobs. I've spent over a week now just trying to get mobs to work together, but I can't seem to do so. Everyone goes their own way, and nobody seems to have any consideration for the other. The ONLY author who has reached back out to me when I sent a private message asking for details was TenPlus1 **shout out, you're awesome**. From my limited newcomer perspective, the overall lack of cooperation screams "MY MOD IS THE COOLEST! Who cares about those other ones?"
Mobs are one of Minetest's weakest areas in my opinion. This stems from two reasons:

1. There are around 5 different mob APIs, and mixing mods that add mobs from multiple APIs causes lag and weird interactions between mobs from different APIs.

2. It is incredibly difficult to make decent mobs. Not only do you have to make a complex 3d model, but you also have to texture it and animate it, which is way more effort than adding a few nodes or structures. After this you have to code specific behaviour for the mob which may or may not be provided by the mob API you are using. I tried to make a mod that added mobs but gave up halfway through because it was taking too much effort to make one simple mob.
nocturnalwizard wrote: The original author omitted the original .blend files and only provided the final "compiled" or "rendered" .b3d, therefore making it "closed source" or, in other words, PROPRIETARY.
3d geometry and compiled binaries are completely different things. Compiling C code for example discards information, meaning that there is no way to recover the original without reconstructing it. 3d geometry on the other hand is a list of 3d points and triangles connecting these points, and any 3d file format including b3d has all of its UV mapping and geometry data, not just the "render". There are a handful of programs that can import and export b3d files (though not many, since b3d is an outdated format that we really should move away from).
nocturnalwizard wrote: You specifically said that if you don't like the way something works, or you want it to do something different, you should just create a fork. THAT IS NOT WHAT FORKS ARE FOR. Forking is only used for that purpose when things GO WRONG, for example when projects reach deadlocks due to disagreements, closed mindedness, or unwillingness to adopt new ideas and features; also when projects DIE because the maintainers gave up, quit, died, bailed, or otherwise ABANDONED the project. Ideally, in a healthy open source project/community, THIS SHOULD NEVER HAPPEN.
The whole point of free and open source software is that you can fork anything for any reason (provided you abide by the license terms), even if it still being actively developed. If you think that a mod/game is perfect in every way but has one texture that you don't like then you can make a fork of it to change it. This would not be possible for a proprietary program, where you are at the mercy of a profit driven corporation (example: Minecraft chat reporting).
nocturnalwizard wrote: See Unix Philosophy. Ideally, each mod should follow this philosophy: do only one thing, and do it well.
I agree with this sentiment, there are many bloated mods with a bunch of random, unnecessary and sometimes undesired features grouped under one namespace. I have tried to make my mods follow the UNIX philosophy, and many others seem to be doing this as well.

User avatar
firefox
Member
Posts: 1709
Joined: Wed Jan 14, 2015 07:34
In-game: Red_Fox
Location: Xanadu

Re: Honest feedback from a newcomer

by firefox » Post

AwesomeDragon97 wrote:
Sun Jan 29, 2023 04:01
But what do I do if I want dinosaurs in my game right now?
Wilhelmine has a bunch of mods for biomes and mobs, one of them adds dinosaurs and other prehistoric animals to the floatlands of v7 maps (or the overworld of other maps). it works with TenPlus1's mobs redo.

haven't tried it yet, since i have been much out of touch with the game over the last year, but from what i've seen so far Wilhelmine's mods look very promising in content addition and aesthetics.
✨🏳️‍🌈♣️✨

User avatar
Liil
Member
Posts: 127
Joined: Thu Dec 03, 2020 15:29

Re: Honest feedback from a newcomer

by Liil » Post

AwesomeDragon97 wrote:
Sun Jan 29, 2023 04:01

2. It is incredibly difficult to make decent mobs. Not only do you have to make a complex 3d model, but you also have to texture it and animate it, which is way more effort than adding a few nodes or structures. After this you have to code specific behaviour for the mob which may or may not be provided by the mob API you are using. I tried to make a mod that added mobs but gave up halfway through because it was taking too much effort to make one simple mob.
Yes, it is not easy to make mobs in Minetest. Sadly Minetest still does not support modern model and animation formats. Blockbench should be supported and I hope this happens some day in the future. I do my models in blockbench, but I have to convert them in Blockbench from generic to java model, export them and then import them into Blender. In Blender, it is very time consuming and uncomfortable to do voxel models and textures, Blockbench is much better. The animation system of Blender is not made for voxel games, but for larger, complex models. It is also very complicated and time consuming. I personally dislike the whole skeleton system of Blender. I do it my own way, I use a single bone for every part I want to animate at the model. This is against the normal way of making animations in blender and therefore, my models only look normal, when shaders in Minetest are actived. But hondestly, where is the reason, for making a complex skeleton with weights and other stuff for a simple blocky creature? It is a waste of time and very complicated.
After that, you have to convert the models into .b3d files, to make them work in Minetest.

Using one program for everything, without having to convert the models in many steps would be much easier and much more newbie friendly.
cdb_xMf8awymgVmp

Ghurir
New member
Posts: 3
Joined: Mon Jan 30, 2023 17:30

Re: Honest feedback from a newcomer

by Ghurir » Post

Liil wrote:
Sun Jan 29, 2023 11:25
Yes, it is not easy to make mobs in Minetest. Sadly Minetest still does not support modern model and animation formats. Blockbench should be supported and I hope this happens some day in the future. I do my models in blockbench, but I have to convert them in Blockbench from generic to java model, export them and then import them into Blender. In Blender, it is very time consuming and uncomfortable to do voxel models and textures, Blockbench is much better. The animation system of Blender is not made for voxel games, but for larger, complex models. It is also very complicated and time consuming. I personally dislike the whole skeleton system of Blender. I do it my own way, I use a single bone for every part I want to animate at the model. This is against the normal way of making animations in blender and therefore, my models only look normal, when shaders in Minetest are actived. But hondestly, where is the reason, for making a complex skeleton with weights and other stuff for a simple blocky creature? It is a waste of time and very complicated.
After that, you have to convert the models into .b3d files, to make them work in Minetest.

Using one program for everything, without having to convert the models in many steps would be much easier and much more newbie friendly.
You can enable rigify and use one of the premade rigs.

User avatar
Komodo
Member
Posts: 163
Joined: Tue Jan 11, 2022 13:33
GitHub: MeseCraft
In-game: Komodo
Location: God Bless America
Contact:

Re: Honest feedback from a newcomer

by Komodo » Post

@nocturnalwizard, Thanks for the feedback about MeseCraft. I've worked really hard on getting MeseCraft and it's community together. I'd be interested in feedback if you want to share. MeseCraft.com (I don't want to get off-topic on this thread) if you'd like to discuss MeseCraft specific stuff and suggestions. Also, I agree with a lot of your points about the mods in Minetest being disjointed, not integrated, and difficult to use and navigate. The level of quality is just not there in a lot of stuff and it's difficult to do quality vs quantity or concepts in Minetest.. That said the freedom Minetest provides to create and learn and share is very powerful.
I suppose most of my frustration comes from expectations carried over from my professional life and feeling like a failure at the end of almost every day because I've devoted nearly every waking hour outside of work this past month trying to figure this thing out, and I'm still nowhere near where I'd hoped I'd be by now.
Hey, you have kids, a complex job, responsibilities. Go easy there on yourself. Ask yourself if you want to commit to learning this and if you do go for it with patience and stick around communities that share/discuss at a pace that works for your life. I recently had a kid and have scaled back from when I was single. You'll be there in no time.
🌎 Website | 🌲 MeseCraft Game | 📰 News | 🖌️ ContentDB

User avatar
celeron55
Administrator
Posts: 532
Joined: Tue Apr 19, 2011 10:10
GitHub: celeron55
IRC: celeron55

Re: Honest feedback from a newcomer

by celeron55 » Post

Sorry for the phpBB session thing.

Having said that, that's pretty much just how phpBB and the web is. I recommend, by the time you've written a screenful of text, to switch to a local text editor. Because, you know.

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 6 guests