Modding/Development in Minecraft vs Minetest: A practical comparison

Post Reply
mothnox
New member
Posts: 3
Joined: Fri Jul 01, 2022 16:17
GitHub: mothnox

Modding/Development in Minecraft vs Minetest: A practical comparison

by mothnox » Post

The purpose of this post is to provide a list of the practical differences between modding Minecraft, and modding/creating a game for Minetest. It is not a comparison of which is "better", as I'm sure there have already been plenty of those.

Note that while I've done a good bit of modding for Minecraft, I'm very new to Minetest, and have only started experimenting with it in the last couple of days. The information in the Minetest half of this post is what I've gathered from reading about Minetest and its API, and from playing a few games in Minetest, and may not be fully accurate. If you notice any inaccuracies, let me know and I'll edit this.

Minecraft:
  • Already a fully fleshed out game. Great if you want to do things that Minecraft does, but can become more difficult (or straight up impractical) when attempting to go too far beyond that.
  • Has a very in-depth unofficial API (Forge) (And maybe also Fabric now, though I can't speak on that personally as I've only used Forge)
    • (As a sort of sub-note, you can just straight up directly render things with OpenGL in a Minecraft mod, which is nice, though admittedly a bit niche. As far as I know, Minetest doesn't really have an equivalent to this.)
  • Breaks mods a lot between major updates, and often necessitates that modders relearn large parts of the modding process
  • Not FOSS, which makes modding a bit legally gray, though Mojang/Microsoft have thus far been mostly content to leave it be
  • Has a large player base. This can potentially result in more players playing your mod, but due to the vast number of mods, there's also a greater chance of it getting overlooked

Minetest:
  • An engine for voxel games. Okay if you want to mod a Minecraft-like game, but its real potential is in its ability to make games that aren't Minecraft.
  • Has an official API for making games, and games (and mods) can provide their own APIs as well.
  • Doesn't break much between major updates, and the API stays generally the same
  • FOSS, which makes the legality of modding very straightforward
  • Does not currently have a large player base. This means that there are less people to play games/mods, but a well-designed game/mod will also likely stand out more.
Feel free to add anything else that I may have overlooked.

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: Modding/Development in Minecraft vs Minetest: A practical comparison

by rubenwardy » Post

That's correct

However, I will note that Minetest's two main limitations are:

1) All mods are server-side: you can't run things on the client. This means that it's impossible for mods to make OpenGL calls and render custom things

2) Mods are plugin based in Lua, whereas the engine is in C++. This means that mods can only do things if there's an API for it. With patch/reflection based APIs like Minecraft uses, you can do a lot more but it also breaks much more easily
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

mothnox
New member
Posts: 3
Joined: Fri Jul 01, 2022 16:17
GitHub: mothnox

Re: Modding/Development in Minecraft vs Minetest: A practical comparison

by mothnox » Post

1) All mods are server-side: you can't run things on the client. This means that it's impossible for mods to make OpenGL calls and render custom things
Are there any plans for client-side mods?
2) Mods are plugin based in Lua, whereas the engine is in C++. This means that mods can only do things if there's an API for it. With patch/reflection based APIs like Minecraft uses, you can do a lot more but it also breaks much more easily
That's mostly what I was trying to get at with the first and second points (plus the idea that if you attempt to mod Minecraft into something different enough, you will inevitably end up fighting against the existing code, and past a certain point, you're better off making your own game, whether in Minetest or some other engine), but your phrasing of it is a lot clearer.

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: Modding/Development in Minecraft vs Minetest: A practical comparison

by rubenwardy » Post

mothnox wrote:
Sat Jul 02, 2022 20:58
Are there any plans for client-side mods?
There are plans for it and even some work done. Users can install client-side mods that can do some basic things. The next thing is server-sent client-side mods - this is where games and mods can specify or send client-side code that they need. The main blocker for is security, as sending code to clients can result in very bad things

We created a roadmap last year, and client-side modding wasn't even on it. Improved user interfaces, graphics, and improved entity APIs were considered more important. So it'll probably be a while before support for this is added
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

mothnox
New member
Posts: 3
Joined: Fri Jul 01, 2022 16:17
GitHub: mothnox

Re: Modding/Development in Minecraft vs Minetest: A practical comparison

by mothnox » Post

rubenwardy wrote:
Sun Jul 03, 2022 15:06
The next thing is server-sent client-side mods - this is where games and mods can specify or send client-side code that they need. The main blocker for is security, as sending code to clients can result in very bad things
I imagine you'd probably want some sort of system like the secure.trusted_mods type of deal, where users have to allow code to be sent, right? As far as other possibilities, you could require that code not be sent dynamically, but instead, the entirety of code that would be run client-side when the server needs it be downloaded to the client when first installing the game/before joining the server. I'm admittedly not an expert on designing secure systems/sandboxing, as I haven't worked on any projects where it was relevant, but I am really good at breaking things and finding bugs in general, so I could help with testing it once it becomes more of a priority.

