Gotta catch 'em all: Improving the ally system

The game currently has a rudimentary ally system.

You can tame dogs and NPCs (If you enjoy having your game crash), and some small robots or blobs. Nothing major or game-changing.

I’d like to see this vastly improved upon.

1) Tame and Train

Firstly, we need a beast tamer skill. No I’m not kidding. Think about the possibilities:

Low levels. 1-3: You can train dogs to do basic stuff like follow, attack

Mid levels. 4-7: You can start to tame wolves in the same way as dogs, and teach them basic skills.

You can teach dogs to fetch items, bark and run (to distract Zs), wait, attack specific targets, track smells, carry saddlebags.

High levels. 7-14: You can start to tame more exotic animals, like spiders, cougars, and even bears.

You can teach wolves all the same tricks you taught dogs - they are fully fledged canine companions.

Super-high levels. 14+: All animals can be tamed and trained, including weird and exotic ones like giant toads, graboids, or otherworldly creatures like flaming eyes, and they can use their special skills (barfing acid, burrowing, exploding buildings) at your command.

1.1) Taming

Taming can be achieved via a number of paths. The normal route will be capture and then tame, but players with a higher skill level, and some weaker animals, will require only taming - e.g. just throwing dog food to a dog.

Stage 1: Capture:

A captured animal is far easier to tame. Here are some possible methods:

You trap the animal in a cage, or by throwing a net over it.
You can hurt it until it is too weak to fight back.
You can poison it with various darts and tranquilisers.
You can use pheromones crafted artificially, secreted by a CBM, or produced naturally by mutations.
You can face the animal down, by mimicking its body language and asserting dominance, but this will only work at much higher skill levels.

Stage 2: Taming

Throw food to an animal: Weak, but cheap.
Hurt the animal: Effective, but lowers HP, and makes training harder in the long-run. If overused, will cause animal to rebel.
Use chemicals/pheromones: Very effective, but requires crafting and/or mutations.
Mimic body language: Effective depending on skill level.

1.2) Upkeep

Animals need food to survive. They will also require their loyalty to be kept up via some of the methods used for taming (feeding/beating/chemicals)

I’m not proposing Harvest Moon: DDA, where you have to brush, pat and wank off your dog every day to keep its heart levels up, but I think it would be a reasonable to suggest that having a well-trained and obedient dog should require devoting food and training time to it every day or two.

The system should be flexible enough that having a poorly trained ally is more than viable, and requires little input - e.g. just having a dog to follow you around in case you want it for meat someday, or just making it like you enough to kill stuff for you.

Actions like feeding, or petting, would contribute to a pool of arbitrary points (let’s call them <3s, cos I like Harvest Moon), which would represent both the animal’s loyalty to you, but also the available EXP pool for training the animal to do stuff.

With higher skill levels, the number of <3s earned per feeding/beating/petting would increase.

1.3) Training

Once tamed, animal allies will require training to learn certain skills. Training will draw from the <3 pool, so players cannot simply train an animal ally 24/7 until it can do everything, or the pet will start to rebel.

I envisage a menu-based system based off the conversation framework.

Different talents will require different amounts of training, and will rust over time if there is no input. The amount of rust will decrease as the player gets higher skill levels, and as a result of length of companionship, so eventually a dog/wolf might never forget its training, and better animals might eventually only need occasional help.

So, for example:

A dog might require 10 <3s worth of training to learn basic fetching.
A wolf might require 20 <3s worth of training to learn learn basic fetch.

Every day, the dog would rust about 1 <3 of training. The wolf would rust 2 <3s. With greater skill and over time, this will start to fall until they never erode.

You can train them above the maximum, perhaps without limit, so that if you need to go on an extended looting trip, you can rely on your ally not to start rebelling two days in.

2) Robot companions

Manhacks and turrets are great fun, but the apocalyptic survivor needs more… specialised robots. (No. Not that. Never that, you sick sick sicko.)

Gunbots
Hoverbots
Speedbots
Tankbots
Fetchbots
Noisebots

Basially robots should be able to mimic the commands you can give to organic pets, with the advantage that they can perform them much better (e.g. a fetchbot can use magnets to attract metal items to itself immediately, rather than needing to run up to something then run back; a tankbot will have more health than all but the most exotic of pets). They will also require far less maintenance - perhaps a power source or some batteries every day or two, but no training or food.

On the other hand, they will be far less versatile than organic creatures. You can’t have your hoverbot perform complex commands. It’s simply an all-terrain robot which carries stuff for you. Likewise, your gunbot won’t be able to fetch stuff, it will simply shoot with precision wherever and whenever you tell it to do so.

Perhaps at very high electronics skill, it might be possible to craft android servants, who can perform a wider variety of tasks, but, as with taming exotic beasts, this should require a huge amount of input from the player, and a lot of upkeep in the form of power sources. A true AI robot would be a year-long project, requiring loads of parts, very high skill levels, and special items only found as a lucky drop.

3) Ally skills

So I’ve briefly talked over some of the skills your allies might have. Now I’m gonna expand on those ideas a bit more.

Many of these will be split into various stages of effectiveness.

Attack:

Stage 1: The ally can be ordered to fight everything or stay defensive.
Stage 2: The ally can be ordered to pick specific targets, and engage in a number of different combat behaviours (like NPCs currently can)

