About when will we get proper mobs in minetest?

golthem
Member
Posts: 43
Joined: Tue Jan 21, 2014 20:22
In-game: Golthem

Re: About when will we get proper mobs in minetest?

by golthem » Post

@4aiman
For what purpose? The player or the mobs?

It's probably a good idea to have some armor options in the default game anyways.

4aiman
Member
Posts: 1208
Joined: Mon Jul 30, 2012 05:47

Re: About when will we get proper mobs in minetest?

by 4aiman » Post

@golthem
w/o adding armour mobs have to be made too weak (to compensate the inability to protect from their attacks).

I believe that the whole AI of mobs for a game w/o armour should differ from that for a game with armour.
That includes sieges, group-attacks, fractioning, mobs walking/running speed, max view distance and much more.

Of course that is only my opinion - I'm all for singling out some feature that are in-common for any kind of AI and adding that to C++.

User avatar
TenPlus1
Member
Posts: 3700
Joined: Mon Jul 29, 2013 13:38
In-game: TenPlus1
Contact:

Re: About when will we get proper mobs in minetest?

by TenPlus1 » Post

We need a mob system that works on the same principles as the player, certain nodes can hurt (fire, lava), you can drown in water (can be disabled), can wear armor if available, as well as the AI to handle each one... This is something Minecraft does quite well and is more of an ENTITY system which has features you can turn off or on (AI, hurt, hunger, drowning, armor, flying, walking etc.)... Kudos to MirceaKitsune in making some of this possible in his Creatures mod...

4aiman
Member
Posts: 1208
Joined: Mon Jul 30, 2012 05:47

Re: About when will we get proper mobs in minetest?

by 4aiman » Post

Actually, my mobs are hurt by lava, can be made to drown, can fly, can wear armour, can be fed and much more :)
(all but armour is out there in the old magichet release)

The problem is: to properly code that all, the minetest_game should be overhauled.
That's what some of us are trying to do.

Too bad I can't afford shipping magichet with Minetest.
Well, it's not like MT would *allow* me to do that - the license is rather similar to CC-BY-SA-NC.
I'm still struggling with new biomes system, but other than that I'm pretty ready to make a release.
(I still have to decide whether to buy a server or host myself - the price is nearly the same.)

golthem
Member
Posts: 43
Joined: Tue Jan 21, 2014 20:22
In-game: Golthem

Re: About when will we get proper mobs in minetest?

by golthem » Post

That all makes sense for sure. This is one thing I think Minecraft has really got down (not trying to compare the two, just making a reference...) hostile mobs spawn at night and in dark. There, right from the beginning you have some protection, just go out at day and carry torches when mining. For those who desire to battle, they can make armor, weapons, etc. and then venture into the night or without armor, the mobs still don't have crazy health just enough to add a challenge. The question is, what type of mobs are we referencing? Hostile, friendly, or both? What are the benefits to each?

User avatar
TenPlus1
Member
Posts: 3700
Joined: Mon Jul 29, 2013 13:38
In-game: TenPlus1
Contact:

Re: About when will we get proper mobs in minetest?

by TenPlus1 » Post

Sorry 4aiman, what I meant was that an all round entity system would be an advantage in that no-matter WHAT the mob; player; animal, they all follow the same damage system, armor system instead of being coded seperately...

4aiman
Member
Posts: 1208
Joined: Mon Jul 30, 2012 05:47

Re: About when will we get proper mobs in minetest?

by 4aiman » Post

No need to apologize, Ten :)

I wasn't intended to prove anything or to argue about anything :)