User avatar
ivon
New member
Posts: 2
Joined: Sun Nov 21, 2021 01:11
GitHub: ivon852
Contact:

Re: Modding/Development in Minecraft vs Minetest: A practical comparison

by ivon » Post

Aside from Minecraft Java Edition, Minecraft Bedrock Edition has officially built-in "modding" support from Micro$oft. It is called Add-On. Basically you just write some simple json scripts to run commands and change mob behaviors. Just like datapack in Java Edition. Later on it can add mobs and new items to the game. Making Add-On is fairly easy in comprison with Forge modding. Now they are trying to implement Javascript modding for Bedrock.
Although players could download Add-On freely and install it manually, Bedrock Edition was manily advertiesd to purchase maps (include Add-On) made by communities or Mojang on marketplace, so they could earn more.

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

Re: Modding/Development in Minecraft vs Minetest: A practical comparison

by runs » Post

rubenwardy wrote:
Sun Jul 03, 2022 15:06
mothnox wrote:
Sat Jul 02, 2022 20:58
Are there any plans for client-side mods?
There are plans for it and even some work done. Users can install client-side mods that can do some basic things. The next thing is server-sent client-side mods - this is where games and mods can specify or send client-side code that they need. The main blocker for is security, as sending code to clients can result in very bad things

We created a roadmap last year, and client-side modding wasn't even on it. Improved user interfaces, graphics, and improved entity APIs were considered more important. So it'll probably be a while before support for this is added
Clientaside mods are important. It is like ReactJS. It offloads to the server many tasks.

The problem is that now servers are slow.

Astrobe
Member
Posts: 570
Joined: Sun Apr 01, 2018 10:46

Re: Modding/Development in Minecraft vs Minetest: A practical comparison

by Astrobe » Post

runs wrote:
Sat Jul 30, 2022 00:45
Clientaside mods are important. It is like ReactJS. It offloads to the server many tasks.

The problem is that now servers are slow.
There are two sides on this issue: server CPU capacity and network bandwidth. The latter is I think the more common cause, since CPUs today are just beasts. JS is more often used to avoid the networking bottleneck than relieving the CPU of the server. These days, even the CPU in your smartphone is a beast in terms of computing power.

I don't expect much from CSS as a solution for this problem, because an MT server typically has to do a lot more checks and a lot faster on what the client says than your typical web shikaboo-thingy. The performance gap is about the same as between a word processor and an FPS game.

Again, this is not a processing power problem but a bandwidth problem: we already see rubberbanding sometimes; I think in most cases this is because the client has to "upload" the position of the player (you indeed can move in the world for a few seconds even though the server crashed) and the server sends back the corrected coordinates (e.g. "nope, you cannot be there because 1 second ago you were there and your speed was reduced to 1m/s because [not your business why, just do what I say and STFU]."). Adding more data to upstream/check/downstream would make the problem worse.

A different approach than CSS could be that the client is aware of the mapgen being used by the server. It could then generate for itself the basic outline of the landscape; this would allow, I believe, to use more aggressive settings on the server (serve side culling, block send distance, I think there are half a dozen of them).

The client cannot, though, completely generate chunks because cheating (it should not know where the ores are) and custom voxelmanip-based additional mapgens, among other things. It would be more like an upgrade on node placement prediction: the client makes educated guesses until the server sends the True Data. This could allow the server to allocate more bandwidth to player or mob position updates, for instance.
Last edited by Astrobe on Mon Aug 29, 2022 08:38, edited 2 times in total.

User avatar
MCL
Member
Posts: 654
Joined: Mon Aug 20, 2018 00:44
GitHub: MCLx86
IRC: migdyn
In-game: singleplayer
Contact:

Re: Modding/Development in Minecraft vs Minetest: A practical comparison

by MCL » Post

mothnox wrote:
Sat Jul 02, 2022 19:24
  • Has a very in-depth unofficial API (Forge) (And maybe also Fabric now, though I can't speak on that personally as I've only used Forge)
It's worth mentioning that there are multiple forks of Fabric, most of which are incompatible with each other, such as Quilt or Fabric Cursed Legacy, there are also other modloaders such as CodeChicken, Risugami's ModLoader (discontinued), and OpenLoader
2014-02-14 - 2024-02-14 TEN YEARS OF MCL

Post Reply

Who is online

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