minetest / contentdb

A content database for Minetest mods, games, and more
https://content.minetest.net
GNU Affero General Public License v3.0
98 stars 47 forks source link

Please add "maps" to the content db #162

Open CHJ85 opened 5 years ago

CHJ85 commented 5 years ago

Hi there. Do you think you could add the maps/worlds (submitted in the forum) to the content db? Especially because some of these games have maps created specifically for those games.

rubenwardy commented 5 years ago

The problem is that maps aren't supported by minetest, and ContentDB only hosts things that can be installed by minetest. How should maps work? Should you select the map instead of a map gen in the world create menu?

The current recommended approach is for games to use schematics and mapgen hooks to place pre-built maps

CHJ85 commented 5 years ago

Well. then just add a disclaimer letting people know that the maps are community created and not officially supported by Minetest. Then when people download a map, let them choose which game they wish to add it to. Should be simple enough as it's 1 line in the world.mt file. There are some really good maps out there on the forums, and I wish people knew about them and world play them. And some of these maps are meant for specific games in mind. I just think it'd make a fine addition to the game, that's all. And obviously not instead of modgens. Those are great. I was thinking add a 4th content category called Maps or Worlds.

benrob0329 commented 5 years ago

As of right now, they should install like any other map/world. Updates probably wouldn't work with them, unless they were readonly.

CHJ85 commented 5 years ago

Right. But how many people really search the forums, let alone are aware of its existence? And since you're now able to install mods, games and texture packs from within the game, it'd be nice if this also applied to maps/worlds created by the community.

appgurueu commented 4 years ago

Updates would work, but won't be as simple:

Much like modifying source code of a downloaded mod poses a problem as well (as it might be overwritten) by the next update.

rubenwardy commented 4 years ago

Idea for implementation:

ContentDB automatically rewrites the zips of the world to use the readonly fall back database. The implication of this is that the readonly sqlite file would be updated when an update is received, and the normal map.sqlite would contain any user modifications. This would allow modifications without losing user changes

However, because Minetest will just save any loaded blocks, this means that updates won't affect places that a user has visited

celeron55 commented 3 years ago

Do we have an issue about MT needing to have support for pre-made maps? In my mind I see it as basically a mapgen that just copies from another (read-only) world into the one that's active, instead of generating from scratch.

rubenwardy commented 3 years ago

Do we have an issue about MT needing to have support for pre-made maps? In my mind I see it as basically a mapgen that just copies from another (read-only) world into the one that's active, instead of generating from scratch.

We support read-only source databases in a world - you can create another sqlite file and load from it instead of mapgen. My plan for this is to only support sqlite uploads, and do some clever stuff with making the zip archive or installing such that the world goes into the read-only database. This isn't quite the same as mods etc are installed but would probably work quite well

Zughy commented 2 years ago

How about sharing schematics, like a free asset store? I've got this idea while reading this proposal for my minigame lib, where the user wanted to implement an editor to let users submit new arenas => https://gitlab.com/zughy-friends-minetest/arena_lib/-/issues/118

If this is implemented upstream, it'll be way easier. Also because, right now the fastest way to have a pre-made arena is to go on https://www.planetminecraft.com/, pick a map, convert it with a MT tool someone wrote, add it as a schematic, and then finally paste it

BuckarooBanzay commented 2 years ago

Relevant (and shameless plug): I'm working on an online map/schematic exchange: https://blockexchange.minetest.ch It has a mod- and a server-part, the mod communicates with the http api to the server.

Supported:

It may be still unpolished on the edges though :wink:

There is also a demo-mod for a mapgen: https://github.com/blockexchange/blockexchange_mapgen

Zughy commented 2 years ago

@BuckarooBanzay that's really cool, it'd be so nice to see it implemented on CDB (or similar) by default. Basically, like Minecraft has its own marketplace, we could have ours for schematics

CHJ85 commented 2 years ago

^ Yes, that would be awesome! Great work @BuckarooBanzay 👍