[Mod] lib_ecology [lib_ecology][git]

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

[Mod] lib_ecology [lib_ecology][git]

by ShadMOrdre » Post

MAJOR UPDATE: 2019-08-31
Image

UPDATES:
Now include limited farming functionality.
All plants and saplings grow via node timers.
Minimal use of ABMs, largely for leaf decay and other behaviors from default.
All schematics held in single table of lua schematics, providing faster loading and more efficient gameplay.
Code has been refactored.

lib_ecology is a central repository of plants and trees. It combines default, ethereal, moretrees, moreplants, plant_lib, cool_trees, random_trees, trees, valleys_c, forest, 30biomes, and also pulls from Farlands, Adventuretest, Grailtest, rpgtest, Skylands, and includes some creations of my own.

Included are roughly 100 plants and 100 trees (with corresponding schematics). The majority of these are naturally occurring plants and trees, but this does include some fantasy type plants, and mushrooms. These are spawned throughout the world, according to their natural distribution, as far as I can manage.

This mod requires lib_materials for normal plant and tree generation, but should also work without this dependency, only providing the nodes and with no current access to the schematics that build a tree.

Biomes are defined by 5 temperature points over 5 humidity points for 25 climate zones. Each climate zone is then subdivided based on altitude, for a total of 200+ biomes. Now included are Ecosystems. Each biome can include multiple ecosystems, to break up the monotony of most current biomes.

Can be ran with Australia and Aeotora (with a modification to those mods to not clear biomes) to really pack a visual punch. Working on making this a little easier via settings, and perhaps pull requests to those mods.

This should be ran on a new world, but will work on existing worlds where the map has not yet been generated.

DOWNLOAD:
lib_ecology

DEPENDENCIES: Github - lib_materials? or Forum - lib_materials
OPTIONAL DEP:

LICENSES: LGPLv2.1, for code by me, CC-BY-SA-3.0 for graphics by me. Other licenses apply for code and graphics done by others. Where found, those licenses included.

Image
Image
Image
Attachments
screenshot_3.jpg
screenshot_3.jpg (250.36 KiB) Viewed 1898 times
screenshot_1.jpg
screenshot_1.jpg (401.64 KiB) Viewed 1898 times
screenshot_2.jpg
screenshot_2.jpg (222.83 KiB) Viewed 1898 times
Last edited by ShadMOrdre on Fri Nov 20, 2020 21:07, edited 11 times in total.

User avatar
azekill_DIABLO
Member
Posts: 7507
Joined: Wed Oct 29, 2014 20:05
GitHub: azekillDIABLO
In-game: azekill_DIABLO
Location: OMICRON
Contact:

Re: [Mod] Ethereal Valleys [lib_ecology][git]

by azekill_DIABLO » Post

very green mod ;)

+1 because we need more plants in this world!
Gone, but not dead. Contact me on discord: azekill_DIABLO#6565
DMs are always open if you want to get in touch!

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: [Mod] Ethereal Valleys [lib_ecology][git]

by ShadMOrdre » Post

More screenshots.

Image
Image
Image
Attachments
screenshot_04.png
screenshot_04.png (846.62 KiB) Viewed 1898 times
screenshot_03.png
screenshot_03.png (926.82 KiB) Viewed 1898 times
screenshot_02.png
screenshot_02.png (716.03 KiB) Viewed 1898 times

User avatar
texmex
Member
Posts: 1753
Joined: Mon Jul 11, 2016 21:08
GitHub: tacotexmex
In-game: tacotexmex

Re: [Mod] Ethereal Valleys [lib_ecology][git]

by texmex » Post

Looks great, will try out!

User avatar
Gael de Sailly
Member
Posts: 845
Joined: Sun Jan 26, 2014 17:01
GitHub: gaelysam
IRC: Gael-de-Sailly
In-game: Gael-de-Sailly gaelysam
Location: Voiron, France

Re: [Mod] Ethereal Valleys [lib_ecology][git]

by Gael de Sailly » Post

Interesting, very good work. This is really the kind of things I'd like to see in the game.
There was a small bug for which I propose a fix in a pull request.
Then I launched the game and started exploring the world for several minutes. This mix between Valleys and Ethereal seems a great idea.

I was walking in the bamboo forest as far as I could see, and suddenly this amazing green valley opened to my view, emerging from the fog.
Image

But, as you said, this is very expensive in terms of memory usage, and my very weak computer has nearly completely filled its RAM + swap. I don't really understand why it needs so much memory, there may be some possible optimizations. That said, I've not seen the code in details and don't know exactly what it does.

I'd would be very interested in working with you on this project.
Just realize how bored we would be if the world was perfect.

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: [Mod] Ethereal Valleys [lib_ecology][git]

by ShadMOrdre » Post

Firstly, thanks for valleys. And also to duane, for his contributions. This work is really still mostly ethereal and valleys_c code, so you should be able to dig right in. I hope I didn't garble it up too much. Filenames and variables are still pretty much the same. I must admit, some of the code is still foreign to me at this time, ie, mapgen and tree generation.

I like how you generated and colored some trees by code. I'd like to think that between your code and sofars luscious mod, I also might be able to come up with better biome blending as well as tree uniqueness and colorization.

My goal is to get this more modularized, getting each of the plant nodes, tree nodes, and ground nodes culled, sorted and working at least as they do now. Also, by adding both biome sets, I have found some biomes to either be too similar, or overlapping to the point that I don't know if all biomes are being generated. But by digging in to all this, I can sort them out, and get them to blend better. I also want to get the mapgen down to just terrain, so that it's parameters can be played with easier. Adding custom settings to enable/disable aspects or breadth of this mod can also help users on more modest devices, while still getting the experience.

I must admit, I originally used this mod on mg_valleys, but using custom params on mgv7 with the mapgen from this mod using noise values from your valleys lua mapgen is providing some interesting locations as well. Flatter terrains with more gentle hilly areas.

Thanks for your interest Gael, I'm flattered that this caught your attention.

Oh, by the way, I merged the pull request.

Shad

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: [Mod] lib_ecology [lib_ecology][git]

by ShadMOrdre » Post

Major update.

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: [Mod] lib_ecology [lib_ecology][git]

by ShadMOrdre » Post

Added new screenshots.

Image
Attachments
screenshot_10.jpg
screenshot_10.jpg (375.65 KiB) Viewed 1898 times

User avatar
FrostRanger
Member
Posts: 80
Joined: Thu Oct 11, 2018 05:40
GitHub: WulftheNordicRanger
IRC: FrostRanger FrostRanger[m]
In-game: FrostRanger FrostStar
Location: In the untamed wilderness of wherever I happen to be dimension hopping this time...
Contact:

Re: [Mod] lib_ecology [lib_ecology][git]

by FrostRanger » Post

Looks great! There are some issues with some of the ethereal stuff creating unknown nodes when mined though. Are there any plans to get it to work better with farming redo and mobs redo?
Sole ranger and ruler of the frozen realms of Cabin Fever and seeker of the ever elusive Dungeon Master...

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: [Mod] lib_ecology [lib_ecology][git]

by ShadMOrdre » Post

FrostRanger,

Thanks for the feedback.

I am still in the process of reclassifying some of the items from the underlying mods. The fishing aspect of ethereal, IMHO, should be a seperate mod, or part of a tools mod. As for some ethereal nodes dropping unknown items, this is most likely due to a defined drop within the node definition. I'll get that issue resolved quickly, and upload a version 2.1 update within the next week. This update will include new nodes, and other changes that may lead to new unknown nodes. An example is that I have renamed some tree definitions.

As for supporting Farming Redo, that has been in my crosshairs for some time now. After briefly reviewing the forum topic for Farming Redo, I've noticed what might be causing bugs with growing plants. I will also try to address this before the 2.1 update.

Shad

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: [Mod] lib_ecology [lib_ecology][git]

by ShadMOrdre » Post

repost forum topic with updated links to github repository.

WayBack Machine
New member
Posts: 6
Joined: Fri May 03, 2019 19:42

Re: [Mod] lib_ecology [lib_ecology][git]

by WayBack Machine » Post

ShadMOrdre wrote:repost...
FWIW, the last capture I triggered has a couple of lost pics and posts :
https://web.archive.org/web/20190420074 ... =9&t=19470

Because yours is another interesting thread.

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

Re: [Mod] lib_ecology [lib_ecology][git]

by sorcerykid » Post

Nice mod! I managed to recover most of the posts in your forum topic.

https://sorcerykid.github.io/minetest-f ... _19470.htm

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: [Mod] lib_ecology [lib_ecology][git]

by ShadMOrdre » Post

Wayback and sorcerykid,

Thank you very much for the recoveries!!!

I'm currently working to get the XOcean and Cool_Tree mods included, getting the ecosystems fleshed out, and doing some general cleanup. I'll be posting a new update within a week or so.

Here are some screen shots, showing ecosystems in action.

Looking South.
Image

Looking North, over the same area.
Image

Standing just off origin, and zooming in across the same area.
Image
Attachments
screenshot_20190508_013910.jpg
screenshot_20190508_013910.jpg (272.03 KiB) Viewed 1898 times
screenshot_20190508_011421.jpg
screenshot_20190508_011421.jpg (360.99 KiB) Viewed 1898 times
screenshot_20190508_011144.jpg
screenshot_20190508_011144.jpg (366.62 KiB) Viewed 1898 times

_E7
Member
Posts: 16
Joined: Wed May 15, 2019 10:34

Re: [Mod] lib_ecology [lib_ecology][git]

by _E7 » Post

This looks like a nice mod!

Sadly i don't seem to have much luck actually trying it. v2 errors on table.contains_substring in init.lua line 67 and v5 doesn't do all that much. It loads and i can see lots of stuff in the creative inventory but aside from a couple plants and some brown stone here or there it looks pretty much default. Flying around i haven't been able to locate a single bamboo or banana tree. Actually i don't think i've seen any special tree at all. Also /biomes_get lists only 5 biomes which i guess are the default ones.

In any case i don't get anything resembling the screenshots posted in this thread. Looking over the code i found the reference to the file declaring the biomes commented out and the file itself missing. Is the v5 code on github somehow unfinished or is there something else that could cause this? Any clues would be greatly appreciated.

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: [Mod] lib_ecology [lib_ecology][git]

by ShadMOrdre » Post

_E7 wrote: Also /biomes_get lists only 5 biomes which i guess are the default ones.

In any case i don't get anything resembling the screenshots posted in this thread. Looking over the code i found the reference to the file declaring the biomes commented out and the file itself missing.
Did you also download lib_materials? This mod depends upon lib_materials. Biomes are now defined in that mod, since biome definitions are more about defining the stone and dirt for biomes. It made more sense. Also ensure that you are not using any other mods that would clear the registered biomes, decorations, or ore definitions.

This mod now really only defines plants and trees, and decorates the various biomes accordingly.

I am about to release an even better version, that includes multiple ecosystems within each biome. I've always thought that using biome definitions alone creates rather monotonous looking environments, and the way that biomes blend doesn't always lead to good looking transitions. Now, biomes include ecosystems that are unique environments within each biome. I've been using Wikipedia as a simple guide to creating somewhat realistic and unique looking spaces. I'm tweaking some of the basic code and will release within a week or two.

The screenshots that I've been posting are of the code, as it exists on my server, which is only as new as the posted v5 version of lib_ecology, so about a month of dev work. Any differences one would notice from my dev work versus the v5 version in any screenshots would only reflect the addition of the ecosystems, and my attempts at replicating anything realistic.

I will admit that not all trees and plants get spawned in the v5 version. This is getting corrected, for the most part, in the new release. Even in my screenshots that I've posted, the world looks rather sparse.

Please ensure that you have the lib_materials mod installed in addition to lib_ecology. You can see which mods are actually enabled for any given world by using the /mods console command.

Please let me know if this helped.

Shad

_E7
Member
Posts: 16
Joined: Wed May 15, 2019 10:34

Re: [Mod] lib_ecology [lib_ecology][git]

by _E7 » Post

ShadMOrdre wrote:
_E7 wrote: Also /biomes_get lists only 5 biomes which i guess are the default ones.

In any case i don't get anything resembling the screenshots posted in this thread. Looking over the code i found the reference to the file declaring the biomes commented out and the file itself missing.
Did you also download lib_materials? This mod depends upon lib_materials. Biomes are now defined in that mod, since biome definitions are more about defining the stone and dirt for biomes. It made more sense. Also ensure that you are not using any other mods that would clear the registered biomes, decorations, or ore definitions.
Yes, i had lib_materials BUT your post made me realize that there is a v5 version of it too. I just browsed your github to get it and didn't look to closely when cloning so all i had was the master branch of lib_materials. Updating lib_materials to v5 unsurprisingly fixed it. Thanks a ton!

Being able to actually see it first hand all i can say is: Wow it's beautiful! Sure there are a couple rough edges and you are right about vegetation being a bit sparse but all in all it's pretty cool. I am definitely looking forward to your next release!

_E7
Member
Posts: 16
Joined: Wed May 15, 2019 10:34

Re: [Mod] lib_ecology [lib_ecology][git]

by _E7 » Post

Having played with it for a bit i have another question if you don't mind: How would i best combine this with other mods that have blocks integrated into lib_materials? Should i try to define aliases, hack those mods to use the blocks from lib_materials or is there another/better approach? Also how would lib_materials/lib_ecology interact with for example technic_worldgen which seems to be responsible for placing technic's custom ores? I guess i'd have to patch that to play along or am i missing something here?

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: [Mod] lib_ecology [lib_ecology][git]

by ShadMOrdre » Post

_E7,

Now those are some GREAT questions!

Long ago, I grabbed a copy of Wuzzy's Empty game. I then began to add mods, as desired, to the "game" folder. As I've added newer mods to the collection, invariably, things got broken, ie, some mods don't have the requisite materials available for the recipes and what not. This is a MAJOR issue, IMHO, but one that should be considered in this light. It is time to move beyond MC thinking. Most of the existing mods, like technic, were made to provide depth to the MT game, and so only really work with that subgame. Any other subgame, that I've looked at, also used the default mod, and thus technic worked out of the box. I've actually used some of the technic nodes in lib_materials. I've considered adding an alias file to lib_materials and lib_ecology, this just has not been a priority. Since I include the default materials anyway, adding aliases should be rather trivial. I will gladly accept any pull requests that want to address this issue!

There is still some work due on lib_materials, as most of the stone and ores are not yet generated by default. So much work...... but I'm lovin' it. Where I could also use suggestions is for ecosystems from parts of the world in which I have not been, which is pretty much everywhere. What I mean by this, is I need ideas for pioneer and keystone species, with relevant soil type, and relative temperature/humidity levels, so that I can appropriately fit the ecosystems within the biome definitions.

With 5 temperature points, 5 humidity points, 8 levels of elevation, 16 types of dirt and 8 types of grass cover, this gives me:

Code: Select all

((((5x5)x8)x16)x8) = 25600 possible ecosystems
This is a lot of data to hand generate.

Thanks for the positive feedback.

_E7
Member
Posts: 16
Joined: Wed May 15, 2019 10:34

Re: [Mod] lib_ecology [lib_ecology][git]

by _E7 » Post

Sure, i can give it a try. What do you think about something along the lines of (obviously also for nodes and tools):

Code: Select all

local function register_craftitem(name, alt, def)
	if minetest.registered_craftitems[alt] then
		minetest.override_item(alt, def)
		minetest.register_alias(name, alt)
	else
		minetest.register_craftitem(name, def)
	end
end

register_craftitem("lib_ecology:stick", "default:stick", {
	description = "Stick",
	inventory_image = "lib_ecology_stick.png",
	groups = {stick = 1, flammable = 2},
})
I thought about having the function search for items with the same name but differing namespace and automatically alias that so it would become a drop in replacement for minetest.register_x but i guess it would be to clever for it's own good (inflexible due to needing to keep item names of originating mods).

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: [Mod] lib_ecology [lib_ecology][git]

by ShadMOrdre » Post

That would be a very nifty way to include craft recipes, overrides and aliases. I like that the function def includes a param for the alt name. I have purposely changed some names to better fit with the overall naming scheme, which is to name items in an ontologically friendly way. This provides db friendly sorting, while also allowing future modders to easily use the materials provided by these mods.

I would recommend, if you have not already done so, to create a github account, and fork this project. In this way, you can easily add pull requests.

Again, thanks for the feedback.

_E7
Member
Posts: 16
Joined: Wed May 15, 2019 10:34

Re: [Mod] lib_ecology [lib_ecology][git]

by _E7 » Post

Yeah, i figured some items would need renaming to fit into a tidy naming scheme.

Alright, i'll go and test the waters to see if github likes me ;) I am actually using a different SCM but i guess sending diffs would get messy quick.

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: [Mod] lib_ecology [lib_ecology][git]

by ShadMOrdre » Post

_E7

Just for the record, and this is not exhaustive. The following are a list of the mods from which lib_materials/lib_ecology are derived. Most rock, dirt, sand, glass, liquid, and ore types come from one of these mods or subgames. If you choose to make the aliases, these would be the most relevant, IMHO.

Default, Darkages, Ethereal, Moretrees, Moreores, Rocks, Technic, Valleys_c mods.
AdventureTest, Farlands, Grailtest subgames.
Node_Texture_Modifier mod.

_E7
Member
Posts: 16
Joined: Wed May 15, 2019 10:34

Re: [Mod] lib_ecology [lib_ecology][git]

by _E7 » Post

I have started with aliasing the dirt nodes. Plan is to move on file by file. I'll try to figure out how to make a pull request once i am done with the dirt nodes. I hope you don't mind if i tidy up the formating a bit while i move along. Saying i have a mild case of OCD when it comes to source code would be an understatement and the overlong lines are strongly triggering it ;)

_E7
Member
Posts: 16
Joined: Wed May 15, 2019 10:34

Re: [Mod] lib_ecology [lib_ecology][git]

by _E7 » Post

OK, i've submitted a pull request for adding aliases to lib_materials. There is a couple where i couldn't figure out the origin but the bulk is covered. Let me know what you think.

Having had a closer look at the code i have some observations/suggestions:

- I'd split the crafting recipes and probably also the item definitions from the nodes. The code is pretty massive and it's hard to get an overview so breaking it down into smaller chunks would improve maintainability a lot in my opinion.

- There is quiet a bit of duplication among the nodes. I guess you just didn't get to it yet but given some nodes are just differentiated by numbers there is probably some that could simply be deleted without losing any noticeable variety.

- Some nodes could/should be added to more generic groups. For example there is like 4+ marble/granite nodes. If all of them get used in the map it would be somewhat annoying to just have a single one of them work with technic. Even if just one of them gets used being able to refer to a group instead of hardcoding the actual node would be advantageous. I think patching the target mod would be the lesser evil here.

- The mapgen/biome code feels out of place in a library dedicated to providing materials. It's not much of a problem though since this code is confined to it's own files and doesn't really get in the way. It just feels wrong.

Edit: I know that lib_materials is ment to be a general resource but since it's main (public) use seems to be to provide nodes for lib_ecology it might be a good idea to make it into a specialized world node library. People who want to use lib_ecology won't get much out of the building nodes since they often aren't even craftable.

Post Reply

Who is online

Users browsing this forum: No registered users and 11 guests