Project:Base

PyL_
New member
 
Posts: 6
Joined: Fri Jul 13, 2018 20:04
In-game: PyL_

Project:Base

by PyL_ » Sat Jul 14, 2018 10:10

Hi folks,

I'm pretty new to Minetest but I am a long time player of Minecraft.
I have a pretty good experience at modding game (Just add mod to the game and make it work together, not create it).
The most common issue I found with mods is the lack of interoperability/redundancy.
It's even worst with Minetest since there are no "base" libs/mods and mods creator use various libs that we must found and download around the forum.

I searched in the forum and the only topic I found that suits my idea is the modbase experiment created by burli. But it's apparently discontinued.

For now the only base the modders have is the "default" mod from minetest_game which quite hard to modify and can contain unwanted things.
So I created this topic to present you my idea of a solid modding base and to discuss about it.

I called this project Project:Base.
Project:Base is a sub-game that aim to be :
- modulable : all content is clearly identifiable and can be easily removed (except dependencies)
- universal : provide popular resources and apis/libs.
- lightweight
- forkable : anybody can easily modify it to create it's own base

The idea behind this project is to provide a rock solid base that provide tools to people who wants to build a game or develop a mod.
This base game should provide redundant resources (e.g common ores, woods, stone, etc) and lib/api (e.g intllib, sounds, energy api, etc).

For now, the main task is to define some standards to mod implementation (e.g naming convention, folders structure, code structure) and define which lib/mod to include.
As I said I'm new to Minetest so I don't know the best practices, additionally I want the project to be community driven so I expect to develop it with the help and suggestion of all community, especially the modders and sub-game makers.

Feel free to comment and give your ideas :)
 

R-One
Member
 
Posts: 71
Joined: Wed Dec 20, 2017 23:06

Re: Project:Base

by R-One » Sat Jul 14, 2018 10:39

hello, first welcome to the mintest community.

I'm also interested in game development for minetest and I share your vision of the mod default and starting from minetest_game for a new game.

I had the same questions as you and preferred to have separate functions like the player, the nodes, the entities, the tools ... etc ... etc ...

On the other hand, it is rather annoying to maintain because many mods rely on the mod default so you must follow and maintain a fork of all the mods that come from elsewhere.

I asked myself if it would be good to "compete" with minetes_game rather than contribute to the project and restructure the code? ... could it be more productive?

For example, the biomes of minetest game often have the same blocks for the field, which blocks me for a differentiated spwan of the mobs ... do I have to create a fork for that or rather to speak with the developers then to make a merge? ??

I wonder if it is not more efficient to stay focused on a project especially if the gameplay changes little in the end.

On the other hand, it would be technically possible to make new games with completely different gameplays, so yes it would deserve a new project.
 

PyL_
New member
 
Posts: 6
Joined: Fri Jul 13, 2018 20:04
In-game: PyL_

Re: Project:Base

by PyL_ » Sat Jul 14, 2018 12:16

On the other hand, it is rather annoying to maintain because many mods rely on the mod default so you must follow and maintain a fork of all the mods that come from elsewhere.

Workaround exists, game creators can simply include default mod when its required or a mod can be created to interface base mods with Minetest_game based mods (e.g treat iron:iron_ore as default:iron_ore)(maybe with alias or something).


I asked myself if it would be good to "compete" with minetes_game rather than contribute to the project and restructure the code? ... could it be more productive?

They will not really "compete" because Project:Base will probably include all resources and behaviours of Minetest_game to ensure compatibility.
Moreover, one of the aims of Project:Base is to split the default mod, so the result can easily be integrated to Minetest_game if creator of the project want to.


I wonder if it is not more efficient to stay focused on a project especially if the gameplay changes little in the end.

So yeah, at the begining, Project:Base will likely be similar to Minetest_game at a gameplay level but much more customizable and extendable at a code level.
 

Sokomine
Member
 
Posts: 3563
Joined: Sun Sep 09, 2012 17:31
GitHub: Sokomine

Re: Project:Base

by Sokomine » Sun Jul 15, 2018 10:44

It would be great to have a common base. It just doesn't seem as if there's much support for it :-(. Some people even porpagate new "games" which do not even include default nodes and thus make it very difficult for modders to operate. It's annoying to have to deal with default:dirt, mod1:some_dirt, mod2:we_named_dirt_diffrently_again, mod3:this_is_also_dirt_somehow etc. These games are a pain for exchanging schematics as well. Mods need some materials in order to craft what they provide.

Libraries are sadly also something that's extremly rare. Most mods aren't complex enough in code to profit from them. About the only lib that seems to be more present is the intllib for internationalization. Other libs are usually disregarded. In most cases it might be due to the modder not knowing about the lib or fearing that a mod that depends on another one gets too complicated for the users. The new contentdb might help a lot here.
A list of my mods can be found here.
 

Orby
Member
 
Posts: 67
Joined: Sat Aug 18, 2012 03:59
Location: Baltimore, MD
GitHub: orbitaldecay
IRC: orbitaldecay
In-game: Orby

Re: Project:Base

by Orby » Mon Jul 16, 2018 18:42

This has been brought up a few times before and I think it's an excellent idea. I'd certainly be willing to contribute time to such a project. I think part of why there are so few quality games is that authors often get bogged down reinventing the wheel. MTG isn't the best place to start when you want to write a new game; there is a lot of code there that you would want to rip out if writing a game from scratch. This basically leaves people who want to write a game starting with nothing and spending a lot of time just implementing basic systems.
 

User avatar
TumeniNodes
Member
 
Posts: 2419
Joined: Fri Feb 26, 2016 19:49
Location: in the dark recesses of the mind
GitHub: TumeniNodes
IRC: tumeninodes
In-game: TumeniNodes

Re: Project:Base

by TumeniNodes » Mon Jul 16, 2018 19:57

I'm working on 'default', being solely mapgen materials/code (the natural base stuff for the world)
My brain, is AES256 encrypted, even I don't know wth I'm thinking...
 

PyL_
New member
 
Posts: 6
Joined: Fri Jul 13, 2018 20:04
In-game: PyL_

Re: Project:Base

by PyL_ » Tue Jul 17, 2018 07:43

Some people even propagate new "games" which do not even include default nodes

I think it's mostly because the default game does not fit with their needs. Sometimes it's easier to start from scratch than try to understand and modifying default mod.


Libraries are sadly also something that's extremely rare

Yes, nevertheless there are some interesting libs that deserve to become a reference.
I think the main problem is the lack of support for this libs and their visibility in the forum. I found some libs for biome, mobs, even "dimensions" but this libs are hidden in the mass of the mods. Maybe we need to create another category in the forum specifically dedicated to libs ?

I think part of why there are so few quality games is that authors often get bogged down reinventing the wheel.

Totally agree with you. But again, I think it's mainly because of the lack of normalization/libs/monolithic default mod.

I'm working on 'default', being solely mapgen materials/code (the natural base stuff for the world)

I will definitely create a GitHub repository to share my work. I already separated most of the default mod in many small one (e.g one for iron, gold, dirt , etc) and it work quite good (some few bugs appear but I only spend one day on it).

Additionally I think about making three games out of this project : a minimal version (like you want to do, only required materials for mapgen), a "playable version" (something like minetest_game, maybe keep the same content and behaviours) and an extended version (with a lot more content, still playable but designed for modding).
 

User avatar
DrFrankenstone
Member
 
Posts: 35
Joined: Tue May 24, 2016 05:36
Location: Melbourne, Australia
GitHub: treer

Re: Project:Base

by DrFrankenstone » Tue Jul 17, 2018 08:34

PyL_ wrote:The most common issue I found with mods is the lack of interoperability/redundancy.


Is the addition of another modpack the right approach for increasing interoperability?

I had a mod that needed vines, and there are several modpacks already that implement climbable hanging vines which grow, so it contained a list and used the first type of vines it found present. The result is a Minetest mod that works whether you're playing MineClone 2, Minetest_game, whatever.

What if Project:Base was a modular system for increasing interoperability via abstraction instead of figuratively adding yet another implementation of "vines" etc? Then any mods built on Project:Base become interoperable with the other mods the server selected, dependencies become swappable or optional, and similiar items/blocks aren't doubled up when combining mods.

It could also guarantee a large number of block aliases for a building base of "common ores, woods, stone etc" for any dependent mods to use, as not every mod providing blocks registers them.

You can't do everything with a compatibility layer, but it does seem to be underutilized for mod interop.

(I just copy-pasted abstraction code into a new mod while thinking "there should be a common library for this")
Last edited by DrFrankenstone on Tue Jul 17, 2018 12:41, edited 1 time in total.
 

PyL_
New member
 
Posts: 6
Joined: Fri Jul 13, 2018 20:04
In-game: PyL_

Re: Project:Base

by PyL_ » Tue Jul 17, 2018 09:43

Abstraction is definitely the way to go, and will certainly be implemented in a early form to ensure compatibility with mod based on default or mineclone for example.

However it can be very useful to add mods too. To take your example with vines, if many mods need vines, why not adding a stand-alone vines mod that can be easily editable and usable so modders don't need to spend time any more to implement their own vines or to detect already existing vines.
To take the general case, if a resources is used by many mods (an ore, a wood, an item), it can be interesting to add it to the mod base. intllib for example will be added to Project:Base because most of the mod use it and it's the best way to go for localization.
Another advantage of this is if you find a way to improve a mod (let's say you improve the code of furnace mod) the improvement is directly applied to mods that depends to it.
 

User avatar
DrFrankenstone
Member
 
Posts: 35
Joined: Tue May 24, 2016 05:36
Location: Melbourne, Australia
GitHub: treer

Re: Project:Base

by DrFrankenstone » Tue Jul 17, 2018 10:02

I didn't mean to not implement anything - providing modular implementations allows the option of having a fallback if there's no other mod providing the thing the mod wants.

PyL_ wrote:why not adding a stand-alone vines mod that can be easily editable and usable so modders don't need to spend time any more to implement their own vines or to detect already existing vines.

Because if the Project:base doesn't first detect already existing mods then the mods built off it would create games containing multiple kinds of the same thing. With vines, that's fine - plant variation is good, but having two kinds of same-metal ingots that craft different items, or two kinds of books that each require their own kind of bookcase isn't as good. If the idea is not to be used with prior mods then will it be helping interop/redundancy?

But don't read this as discouragement - it was just idle speculation on a post which was calling for ideas, and has its own limitations and drawbacks.
 

PyL_
New member
 
Posts: 6
Joined: Fri Jul 13, 2018 20:04
In-game: PyL_

Re: Project:Base

by PyL_ » Tue Jul 17, 2018 10:47

I get your point and I will definitely think about a mechanism to handle this issue in the best way.

That being said it's a quite easy for a game creator to remove the iron ore mod if another mod add it too and maybe add aliases to ensure compatibility.
 


Return to Game Discussion



Who is online

Users browsing this forum: No registered users and 0 guests