Follow:

Stage 1: The ally will stay nearby, more or less.
Stage 2: The ally will closely track the player
Stage 3: The ally can be instructed on how to follow the player (closely, at a distance, to the side, to the front)

Direct:

Stage 1: You can make the ally stay in one spot, or move in a certain direction
Stage 2: You can order the ally to move to a specific location, wait for a specific amount of time, and find you again after a specific amount of time.

Create Noise:

You can order the ally to make varying degrees of noise, based on what it is (dogs can bark, cows can moo, robots can play Nickelback to instantly kill Zs)

Fetch:

Stage 1: The ally can fetch something you throw back to you (e.g. returning thrown spears and knives) and can be ordered to fetch something in a certain direction (e.g. It will go west and pick up a random item for you)
Stage 2: The ally can fetch more than one thing at once, and can be ordered to fetch specific objects from specific locations, or to automatically pick up certain objects (i.e. your fetchbot could always fetch you combat knives when it sees them)

Track:

Stage 1: The ally can be ordered to follow a certain target
Stage 2: The ally can be ordered to track a smell, even if the target isn’t visible

Carry:

Stage 1: Your ally will hold an item/some items for you and drop it on demand.
Stage 2: You can equip your ally with saddlebags, and access its inventory whenever you like (obviously with weight limits etc.)

Special Skills:

Stage 1: The ally will use its talent on demand (e.g. spewing acid at random during combat)
Stage 2: The ally’s use of its talent can be directed more precisely (e.g. spewing acid in a specific direction.

Riding:

You can saddle your animal up, and ride around on it. It will add its attacks to yours, and will retain its movement speed and type - e.g. a giant fly can fly very fast - but obviously weaker animals would have trouble bearing your weight.

4) Building up Attributes

It should be possible to make your allies better and stronger.

This could be achieved in a similar manner to training skills - animals can be put through exercise regimens or fed extra food to get more strength, robots can have upgrades crafted and attached to make them stronger (i.e. armour plating, extra motors)

Wild animals are necessarily weak, as it stands, because the player needs to be able to take them on. It would be cool to go from a 30 HP wolf with a ~5 HP bite attack, to a 200 HP behemoth which can inflict bites for 20-30 HP of damage.

Ok. I hope that seems good. I’d certainly love to see more stuff like this in game. It could be a deep and complex system, which allows for different levels of player input - from crafting a cheap robot helper to building a megabot, or from throwing some food to a dog for a meatshield distraction, to having an intelligent canine helper, who can provide you with tactical support and combat assistance.

Looks like a long-term coding project.

I like the idea, though. Suggest that ridability be limited to size 3-4 creatures (deer, bear, giant worms*, giant frog/slug, etc–larger-than-human). Otherwise, certainly an interesting alternative to Mechanics for mobility.

And I always wanted to have a queen-bee mutation.

*One lumper or two?

Why not? We need to keep our moral up in the post apocalyptic world don’t we?

[quote=“KA101, post:2, topic:538”]Looks like a long-term coding project.

I like the idea, though. Suggest that ridability be limited to size 3-4 creatures (deer, bear, giant worms*, giant frog/slug, etc–larger-than-human). Otherwise, certainly an interesting alternative to Mechanics for mobility.

And I always wanted to have a queen-bee mutation.

*One lumper or two?[/quote]

Well I’m not entirely clear on how riding would work - I added it in as a last-minute afterthought (and in all honesty, I don’t think it’s that important to the game. This isn’t nethack.)

I would suggest something along the lines of assigning each creature a size score and a strength score, and making their ability to cope with you + your equipment a function of those two traits in some way.

Thus it would eventually be possible to ride your poodle like a skateboard, but only after you’ve trained it to be well hench.

Why not? We need to keep our moral up in the post apocalyptic world don’t we?[/quote]
Assume the position…

But other than that the ideas sound good
I don’t think riding creatures is necessary we already have vehicles that can haul you and your goods, aid in attacks(ramming while driving) etc

But vehicles are bulky, whereas a man riding a bear can still get into a house and pick stuff off shelves.

Vehicles are for speed and storage. Riding is for an expensive but flexible stat boost, which follows you around when you’re not riding it.

[quote=“Benedict, post:6, topic:538”]But vehicles are bulky, whereas a man riding a bear can still get into a house and pick stuff off shelves.

Vehicles are for speed and storage. Riding is for an expensive but flexible stat boost, which follows you around when you’re not riding it.[/quote]
With a vehicle you can still get in places with RAMMING POWER!

I mightily support this! Can’t really help out with the coding though :confused:

At the very basic, dog commands are needed. At the even more basic, being able to tell it to “stay” / “follow” as well as the current (and useful) “attack” / “don’t attack”.

How simple would that be to add? I have looked at the iuse.cpp, but I don’t really understand what the code is doing, I’ve not done C++ at all. Not sure where the ME_DOCILE is defined either. But, maybe it’s not much more than adding extra if statements to set the dog to follow the character (as with the docile setting) and one to set it to remain static?

And if the vehicle you’re using has two seats, somehow get it to sit in the other one. Damn thing is always getting too close to my car and getting hit. …Actually…on second thought, it’s entirely realistic! Dogs often try to bite tires and otherwise get too close to cars…