(Complex / More) Drones!

Share your original Slimepedia entries

(Complex / More) Drones!

Postby Antimoany » Thu Oct 18, 2018 3:48 pm

Fun fact: The only types of suggestions I ever post on forums are complex in one way or another.

I know this is titled "slime design" (not Slimedeas? Shame.) but it's also the only suggestion forum this site has.

First, I love drones. I truly do. They finally allow me to do...well, anything besides feeding my slimes and emptying their collectors. Thank you, Monomi Park, sincerely, for these adorable bees that can even wear curios.

However! I've encountered the same frustrations over and over, and I think I've finally come up with two mutually exclusive solutions to those frustrations.

Consider literally all of the below suggestions purchasable upgrades (perhaps from a new NPC? I originally considered 7Zee, but that raises the question about where in the list to put them. I think creating a new source for these particular upgrades, and perhaps other technological upgrades, is the best approach here.) Each separate header is basically a separate purchasable upgrade.

1: Complex Drones

Allow the use of more complex programming for drones. This programming is unique to each drone (the way it is now, just more complex). Specifically:

If / Else Statements

Example on a drone already set to collect plorts:

1. if honey:
   destination = silos
elif pink:
   destination = repository
else:
   destination = market

2. if silo = full:
   destination = repository
elif repository = full:
   destination = market

Food Targeting.

Drones should be able to target “food” as a full group, in much the same way they can target “plorts” as a full group. If-statements should take care of which food goes where.

Furthermore, since the introduction of drones I've deleted all my coops, and rearranged my largos so none of them exclusively eat meat. This is because it's functionally impossible to get drones to properly feed out of coops. The only viable target is either “meat”, meaning roosters get fed out, immediately killing further chicken production; or one specific type of chicken, meaning I must either have all-boom-largos in an area or just farm ordinary henhens and not even bother with favourites. I did try just feeding old chickens, but chickens don't age up quick enough for that to keep a whole area even remotely well-fed, even with three coops.

In truth, if-statements would take care of the meat issue, but that still renders feeding meat a lategame objective, by which point most player's ranches are “done” anyway and there's no point rearranging what's worked up until then. The simplest solution is to just add “hens” as a food target.

Corral Favourability

For this to work, every corral in an expansion must be assigned an ID – by default it's just a number counting up from 1, but there's no reason players couldn't define their own corral IDs (I can already imagine people (rightly) upset at not being able to memorise the numbers and wanting to just name a corral “Shiny Bois”). Ponds, incinerators, and any future specialist slime containment should also get corral IDs.

Then players can choose from a list of preset possibilities for favouring corrals, including:

Fill most empty feeders first
Only put $food in $corral_ID
Always feed $corral_ID (last / first)
Harvest $food (last / first) – effectively, if more than one food is ready to be harvested, the drone will always go for the specified food last or first.
Share (I can't think of a simple shorthand for this rule. Effectively, if three corrals all get carrots, and the drone harvests 87 carrots, it divides 87 by 3 and feeds that number of carrots to all three corrals, tossing the small remainder into the final corral it feeds).

With that done, it's effectively just another list of if/else statements, because let's be honest, that's how most real autonomous drones are programmed, too. Because it's simple and it works.

If cargo = mint_mango:
   destination = Honeys
elif Honeys_Feeder = full:
   destination = GlowBois
elif $feeder_fruit = empty:
   destination = $feeder_fruit
else:
   destination = silos

To explain the $feeder = empty rule: $feeder looks for all feeders in the area that accept fruit. For this particular rule, if any of them are empty, the drone's destination is now that empty feeder. Then the drone checks again: any more empty feeders that accept fruit? No? On to the silo.

(I know you can technically “specify” which food goes where by pre-filling the container, but I'm having huge problems getting those containers to stay filled for any length of time, and drones literally can't even see empty feeders, so we really need a way to just tell them what foods go where)

Heirarchy

Since we're turning drone code into several separate lists of if/else, we need to indicate a heirarchy of execution (both to avoid conflicts, and to make it easier on players to understand what they're telling the drone to do). This would likely be a simple drag-and-drop list of all the different rules (which each total if-statement functioning as a single rule), with the rule at the top being executed first, and the rule at the bottom being executed last.

So using all of the above examples, a single drone could be set to:

Target = Food

1. Harvest carrots first

2. Fill most empty feeder first – making this rule the most important. Forget the specifics, just feed them whatever's lying around. (Although, if implementing the “food targeting” concept, there might need to be a requirement that it be a food type that corral is set to receive. Considering most players keep largos, that could potentially be two different food types. Effectively meaning this rule will be skipped if the drone is carrying carrots and the only empty feeder belongs to a boom/quantum corral.)

3. If cargo = mint_mango(...) – you can see the full rule above.

4. Feed ShinyBois first – if the drone is carrying valid cargo for ShinyBois, they get it regardless of who else it would go to (unless it's carrying mint mangoes, because they're only for Honeys and GlowBois, as defined in rule 3.)

5. Default behaviour – this rule cannot be dragged like the rest. It's permanently stuck at the bottom of the list, and only exists to illustrate to players that, when all the other rules no longer apply, the drone will go back to behaving the way it did before complex rules were applied to it. This means that if there are no carrots to harvest, no empty feeders, it isn't carrying mint mangoes, and ShinyBois have been fed, it'll behave the way drones do in the current version of the game.

2: Hives

Drones no longer live on individual flowers. Instead, one(1) Hive may be placed in each expansion. By default the Hive contains two drones, but the player can craft more and add them to the hive up to a certain maximum, defined by the hive's level. Hives can be upgraded twice. I'll leave the specifics up to the devs.

The hive itself has a very similar interface to the one currently allowing drone programming, but with a supermenu allowing the player to select which drone they're programming. (Maybe we could even name the drones, though Drone_1 and Drone_2 are fine too).

Drone programming itself would largely be identical to the current system, though I'd still like to see vague food targeting and some more simplistic if-statements, the full gamut of suggestion 1 is largely rendered irrelevant by the mere existence of additional drones. Essentially, if we can have more drones in an area, we no longer need the “food drone” to be able to differentiate between specific food types or corrals.

Hives still need to be watered every day, and every morning all drones consume one honey plort. Hives have a container that can hold <arbitrary number> of honey plorts, so players aren't topping them up every day. Those plorts are irretrievable, as they are with the lab repository.

I strongly prefer suggestion 1

For a variety of reasons, really. It feels less cumbersome when playing, even though it would likely be more cumbersome to implement (and learn, for those with zero programming knowledge, but even that pseudocode I wrote is very simple and could easily be rendered simpler in the in-game menu). There's also the fact that having lots of drones would cause not only lag (if you get the max-upgraded hive cap to something stupidly high like 20, though even I can't think of a valid use for twenty drones in one expansion), but would likely get into one another's, and the players' way (the two-per-expansion do already, if I'm honest).

Plus, complex programming just feels more futureproof in general. I have a whole list of possible additional drone rules, below, that are beyond the scope of current drone function. Did the devs add some new slime-related feature that isn't even in the picture right now? That's fine, add some relevant drone code to handle it!

I also feel, since this game is so accessible, it would truly be a great platform to introduce the concept of simple programming to players who had previously never even thought about it before. Consider redstone in Minecraft. How many thousands of players learned about logic gates because of that? Well, at least one, because I'm among them.
Antimoany
Plort
 
Posts: 5
Joined: Sat May 26, 2018 5:41 pm

Re: (Complex / More) Drones!

Postby Antimoany » Thu Oct 18, 2018 3:48 pm

Additional drone rules

These are all beyond the scope of current drone behaviour. As above, consider each header a separate purchasable upgrade.

Important Rules

Up to a maximum of two rules in a drone's programming can be rendered Important, though they must be defined as First Important or Second Important, for reasons that will become obvious.

If the conditions for an Important rule are met, a drone will immediately drop what it's doing and follow that rule. Plorts in-transit are literally deleted (because having a drone suddenly drop plorts is a horrible idea, but having them put those plorts somewhere else kind of kills the “ASAP” nature of the rule. Plus it makes for a decent cost for having this rule as Important). Food is instantly dropped on the ground (because, worst-case scenario, some slimes eat a non-favourite food).

Generally speaking, Important rules would be reserved for emergency situations. Escaped slimes, tarrs on the ranch, or feeding hunters to make sure they don't turn feral. Each drone can have two, with Important 1 causing them to instantly drop Important 2 if they were carrying it out.

Whilst carrying out an Important Rule, a drone's face will become red, and they will have the same alarmed expression as a slime that just saw a tarr.

If a drone had to carry out an Important Rule in the player's absence, their face will be yellow when the player next sees them.

Slime retrieval

This is where Important Rules come in. Drones can now identify escaped slimes, and return them to a valid corral. I can see three possible methods of identifying a valid corral. In order of my own personal preference of implementation:

1. When a slime leaves a corral in any manner for any reason (including removal by the player), tag it with the ID of the corral it just left. Captured slimes are returned to the corral for which they're tagged.

2. For each corral, calculate whether the addition of the captured slime's plort(s) would create tarr in that corral. If true, try the next corral. If false, add slime to corral.

3. Search all corrals for an identical slime. Add the captured slime to the corral containing the highest concentration of identical slimes. - I specify “highest concentration” because otherwise, one escapee making it into another corral could result in all other escapees being placed in that corral. However, I like this idea the least simply because, if a player keeps multiple corrals with identical slimes, this would result in one becoming horrifically overcrowded, and drones further overcrowding it every time the overcrowded slimes escape.

In all cases, if there is no valid corral, the captured slime is ejected from the ranch – either thrown off a cliff into the sea, or ejected through a gateway into the next expansion for the process to begin anew there.

Much like the player, drones can vac up multiple ordinary slimes, but can only carry one largo at a time. But don't worry! You can buy a special containment field for drones that makes it impossible for a captured slime *cough*quantums*cough* to escape the drone's grip until released.

With complex programming, you can create a ruleset for capturing escaped slimes. Players can, for example, ensure drones drop their current activity/cargo to deal with an escaped slime ASAP by setting it as an Important Rule, unless they're carrying mosaic plorts, in which case they still sell them first.

Or specify, for example, that fire slimes must be put into the incinerator tray (not fired directly into the destructive part); water slimes into the least-occupied pond; and escaped pink slimes should be ignored.

Slime hydration

Drones can now hydrate slimes by emptying their own water-tank faster. Hydration targets can be set to any type of slime, though I imagine the most common targets will be tarr or escaped slimes of any kind. Agitated slimes are also made a valid target for this particular rule. Render the hydration of tarr an Important Rule to ensure it's dealt with before they eat everything else.

For obvious reasons, drones cannot hydrate themselves.

Oh....Also, tarr now target drones. They can't actually eat them, but they will pull them off-course and eat their cargo.

Cleanup

Currently, if a drone's target is beyond its source, it can't see it. While I understand the reasons for this, it means that if crops get knocked off the farm plot, or plorts knocked out of a corral, they're just ignored.

Therefore, drones should get a straightforward “cleanup” rule: if $target is on the floor, prioritise picking that up over taking it from any other source. Then follow programming as usual to determine where it belongs, including collecting more of the item if possible and necessary (for example, because it's one carrot and there are more carrots that need harvesting, and at least one feeder has space for carrots).

Additional Drone Upgrades that aren't rules.
Compression

Increases the amount of water that can be stored in a drone's tank. Possibly purchasable multiple times; each purchase increases the number of times a tank must be splashed to be completely filled.

Beeline (I just think that's too cute a pun to not become the name of an upgrade somewhere)

Double a drone's movement speed for increased water consumption.

Efficiency

(Only available after Beeline has been purchased) Reduce a drone's water consumption.. Purchasable twice; cooldown of a few days between first and second purchase

The intention of Beeline/Efficiency is that the first purchase of Efficiency partly reduces water consumption after Beeline is purchased, but doesn't take the number down to the original value. The second purchase does.

//I originally had more ideas for drones, but reading through my list again I realise a lot of them are either far beyond what drones were intended for; or just...outright stupid, honestly.
Antimoany
Plort
 
Posts: 5
Joined: Sat May 26, 2018 5:41 pm

Re: (Complex / More) Drones!

Postby EmeraldPlay » Fri Oct 19, 2018 8:16 am

We're already going to get upgraded drones (Drone Deluxe) in 1.4.0, but we don't know how different they will be from regular ones.
My avatar is from this chart, courtesy of Miomilla.

-----
Links worth checking out:
My Discord server for the wiki!
My Pure Saber Slime Mod!
The prototype features I restored!

-----
Praise the sun!
User avatar
EmeraldPlay
Treefox
 
Posts: 1844
Joined: Sun Feb 14, 2016 4:08 am
Location: somewhere in Europe

Re: (Complex / More) Drones!

Postby Randomtangle » Sat Oct 20, 2018 5:04 am

REallY?
Choose!

Bulbasuar

Charmander

Squirtle

I choose Charmander.
Avatar made by Hachi!
THANK'S HACHI!
I like Matter-Eater Lad!
I am a HUMMINGBIRD!
YIP
I
AM
HUMMINGBIRD!
YIP!
BYE!






Are you still here?
This is tiny.
User avatar
Randomtangle
Treefox
 
Posts: 1172
Joined: Tue Sep 26, 2017 12:34 pm
Location: Cactoland

Re: (Complex / More) Drones!

Postby lbyrne2 » Tue Dec 04, 2018 4:57 pm

_________ -1
f (simple)
Stephen Hawking wrote: Have you tried turning it off and on again?


███▓▒░░.I dislike the 255 character limit.░░▒▓███
User avatar
lbyrne2
Rancher
 
Posts: 39
Joined: Sat Apr 14, 2018 7:51 am


Return to Slime Design

Who is online

Users browsing this forum: No registered users and 4 guests