What I meant was that the current system allows us to create rather complex mobs+players interaction (including all the effects you've mentioned).
But the ways of doing that are very hacky sometimes.


@everyone
Now, the reason why I've written about adbs is simple:
If there would be any "movements" towards creating a *generic* system for all entities (like TenPlus1 suggests), devs will absolutely need to look into all current mobs implementations and compare the code.
I'm aware of at least 3 kinds of mobs: animals (MOBF), Simplemobs and adbs.
MOBF is a heavy but *very* complex system.
Simplemobs has many derivatives each fixing bugs and/or introducing new features.
Abds were inspired by simplemobs but were coded from scratch and went further towards MC-like mobs in all possible ways.

IMHO it would be rather stupid to not take a notice on what can await one on the path of creating a generic entities system.

I'd rather give you an example:
Just a couple of days ago a new "get_player_velocity" function was introduced.
I've already suggested to change the name to "get_velocity" - all for the sake of a generic method names and ease of programming.


My point?
Look at those _player_ functions. Think about impossible tasks (on_move for a *non-detached* player inventory). Notice how many sanity checks there are which serve the one and only purpose: make sure that the method exists.

API was made by a C++ coder(s) with little to no regard (just my opinion) to Lua side.
Thanks to a design like this, *is_player* was a player-only method for quite a while, which rendered it being a method and not a field useless (was fixed, "quite a while ago" too).


So, in two words:
I'm all for a kind of a system that Ten proposes.
My only hope that the assigned coder will take a look at some mobs and make some corrections.

Sokomine
Member
Posts: 4276
Joined: Sun Sep 09, 2012 17:31
GitHub: Sokomine
IRC: Sokomine
In-game: Sokomine

Re: About when will we get proper mobs in minetest?

by Sokomine » Post

4aiman wrote: My only hope that the assigned coder will take a look at some mobs and make some corrections.
It's open source...whoever takes the job gets it. If the result is good enough, and other people are convinced of it, it will get used.

I'd love to have a system with a generic interface for registering mobs, which then can be extended by adding more complex behaviour through further mods.
A list of my mods can be found here.

4aiman
Member
Posts: 1208
Joined: Mon Jul 30, 2012 05:47

Re: About when will we get proper mobs in minetest?

by 4aiman » Post

@Sokomine
I was talking about looking into existing mobs' Lua code to make less design errors in C++.
That has nothing to do with open-sourceness, e.g of course it's open source ;)

golthem
Member
Posts: 43
Joined: Tue Jan 21, 2014 20:22
In-game: Golthem

Re: About when will we get proper mobs in minetest?

by golthem » Post

4aiman wrote:@Sokomine
I was talking about looking into existing mobs' Lua code to make less design errors in C++.
That has nothing to do with open-sourceness, e.g of course it's open source ;)
I believe Sokomine was meaning that the job is not assigned to someone, someone volunteers to take it up.

Sokomine
Member
Posts: 4276
Joined: Sun Sep 09, 2012 17:31
GitHub: Sokomine
IRC: Sokomine
In-game: Sokomine

Re: About when will we get proper mobs in minetest?

by Sokomine » Post

golthem wrote: I believe Sokomine was meaning that the job is not assigned to someone, someone volunteers to take it up.
That's right :-) Even the C++ part (if it's needed) has to be done by someone. Convincing the devs that the changes are good is another matter. But first we need some good code I'm afraid. Most of the simple mobs forks are not so good in that regard.
A list of my mods can be found here.

golthem
Member
Posts: 43
Joined: Tue Jan 21, 2014 20:22
In-game: Golthem

Re: About when will we get proper mobs in minetest?

by golthem » Post

I think you're absolutely right with regards to the simple mobs forks. I also believe we need to figure out what route we plan to take, a fake A.I. (like simple mobs) or actual A.I. (something better done in C++ rather than Lua).

I also think we need less of those one man teams out there. I freely admit I can't do models and I can't do textures. If we could get together a couple coders, a modeler, someone to do the textures, and a plan, I'd join the project in a heartbeat.

Perhaps I'll work on organizing some sort of team to do this but I'd like to work on that plan part first. :-)

johnwayne1986
New member
Posts: 2
Joined: Thu Aug 06, 2015 09:44
GitHub: johnwayne1986

Re: About when will we get proper mobs in minetest?

by johnwayne1986 » Post

Would be nice to have a proper Mobs-API. I could help a bit at coding, but I am not yet experienced in the minetest code. I started looking at mob mods in the last days more or less because of this thread. However, I still need more time to understand the code.

Anyway, before something can be coded a proper design of a framework (C++) and API, as some people said, is important. On the one hand the API must be flexible enough to allow diversity of mobs (including special behaviour). On the other hand the framework has to do the computationally demanding tasks. Also a unification regarding the mob interface for a good compatibility to other mods would be desirable.

@golthem: Do you like to open a space to discuss the design etc.? It might be a github fork of minetest with a wiki. A fork is anyway needed, since the C++ code has to be modified. I would like to contribute at coding and API design in my spare time but not at leading or organizing the project. Actually for the API design the experience of mob mod creators (like tenplus1 and some others here) would be of great value. Maybe you can motivate some people to form a (spare-time) team to start thinking about the requirements of a mob API and maybe more? At a later (but not too late) stage the core developers should get involved for giving some comments if the direction is ok for them. They finally decide what is merged and what not. And with their experience they probably now which direction is the right to go.

User avatar
AlexYst
Member
Posts: 109
Joined: Fri Mar 20, 2015 01:24
GitHub: y-st
IRC: AlexYst
In-game: AlexYst
Contact:

Re:

by AlexYst » Post

tinoesroho wrote:The point is, people will dislike the game if there are mobs.

I know I, for one, patched out generating of the C++ mobs back in the 0.3.1-0.4dev days. Mobs, by default, detract from the beauty and wonder of the game.
I completely agree. If mobs were in the game by default, I would never have become as attached to Minetest as I have. I would love it if mobs stayed out of the default subgame.

That said, I really shouldn't have any say on the default game. I'm working on setting up my own subgame, and I really only use minetest_game for testing things these days.

User avatar
benrob0329
Member
Posts: 1341
Joined: Thu Aug 06, 2015 22:39
GitHub: Benrob0329
IRC: benrob0329
In-game: benrob03
Location: Michigan
Contact:

Re: About when will we get proper mobs in minetest?

by benrob0329 » Post

I think that having a mobs api in the default, or in the C++ side of things, would be nice.

A friend and I are working on a modular (API+sub mods) mobs mod based on BlockHeads's Creatures mod.

golthem
Member
Posts: 43
Joined: Tue Jan 21, 2014 20:22
In-game: Golthem

Re: About when will we get proper mobs in minetest?

by golthem » Post

johnwayne1986 wrote:Would be nice to have a proper Mobs-API. I could help a bit at coding, but I am not yet experienced in the minetest code. I started looking at mob mods in the last days more or less because of this thread. However, I still need more time to understand the code.

Anyway, before something can be coded a proper design of a framework (C++) and API, as some people said, is important. On the one hand the API must be flexible enough to allow diversity of mobs (including special behaviour). On the other hand the framework has to do the computationally demanding tasks. Also a unification regarding the mob interface for a good compatibility to other mods would be desirable.

@golthem: Do you like to open a space to discuss the design etc.? It might be a github fork of minetest with a wiki. A fork is anyway needed, since the C++ code has to be modified. I would like to contribute at coding and API design in my spare time but not at leading or organizing the project. Actually for the API design the experience of mob mod creators (like tenplus1 and some others here) would be of great value. Maybe you can motivate some people to form a (spare-time) team to start thinking about the requirements of a mob API and maybe more? At a later (but not too late) stage the core developers should get involved for giving some comments if the direction is ok for them. They finally decide what is merged and what not. And with their experience they probably now which direction is the right to go.
The biggest problem with modifying the C++ side of things is simply that the project would be big. If we do this, it needs to be done with a plan otherwise it will fail.

Some people like mobs in the default game, others don't. If we end up modifying the C++ code, my suggestion would be to have an option for enabling mobs in the settings menu but have it disabled by default.

The main thing is, we need to wrap up the conversation and start doing.

User avatar
benrob0329
Member
Posts: 1341
Joined: Thu Aug 06, 2015 22:39
GitHub: Benrob0329
IRC: benrob0329
In-game: benrob03
Location: Michigan
Contact:

Re: About when will we get proper mobs in minetest?

by benrob0329 » Post

My suggestion is to make the API in C++, and expose it to Lua, similar to how nodes are done.

golthem
Member
Posts: 43
Joined: Tue Jan 21, 2014 20:22
In-game: Golthem

Re: About when will we get proper mobs in minetest?

by golthem » Post

benrob0329 wrote:My suggestion is to make the API in C++, and expose it to Lua, similar to how nodes are done.
This is most likely the method we would use (as discussed above).

johnwayne1986
New member
Posts: 2
Joined: Thu Aug 06, 2015 09:44
GitHub: johnwayne1986

Re: About when will we get proper mobs in minetest?

by johnwayne1986 » Post

Yes, when I wrote API, I meant Lua-API. All mobs should still be defined in a mod, but with a better interface than minetest.register_entity. Actually, right now, all mods define first a mob-API (with a custom framework for movements etc. written in Lua) and then the different mobs with it. The C++-framework would replace the one written in Lua and maybe add more flexibility or features. A good result in my opinion would be when all mob mods can use the new API (if they like) without loosing any feature. Of course the new API specifically for mobs would not replace the current more general interface minetest.register_entity. Thus the current mods would continue to work without modification.

@y.st.: This is just about a better API. There will still be e.g. the mobs-redo mod, which you can use or not. This is not about changing mintest_game or adding mods to it. However, maybe sheep or other friendly mobs would be cool for the default setting, but that should not be discussed in this thread. This must be discussed when the API is finished.

@benrob0329: Sounds interesting. Do you have a public repo or a discussion board or something? Would be nice to see it.

User avatar
benrob0329
Member
Posts: 1341
Joined: Thu Aug 06, 2015 22:39
GitHub: Benrob0329
IRC: benrob0329
In-game: benrob03
Location: Michigan
Contact:

Re: About when will we get proper mobs in minetest?

by benrob0329 » Post

We are still getting the basics working, I get back to you on that.

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

Re: About when will we get proper mobs in minetest?

by rubenwardy » Post

I don't care so much about monsters, but I'd like environmental animals and realistic animals:

grassland: sheep, pigs, birds, worms, rats, horses
forest: pigs, birds, wolves (+ dogs)
(near) desert: lions, tigers, camels, deer
sea/rivers: tuna, salmon, sharks, whales
jungles: monkeys, parrots
tundra: wolves (+ dogs)

the Github issue for this: https://github.com/minetest/minetest/issues/2291
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
benrob0329
Member
Posts: 1341
Joined: Thu Aug 06, 2015 22:39
GitHub: Benrob0329
IRC: benrob0329
In-game: benrob03
Location: Michigan
Contact:

Re: About when will we get proper mobs in minetest?

by benrob0329 » Post

I'd be ok even if such mobs were in default, I much prefer the animals approach.

User avatar
ArguablySane
Member
Posts: 116
Joined: Sun Oct 12, 2014 21:29

Re: About when will we get proper mobs in minetest?

by ArguablySane » Post

I'm going to reply here because I don't have a github account yet.

I like ruben's idea of movement patterns for swimmers, walkers, flyers, etc. Those should be implemented with fast c++ functions which take the mob towards its current target location. Those functions should also run on both the server and client to avoid de-sync issues.

There should be various higher level AI functions which receive information about the mob's surroundings and periodically update its target location. There could be some default ones such as wanderer (just randomly moves around), grazer (looks for grass and eats it), predator (looks for players/mobs and attacks them), territorial (tries to kill anything which comes close, but doesn't stray too far from a specified location), etc. It should also be possible to implement custom AI in Lua since it's not time-critical code. It will still work okay if the AI function is only updating every second or two.

There should also be a way to define an animated model for a mob. This is potentially quite hard. How I'd approach it is to have each movement pattern come with a set of animation states, such as standing, running, swimming, etc. Each of those can then be assigned a particular model animation. Additional animations such as sitting, sleeping, attacking, or looking around could be handled by the AI, and potentially added with Lua scripting.
The above post and any ideas expressed therein are released to the public domain under a Creative Commons CC0 license.

CrazyDaisy
Member
Posts: 12
Joined: Fri Oct 31, 2014 22:25

Re: About when will we get proper mobs in minetest?

by CrazyDaisy » Post

Well, it's 2016. Any news on mobs in the core code? My suggestion is maybe an API in the core that mods can use to create mobs. The core needs to handle all the cpu intensive stuff and mods just handle the basics. This would allow all sorts of mobs to be created, or none created. It would allow there to be mob mods to handle passive mobs such as sheep, cows, chickens, etc. Would allow there to be mob mods to handle aggressive mobs such as zombies or whatever. Or if the player doesn't want any of it, no mods could be installed.

All it takes is a group of people with the knowledge to get together and get it done. Would probably take less than a month of part timing it. Then the mod makers can get to work putting the new API to use, which would flush out bugs that can then be fixed. A survival world without something to defend against is pretty boring. A world with a ton of farming mods but no animals to farm is also boring. Using the current lua for mobs just isn't cutting it. The majority of the mob code needs to be in the core of minetest to keep performance high and keep glitches low. If I knew how to do it, I would jump on it.

User avatar
MineYoshi
Member
Posts: 5373
Joined: Wed Jul 08, 2015 13:20
Contact:

Re: About when will we get proper mobs in minetest?

by MineYoshi » Post

CrazyDaisy wrote:Well, it's 2016. Any news on mobs in the core code? My suggestion is maybe an API in the core that mods can use to create mobs. The core needs to handle all the cpu intensive stuff and mods just handle the basics. This would allow all sorts of mobs to be created, or none created. It would allow there to be mob mods to handle passive mobs such as sheep, cows, chickens, etc. Would allow there to be mob mods to handle aggressive mobs such as zombies or whatever. Or if the player doesn't want any of it, no mods could be installed.

All it takes is a group of people with the knowledge to get together and get it done. Would probably take less than a month of part timing it. Then the mod makers can get to work putting the new API to use, which would flush out bugs that can then be fixed. A survival world without something to defend against is pretty boring. A world with a ton of farming mods but no animals to farm is also boring. Using the current lua for mobs just isn't cutting it. The majority of the mob code needs to be in the core of minetest to keep performance high and keep glitches low. If I knew how to do it, I would jump on it.
The simple fact is that Minetest Game wouldn't have any "mobs-in"... Since Minetest Game only gives the needed to play. About adding an API to the core, being sincerely i don't know what the devs could think, of course you can do a fork and add the API to a new game based in Minetest :D. But the fact is that the developers agree with adding, coding and debugging the API, also i don't how hard can it be...
Your idea is very great (I should say it, i never thought before adding an API in the core), but that be added is something that i don't know...
Have a nice day! :D

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests