Jump to content

Mod: Dog Training


Stroam

Recommended Posts

This is an idea for a mod and not really for vanilla game content. No guarantees on if it'll ever be a thing but I thought I'd post is here for the sake of discussion and in case any ambitious modder was looking for ideas.

I assume at some point wolf pups will be tamable. Everyone who has played Minecraft knows the tamed wolves are pretty useless. They do attack things the player attacks, scare off skeletons, sit, and follow. I think a wolf training system would make tamed wolves more useful and be entertaining.

First wolf training would be a skill. Each time a player successfully teach a wolf a skill they get a skill point up to a max of 100. Some wolf skills can only be taught by a skilled wolf trainer. Simple enough

Step one Bonding:

Before a player can teach a tamed wolf anything the player must bond with it. Basically, the player feeds it when it's hungry and eventually hearts particles will popup letting the player know they are ready to bond. Once a wolf is ready to bond the player gets +1 wolf training and must name the Wolf. To name the wolf, take a whistle and click it on the wolf. Once named, a radial overlay will pop up when sneaking with the whistle allowing the player to quickly give it commands. This would work similar to switching wand foci in Thaumcraft if you've ever done that. Basically while holding a doggie treat and sneaking your mouse would appear in a center circle with all the commands appearing on the outside allowing you to quickly select an option.

Step two Training:

When after a player has bonded they can begin to teach their wolf tricks. The player commands the wolf and watches to see what the wolf does. If the wolf follows the command the player should reward it with a treat. Rewarding the wolf has a chance to increase how often the wolf obeys. Different wolves will start off at different levels of being trained determined by the parents or random if from the wild. So one would might right off the bat obey about 50% of the time while another might only obey 10% of the time. They also have different learning rates. Some wolves will catch on quickly while others not so much. As the players training skill increases so too does the chance that the wolf will learn to obey more often when given a treat. At first, the players radial menu will start off with only sit and follow commands but more options will be added as both the players' training skill increases and the wolf learns more. The player needs to be careful not to give the wolf a treat when it disobeys an order or it might start unlearning a command.

Step three learned skills

Once a wolf obeys a command 90% of the time or higher it is considered a learned skill. At that point, the whistle may be given to another player who may not be high enough to teach that command but will have access to that command because the wolf already knows it. 

learned behaviors

Wolves will get gain a deeper understanding of skills over time as it gains expierence. For instance, if a wolf is told to guard an area it will bark at any mob or player that enters the area. If it is barking at a chicken and the player commands it to stop all the time, it'll eventually learn not to bark at chickens. If it keeps getting attacked by wild animals or players, the wolf will start to attack other players and mobs on sight.

breeding

Over time by paying attention to how quickly wolves pick up things and how obedient they are at the start you may breed wolves to become more obedient, learn quicker, have more hp, and do more damage.

Under the hood Mechanics

Spoiler

 

player stats
trainer level - how skilled the player is at training wolves

Wolf stats
ID - wolf name
namable - tells if the wolf is ready to be named
health - how much HP the wolf has
strength - how much damage the wolf does, wolf size, how much it can carry, how frequently it gets hungry.
domestication level - determines how obediant the wolf is to start.
cunning - how quickly the wolf learns

Whistle stats
Bound wolf - the ID of the wolf it is bound to
skills - the skills and chance of obeying those skills for bound wolf
aggression - determines how likely the wolf is to attack things on sight.
exceptions - A hashtable of ID'sandchance of not being aggressive toward entities it is told no about.


		OnCommand{if(obey([domestication level], [skill level])) executeCommand()}
		OnReward{if(commandResult == success) skill + tryLearn([cunning], [trainer level]) else skill - tryLearn([cunning], [trainer level])}
		onBreed{babyStats = average(motherStats+fatherStats) + [60% chance to increase]}				
			

 

 

 

 

 

Edited by Stroam
tags
  • Like 1
Link to comment
Share on other sites

Learned behaviors sounds really complicated, but I bet it could be done with a relatively simple system. Most of the needed structure would exist already for the basic training system.

In any case, this is a really good suggestion, and I think it would fit the vanilla game just fine. Certainly if wolf taming is vanilla, this would be much better than the mostly worthless MC-style wolves.

I really see nothing here I don't like.

Link to comment
Share on other sites

Useful behaviors aside from attack?  

- Flush - can command the wolf to hunt up game from thin air.  If successful a rabbit or pheasant or even boar, maybe deer, appears nearby.

- fetch - they'll go and grab items in areas the player doesn't want to go, going through 1-high openings so the player doesn't have to.

- guard - They stay in place and attack animals or mobs that come close.  Useful in guarding crops.

- truffle - If truffles were ever a thing, the dog could got indicate an area in a certain radius where truffles are (if pigs became trainable they'd be much better at it, having a larger radius)

- herd - Targets a group of animals.  causes them to follow the wolf, who is presumably following the player.  Obviously this is the reverse of how it should be, but for code purposes I would assume easier.

I think a tamable wolf mob would be much better if it also included the ability to get specific breeds of dog.  It could operate off a simple recessive gene scenario (with maybe 1 in 10 wolves carrying a breed gene), so the player has to do a bit of breeding to successfully get a recessive gene to manifest.  It could have 'tech trees' of breeds, so wolves would only carry the genes for certain near-wolf breeds (husky, german shepherd, whatever) but those sub-breeds, once created, would have a chance to have a different sub-breed gene.  Some breeds would be better at some tasks, and also better at swimming, or faster, or do more damage.  Some would be better at nothing, just 'for the hell of it' breeds (bulldog, pug, chihuahua).  I could see such breeds being very valuable on SMP servers, purely as prestige/rp mobs.

 

Link to comment
Share on other sites

@DMKW With stats increasing with breeding I don't know if players will need more encouragement.

Any command is possible with enough code. I purposely used "wolf" instead of "dog" when talking about training to emphasize that while trainable, there are just some things that would be exceedingly difficult to train a wolf to do.

@redram To go from a wolf to most of the breeds we have today would be unrealistic. Some of the older breeds could be in the realm of possibilities. While breeds do add on another degree of complexity programming wise, I do think it could be a good way to visually differentiate different breeds from each other. Especially if the graphical changes corresponded to functional wolf stats such as how I state strength changing how large the wolf is.

Link to comment
Share on other sites

One of the aspects that really tick me off in Ark Survival Evolved was how not interactive the Dinos were.

I once had a player comparing the Dinos as cars that bite. they are just static entities with no life in itself.

I would like for animals in VS to have some simple independent behavior. Nothing too complicated.

For the dogs, just to play with each other and the puppies, and to walk around the base.

Maybe one day it would be cool to throw a stick and have them recover it, but that can wait.

 

 

Link to comment
Share on other sites

  • 2 years later...

I'm a developer and this will be my first time at modding.  I want to make this mod though and will use this topic as a springboard.  Please leave any other ideas here and for an experienced modders let me know if this is even possible in the current state of the game :)  Once I get something more concrete I'll make another topic but port over the ideas listed in this one :)

Link to comment
Share on other sites

Anything is possible given enough time, knowledge, and work. Instead of telling you if it is possible I will tell you the skills necessary to pull this off and how relative difficulty based on how many other modders have done something similar.

  • Modeling - Many
  • Custom recipes - Many
  • Animations - Few
  • Adding assets - Many
  • Adding items to the game - Many
  • Adding entities to the game - Few
  • Particles - Few
  • Adding behaviors - Couple
  • Item to behavior code - Couple
  • Target locating - None
  • pathing - None
  • Server side and client side - Few
  • Saving data - Couple
  • GUI development - Couple
Link to comment
Share on other sites

  • 1 year later...
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.