pushing minetest further in the direction of being a game engine

For people working on the C++ code.
Post Reply
User avatar
MisterE
Member
Posts: 618
Joined: Sun Feb 16, 2020 21:06
GitHub: MisterE123
IRC: MisterE
In-game: MisterE

pushing minetest further in the direction of being a game engine

by MisterE » Post

This topic was discussed on irc and Matrix: here is the original suggestion:

To move minetest further in the direction of a game engine, stop distributing minetest-engine clients directly. Do continue to distribute them, but only as one of several options. Distribute the client with a template main menu, that games can easily convert. Make it easy to set up a custom server list for a specific game. Make it easy for games to send media and SSCSMs to the client for that game in a seperate "update" that does not involve joining the server, and make it easy to check if a client is uptodate, prevent joining servers until updated (singleplayer still works)

The idea is that each unique game will take the minetest client, define a serverlist (or serverlist subsection) for it, customise the main menu, and distribute its own client with optionally singleplayer only or server only.

On the main minetest page, instead of giving a download of the minetest-engine client, give a page of downloads for games made with the minetest engine, including minetest game. The majority of servers on the serverlist would fit into the category of minetestgame, therefore we convert the serverlist as it stands to the minetest-game serverlist. Nodecore gets its own serverlist, its own client, and its own download on minetest.net, or a link to its main webpage.

Ofc server owners can choose which server to broadcast their game on, or which serverlist section I guess, but they would do well to broadcast as the game that they are hosting.

Mineclone would get its own serverlist section and special client, Exile would also... etc etc...

benefits: 1)it makes minetest seem more like a game engine
2) it makes client load times much quicker and allows preloaded media
3) it makes it so unique games arent lost in the serverlist

Problems: It decentralizes minetest, might break up the community
Last edited by MisterE on Fri Oct 08, 2021 00:33, edited 1 time in total.

User avatar
MisterE
Member
Posts: 618
Joined: Sun Feb 16, 2020 21:06
GitHub: MisterE123
IRC: MisterE
In-game: MisterE

Re: pushing minetest further in the direction of being a game engine

by MisterE » Post

discussion points brought up in the course of chat:

IRC/discord bridge:
erlehmann

Today at 6:55 PM
lol MisterE
why would you want to replace mix & match style of minetest with separate silos?
or is this about deprecating minetest_game more?
MisterE, Modder of Sortz

Today at 6:56 PM
to push it as a game engine, separate more completely with the idea of minetest as a game based on minecraft. I wasnt thinking about deprecating minetest_game more, if fact, if we do this, it should have its own silo
the idea is so that game devs can see that they can make publishable games with minetest
games that can go on itch.io or steam
erlehmann

Today at 6:58 PM
oof
yeah thanks i kinda hate it already
MisterE, Modder of Sortz

Today at 6:59 PM
the reason to replace the mix and match style is that "mix and match" is a good feature for an easily moddable game, not for a game engine
erlehmann

Today at 6:59 PM
optimizing for steam or itch.io stuff is has creepy capitalism vibes
-is
MisterE, Modder of Sortz

Today at 6:59 PM
nah tahts not the point
we should not optimise for steam or itch, but we should make it so games can be published standalone as a "game": thats what a game engine is for right?
erlehmann

Today at 7:01 PM
you can already do that though?
MisterE, Modder of Sortz

Today at 7:01 PM
I would not care to optimise for any specific platform, or cater to their demands particularly. Its up to game creators to do that
you can already do that
but its hard
the menu api is hard to get into, and seems made just for the current menu
and minetest distributes a minetest-engine client, its doesnt do much point to individual games as it could
*do > so
so as others have said its in limbo
stuck between a game and an engine
maybe thats a good thing, but many people seem not to think so
this idea would shove it in the "game engine" direction
erlehmann

Today at 7:04 PM
so what is the actionable thought you want to put in the ticket?
better menu API?
MisterE, Modder of Sortz

Today at 7:06 PM
a few:
yes, better menu api, different approach to distribution, add game_id checking to make sure that the client is the correct client, and also check that the client is up-to-date with the server, Have an "update" function that fetches all media and SSCSM and caches them (then make the client as "updated"

anyhow its a rough idea that should be discussed and a better actionable ideas worked out from it
erlehmann

Today at 7:07 PM
game_id checking to make sure that the client is the correct client??
MisterE, Modder of Sortz

Today at 7:08 PM
if the server chooses to enable that
an idea
doesnt mean its a good one
😛
erlehmann

Today at 7:08 PM
wdym correct client
MisterE, Modder of Sortz

Today at 7:08 PM
the clinet for that game
so, say I want to make a game that uses lots of media, and much of that media is client side
also a whole bunch of client side mods
also some extra libraries that I as the game dev decide to include in the client, such as voice chat for example.
I would want to distribute a client that can only connect to my game
because... otherwise a bunch of stuff wouldnt work
also I can then enforce certian client settings (or at least set their defaluts
to set the right style (such as font), or max_view_distance
it actually solves a bunch of problems with the server being able to control client settings: it make it so the game creator can set all the defaults for their game
it makes it so the client no longer is a minetest client, but now a "legends of voxels" client
or wahtever
with minetest as the engine
Last edited by MisterE on Fri Oct 08, 2021 00:04, edited 2 times in total.

User avatar
MisterE
Member
Posts: 618
Joined: Sun Feb 16, 2020 21:06
GitHub: MisterE123
IRC: MisterE
In-game: MisterE

Re: pushing minetest further in the direction of being a game engine

by MisterE » Post

Element/Matrix chat:

deltanedas
i like this idea
rn there needs to be a better distinction between mtg and minetest


clementine_cruiser
I dislike it for :

the mentioned drawbacks of splitting the already-sparse community into even further separated communities, as it will be basically impossible to get people interested in a new game if it involves using a different client.
server owners are forced into an artificially restricted choice of popular gamemodes to broadcast as, when their games might not fit well into either of the categories
existing content will likely split even more due to the client splits/serverlist splits, further reducing the overall reuse value in the community for the little great content there is. While in an ideal world there is support for any game independently of the others, the reality is that minetest-game served as necessary unification platform for a long time to focus the few available manhours into widespread shared benefit
I perceive the low hurdle between various different gamemodes and porting content mods between them as a strength that currently exists, and I don't like gimping one of minetest's few 'selling points' for a nebulous-to-be-proven advantage. These actions should be done very carefully in how they impact the existing communities and the 'walls' between them, as it may well do more harm even if well-intentioned, simply due to existing circumstances - a neat design decision won't guarantee that the community jumps on board, and it is already very-slowly-growing as it is. If the entire playerbase ends up congregating in the usual chaotic dynamics, there may be much less 'flexibility' than before - because now, instead of MTG, an arbitrary other gamemode sets the de facto default, and barely anyone would try out things that would require being put into their own mod/game/client.
Regardless of my opinion, it is a very good discussion point, but I'd like cautious action, and not to jump on a decision railroad after a few weeks and five or six answers on github
mister-e
heh, im hardly in the position to make decisions, but yeah a change like this, caution would be well advised
some ideas in response: the current, mostly minetest-game community would consolidate around minetest game and its mods
other game communities would develop and gain a greater following, with that game as the focus
the minetest engine community would split off and be forced to pay attention to game developers more than players
the enigne community would basically only involve engine devs
and game devs
the forums would likely split into minetest game and minetest engine
clementine_cruiser
It reminds me of a comment on a recent change in blender's intended workflow:
"These directions sound great, but if gone through, drawbacks in practice can potentially very well kill the project." While the particular topic was perhaps not warranting such caution, it immediately came to my mind when reading your proposal.
mister-e
very true, it could kill or it could save minetest

if minetest becomes only a game engine, would people just use godot instead?
If minetest cannot be just a game engine, should not be just a game engine, perhaps we should define better what it should be
clementine_cruiser
if minetest becomes only a game engine, would people just use godot instead?

depends on who 'people' are:
players, game developers and engine developers can be the same people, and there are reasons other than convenience-of-use that may affect their decision.
Godot may look like a great option now, but it may very well go into certain directions by necessity (financial support for the project) which do not meet minetest's ideals or those of the people working on it, especially if it continues to grow and has more companies with financial interest in steering godot somewhere particular (e.g. mobile games with hard modding protections and steeper minimum requirements than minetest, or dropping linux support, etc)

mister-e
there is a middle ground: make it easier to do these things, while not officially changing direction. THen also link to unique clients/games made with minetest on the main site, while still promoting the classic model
clementine_cruiser
what minetest has now is the benevolent-dictatorship of a lead maintainer and independence of content-focused dependencies (not counting irrlicht as a generic dependency, but even that is now in-branch). That's completely different than relying on godot as an impossible-to-fork-and-maintain dependency that also has ideas (or can develop them) on how content should be supported by it.
mister-e
yeah. Minetest-as-an-engine has many unique benefits
but certianly godot is more flashy right now
and many players become devs for minetest because of the freedom they have to develop whaht they want. THis idea could change that
clementine_cruiser
yet it has no default support for lua, and may very well restrict usage of it to be allowed on certain platforms: e.g. android, apple, very much dislike giving the useraccount control over executed scripts in their applications. That's just one thing that may OR MAY NOT ever completely break minetest's core tenets of easy moddability: But when you are unable to fork and maintain the engine due to the size of the source code, you have no way of correcting the course, you're just a guest on their ship.

User avatar
MisterE
Member
Posts: 618
Joined: Sun Feb 16, 2020 21:06
GitHub: MisterE123
IRC: MisterE
In-game: MisterE

Re: pushing minetest further in the direction of being a game engine

by MisterE » Post

another possibility would be to just have separate serverlist sections for each game. You install a game, and then you can access the serverlist for each game you download separately. Mods or differences in server code are pulled as an "update" and cached, and updating is done separately from joining so when you join you have almost instant join time, or maybe an official git repo is designated as the base game, and then mod differences are sent to the client at join time only. Then the minetest client becomes more of a browser for the different games available... Just food for thought

User avatar
Mantar
Member
Posts: 387
Joined: Thu Oct 05, 2017 18:46
GitHub: jeremyshannon

Re: pushing minetest further in the direction of being a game engine

by Mantar » Post

MisterE wrote:
Fri Oct 08, 2021 00:12
another possibility would be to just have separate serverlist sections for each game.
I think the ability to filter by game would be nice, though the ability to show all servers as one big list shouldn't be lost.

User avatar
runs
Member
Posts: 2802
Joined: Sat Oct 27, 2018 08:32
GitHub: runsy

Re: pushing minetest further in the direction of being a game engine

by runs » Post

Yes. My Juanchi Game is very limited right now. I would like a really COOL menu for Juanchi.

When my server released will be a crazy situation, hundreds will want to play it, but no possibility to filter and highlight it.
⛏️ KeKo Site | 👕 ShopZ | ☕ Ko-fi

User avatar
sorcerykid
Member
Posts: 1720
Joined: Fri Aug 26, 2016 15:36
GitHub: sorcerykid
In-game: Nemo
Location: Illinois, USA

Re: pushing minetest further in the direction of being a game engine

by sorcerykid » Post

I actually rather like the overall concept, even if it still needs a bit of refinement. I'd even been talking with some of my own players on JT2 about releasing a standalone branded client, with a server list specifically for the Just Test Tribute game (it seems a lot of of my desktop players only keep around the 0.4.17 client to connect to my servers anyway). So I'm already heading in that direction.

Still, would be really nice if individual games could be better represented in an official capacity on the Minetest site, along with download links for each game-specific client. The technicalities of how that would work clearly still need to be fleshed out. As some have suggested it might just be better to just allow for playing any game with a single client. However, that poses some compatibility issues for games that are 0.4.x specific.

User avatar
debiankaios
Member
Posts: 654
Joined: Thu Dec 03, 2020 12:48
GitHub: belongs_to_microsoft
IRC: debiankaios
In-game: debiankaios Nowe
Location: germany
Contact:

Re: pushing minetest further in the direction of being a game engine

by debiankaios » Post

Wait wait wait, what. Your real. If everyone would a own package provide an own package you cant anymore install minetest on debian over the terminal with apt-get install minetest. Moreover is the current version on debian 5.3.0 and it would be not anymore playable. I am against this redesing. Minetest is also a mod and texture egine which wouldn't work anymore with this update. Please don't implement this update!

User avatar
Linuxdirk
Member
Posts: 3182
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: pushing minetest further in the direction of being a game engine

by Linuxdirk » Post

sorcerykid wrote:
Fri Jan 07, 2022 02:27
along with download links for each game-specific client.
So instead of using one client that has dozens of games available and that can simply be installed using the package manager you suggest having dozens of clients with all of them only having one game available and that are likely never going to be in any distribution's repository?

User avatar
MisterE
Member
Posts: 618
Joined: Sun Feb 16, 2020 21:06
GitHub: MisterE123
IRC: MisterE
In-game: MisterE

Re: pushing minetest further in the direction of being a game engine

by MisterE » Post

no, I suggest making it possible/easy for games to publish their custom clients, and make an official glient modification api and official client distribution channel for it.

it is already possible, but it is not easy nor officially supported. I suggest changing that.

the majority of games would continue to use vanilla minetest clients. Some games/servers would continue to support the vanilla client, but would also publish a custom client that gave a better experience for the server (such as ingame help, background music, positional audio, etc). Some new games may opt to publish their own client only, but I suspect that that would only occur if the game required a heavily modified client (such as custom physics or spherical worlds, etc). making custom clients officially supported would open up all these possibilities.

User avatar
v-rob
Developer
Posts: 934
Joined: Thu Mar 24, 2016 03:19
GitHub: v-rob
IRC: v-rob
Location: Right behind you.

Re: pushing minetest further in the direction of being a game engine

by v-rob » Post

MisterE wrote:
Mon Jan 24, 2022 22:31
but would also publish a custom client that gave a better experience for the server (such as ingame help, background music, positional audio, etc).
It sounds like it would be better to incorporate features into the engine rather than promulgate bunches of custom clients that will end up doing duplicate work, especially when you consider that people playing on servers would have to download the clients as well. Anyway, a major difficulty with this is that there is absolutely no way of auditing these clients. They could easily be viruses in a way that really isn't possible from Lua mods.
Core Developer | My Best Mods: Bridger - Slats - Stained Glass

User avatar
MisterE
Member
Posts: 618
Joined: Sun Feb 16, 2020 21:06
GitHub: MisterE123
IRC: MisterE
In-game: MisterE

Re: pushing minetest further in the direction of being a game engine

by MisterE » Post

v-rob wrote:
Mon Jan 24, 2022 22:50

It sounds like it would be better to incorporate features into the engine rather than promulgate bunches of custom clients that will end up doing duplicate work, especially when you consider that people playing on servers would have to download the clients as well.
I would agree except for the fact that engine development is very slow, often too slow for those who want more features and are willing to do it themselves assuming its officially supported in some capacity.


Like, Im sure many servers would support the mumble positional audio csm if that client was officially distributed is some way.

At some point we will get SSCSMs in some capacity, but that seems far away now..., and many problems that the nonexistant sscsms would address could also be addressed rather easily by servers being able to release special clients.
v-rob wrote:
Mon Jan 24, 2022 22:50
Anyway, a major difficulty with this is that there is absolutely no way of auditing these clients. They could easily be viruses in a way that really isn't possible from Lua mods.
I wonder how engines like Love2d address this issue, which almost exclusively use a custom client ...

Unless they just dont care, and its user-beware...

Anyhow Love2d has a page of games you can download, but you typically have to download each game separately. Maybe its as simple as: it must be open source, and its removed if someone discovers that it is a virus. Or maybe the page is just a small selection of vetted games made with Love2d. IDK

User avatar
Linuxdirk
Member
Posts: 3182
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: pushing minetest further in the direction of being a game engine

by Linuxdirk » Post

MisterE wrote:
Mon Jan 24, 2022 22:31
no, I suggest making it possible/easy for games to publish their custom clients, and make an official glient modification api and official client distribution channel for it.
All games I am aware of that did this became outdated over the time and are dead now.

Yes, Minetest is an engine, but we should stop thinking of it like Godot or the Unreal engine. Games using an "own client" basically using a fork of the engine because the client is heavily interconnected with the engine (regardless of being the GUI client or the terminal client for running the server).

To me games using an "own client" always feel like as if games start shipping their own version of Steam instead of using Steam provided by Valve. I wouldn't install multiple Steam versions to run different games in the same way as I would not install multiple clients to run different Minetest games.

So the Minetest client/engine is "our" Steam, and Minetest games are our "Steam games".

User avatar
MisterE
Member
Posts: 618
Joined: Sun Feb 16, 2020 21:06
GitHub: MisterE123
IRC: MisterE
In-game: MisterE

Re: pushing minetest further in the direction of being a game engine

by MisterE » Post

that comparison only gets you so far: steam *is* a content distribution system, not an engine. You can distribute any game from any engine with steam. But with minetest, you are very limited by the engine; If you make any game other than minetestgame, you will run into things you want to do but can't.

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

Re: pushing minetest further in the direction of being a game engine

by rubenwardy » Post

I think that it's important that Minetest remains a platform to distribute games on, as it's something that it does well

However, I also think that it should be made easier to distribute games externally. Adding a tool that customises builds of Minetest with a game would be useful. For example, changing the mainmenu, packaging the game, and changing branding
Renewed Tab (my browser add-on) | Donate | My Twitter | Mods | Minetest Modding Book

Hello profile reader

User avatar
runs
Member
Posts: 2802
Joined: Sat Oct 27, 2018 08:32
GitHub: runsy

Re: pushing minetest further in the direction of being a game engine

by runs » Post

rubenwardy wrote:
Tue Jan 25, 2022 16:09
I think that it's important that Minetest remains a platform to distribute games on, as it's something that it does well

However, I also think that it should be made easier to distribute games externally. Adding a tool that customises builds of Minetest with a game would be useful. For example, changing the mainmenu, packaging the game, and changing branding
This should essential for The Samz. And ContentDB should support games. Right now ContentDB Gaming is a very limited extension of MTG. I mean mods.

Mods should be marked for games. Maybe a harcoded tag.
⛏️ KeKo Site | 👕 ShopZ | ☕ Ko-fi

User avatar
sorcerykid
Member
Posts: 1720
Joined: Fri Aug 26, 2016 15:36
GitHub: sorcerykid
In-game: Nemo
Location: Illinois, USA

Re: pushing minetest further in the direction of being a game engine

by sorcerykid » Post

So instead of using one client that has dozens of games available and that can simply be installed using the package manager you suggest having dozens of clients with all of them only having one game available and that are likely never going to be in any distribution's repository?
For multiplayer-only games, a customized client can sometimes be the ideal solution, particularly since it allows for more effective branding and user-retention. This is not something that the majority of games would need, of course, but it's certainly nice to have it available an option since Minetest is an engine first and foremost.

In the case of my virtual nightclub project, for example, the main menu features a paginated server listing with banners, logos, reviews, etc. for each venue as well as event schedules that can be searched by DJ name, music genre, etc. Moreover, users must verify their age and agree to terms & conditions before joining a server in my network. It also launches a Webpage for streaming positional audio as well as a live video feed of the DJ via Twitch, both of which requires direct access to the main menu API for seamless integration.

None of this is even remotely possible with the vanilla Minetest client. And even if it were eventually possible, I'd still prefer having complete control over the end-user experience. Rather than launching into a generic "Minetest" menu screen, my project's aim is to provide a full sense of immersion.

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

Re: pushing minetest further in the direction of being a game engine

by rubenwardy » Post

runs wrote:
Tue Jan 25, 2022 16:26
This should essential for The Samz. And ContentDB should support games. Right now ContentDB Gaming is a very limited extension of MTG. I mean mods.

Mods should be marked for games. Maybe a harcoded tag.
Yeah, I plan to allow mods to specify which games they're compatible with - but it's a big task to do
I place higher priority on allowing videos
Renewed Tab (my browser add-on) | Donate | My Twitter | Mods | Minetest Modding Book

Hello profile reader

User avatar
MisterE
Member
Posts: 618
Joined: Sun Feb 16, 2020 21:06
GitHub: MisterE123
IRC: MisterE
In-game: MisterE

Re: pushing minetest further in the direction of being a game engine

by MisterE » Post

rubenwardy wrote:
Tue Jan 25, 2022 16:09
I think that it's important that Minetest remains a platform to distribute games on, as it's something that it does well

However, I also think that it should be made easier to distribute games externally. Adding a tool that customises builds of Minetest with a game would be useful. For example, changing the mainmenu, packaging the game, and changing branding
this is what I was saying, I agree completely

BruceMcRooster
New member
Posts: 1
Joined: Thu Aug 04, 2022 12:17
GitHub: BruceMcRooster

Re: pushing minetest further in the direction of being a game engine

by BruceMcRooster » Post

Completely new here, but it seems like the obvious option would be to do this a little like Godot. Make the engine separate from the game. Let users download what is basically just another game running on the engine as minetest-game, and then let people write mods that run on the engine that can be distributed to run on that or be taken with a custom version of the engine and distributed as a standalone thing.
TL;DR make the Minetest engine separate from minetest-game make minetest-game a game using Minetest, not the Minetest.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest