Making a "good" autoexplore


If it doesn't fit anywhere else, it belongs here. Also, come here if you just need to get hammered.

Shoals Surfer

Posts: 259

Joined: Saturday, 7th February 2015, 14:46

Post Friday, 28th October 2016, 21:28

Making a "good" autoexplore

Spurred on by autoexplore taking me in a straight line across an entire level directly away from safety, I'm toying with the idea of trying to write an improved autoexplore algorithm (mostly for my own amusement). One key step would be working out what on earth that means. Here are things that make me happy to explore a new tile:

- I am near stairs (easy escape).
- I am near walls (I won't be surrounded).
- I am far from the tile I am revealing (the nasty unique in it won't catch me).
- I am near the tile I am moving to (probably important to prevent over complicated rules starving me to death).

What else is good in a tile or player position when exploring?
http://crawl.akrasiac.org/scoring/players/odds

Won my last species (Mummy) on 17/01/2016.
Won my last background (Arcane Marksman) on 06/09/2016.

Lair Larrikin

Posts: 20

Joined: Monday, 2nd November 2015, 22:38

Post Friday, 28th October 2016, 21:31

Re: Making a "good" autoexplore

I'd value efficient exploration highly -- e.g., explore the nooks that look like dead-ends close to you first before moving off to explore another large segment of the level. This is admittedly more of a turncount/boredom fix than a "help me not die" one.

For this message the author Gerad has received thanks: 2
Cimanyd, Rast
User avatar

Zot Zealot

Posts: 982

Joined: Monday, 29th September 2014, 09:04

Post Friday, 28th October 2016, 23:20

Re: Making a "good" autoexplore

Minimise the number of unexplored squares revealed with each step for added safety.

For this message the author chequers has received thanks:
duvessa
User avatar

Ziggurat Zagger

Posts: 4478

Joined: Wednesday, 23rd October 2013, 07:56

Post Friday, 28th October 2016, 23:22

Re: Making a "good" autoexplore

In the meantime, setting explore_wall_bias to something else than 0 should make you explore squares close to walls first. I have it at 20 but I have no idea what would be the 'optimal' value.
DCSS: 97:...MfCj}SpNeBaEEGrFE{HaAKTrCK}DsFESpHu{FoArNaBe}
FeEE{HOIEMiAE}GrGlHuWrGnWrNaAKBaFi{MiDeMfDe}{DrAKTrAMGhEnGnWz}
{PaBeDjFi}OgAKPaCAGnCjOgCKMfAEAtCKSpCjDEEE{HOSu
Bloat: 17: RaRoPrPh{GuStGnCa}{ArEtZoNb}KiPaAnDrBXDBQOApDaMeAGBiOCNKAsFnFlUs{RoBoNeWi

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Saturday, 29th October 2016, 02:28

Re: Making a "good" autoexplore

big autoexplore improvement: get rid of plants and shallow water
User avatar

Tartarus Sorceror

Posts: 1891

Joined: Monday, 1st April 2013, 04:41

Location: Toronto, Canada

Post Saturday, 29th October 2016, 08:28

Re: Making a "good" autoexplore

nothing because no matter how autoexplore kills me i'd just go "oh well I would clearly have explored left instead of right saving me from this horrible death; thanks a lot for ruining everything forever [dev who committed most recent change]"
take it easy

Crypt Cleanser

Posts: 714

Joined: Saturday, 5th December 2015, 06:56

Post Saturday, 29th October 2016, 08:38

Re: Making a "good" autoexplore

Been wondering this for a while. An option to always auto explore the nearest unexplored tile from a known stair would be swell...

Shoals Surfer

Posts: 259

Joined: Saturday, 7th February 2015, 14:46

Post Saturday, 29th October 2016, 12:52

Re: Making a "good" autoexplore

lethediver wrote:Been wondering this for a while. An option to always auto explore the nearest unexplored tile from a known stair would be swell...

This actually looks... quite easy (unlike all the other options I've thought of). Famous last words before my first attempt to change the codebase, but I'll give it a go.
http://crawl.akrasiac.org/scoring/players/odds

Won my last species (Mummy) on 17/01/2016.
Won my last background (Arcane Marksman) on 06/09/2016.

Slime Squisher

Posts: 352

Joined: Monday, 14th December 2015, 00:43

Post Saturday, 29th October 2016, 12:57

Re: Making a "good" autoexplore

It will also quite easily bump up the turn count by some crazy amount as "the next square closest to the known stairs" will be likely in the opposite direction to the one just revealed.

Anyway, if you really feel like doing this, you should probably do two or more different settings, one of which would focus on safety and the other on turn-wise efficiency, and let player switch between them at any given time. I think it should be possible with the current available clua functions.

Shoals Surfer

Posts: 259

Joined: Saturday, 7th February 2015, 14:46

Post Saturday, 29th October 2016, 13:01

Re: Making a "good" autoexplore

Leszczynek wrote:It will also quite easily bump up the turn count by some crazy amount as "the next square closest to the known stairs" will be likely in the opposite direction to the one just revealed.

Anyway, if you really feel like doing this, you should probably do two or more different settings, one of which would focus on safety and the other on turn-wise efficiency, and let player switch between them at any given time. I think it should be possible with the current available clua functions.

Sure. I'm not expecting this tweak to actually give a competitive explore algorithm! But it's a nice place to start.
http://crawl.akrasiac.org/scoring/players/odds

Won my last species (Mummy) on 17/01/2016.
Won my last background (Arcane Marksman) on 06/09/2016.

Shoals Surfer

Posts: 259

Joined: Saturday, 7th February 2015, 14:46

Post Sunday, 30th October 2016, 14:07

Re: Making a "good" autoexplore

Odds wrote:
lethediver wrote:Been wondering this for a while. An option to always auto explore the nearest unexplored tile from a known stair would be swell...

This actually looks... quite easy (unlike all the other options I've thought of). Famous last words before my first attempt to change the codebase, but I'll give it a go.

I ended up writing (in a hacky kind of way) a slightly more subtle version of this; an option to bias exploration to like squares near stairs. The score of a square is [distance from you] + x*[distance from the nearest upstair to you].

For x=infinity, this takes forever; exploration will typically go down two or more branches one square at a time, switching between them.

For x=2, this explores D:1 and D:2 in reasonable time (800-1000 turns), and felt like it was having the desired effect - the explored area felt safer.
http://crawl.akrasiac.org/scoring/players/odds

Won my last species (Mummy) on 17/01/2016.
Won my last background (Arcane Marksman) on 06/09/2016.

Crypt Cleanser

Posts: 714

Joined: Saturday, 5th December 2015, 06:56

Post Monday, 31st October 2016, 00:17

Re: Making a "good" autoexplore

Give me the lua implementation to add to my rc file pl0x

Shoals Surfer

Posts: 259

Joined: Saturday, 7th February 2015, 14:46

Post Monday, 31st October 2016, 07:55

Re: Making a "good" autoexplore

Gerad wrote:I'd value efficient exploration highly -- e.g., explore the nooks that look like dead-ends close to you first before moving off to explore another large segment of the level. This is admittedly more of a turncount/boredom fix than a "help me not die" one.

Are you aware of the explore_wall_bias option? No idea if it works, but setting explore_wall_bias to something greater than 0 in your rc file is supposed to explore nooks before going off elsewhere.

lethediver wrote:Give me the lua implementation to add to my rc file pl0x

Ha. This would be... tough. However, I am asking in more appropriate channels than CYC whether an option like this might get merged.
http://crawl.akrasiac.org/scoring/players/odds

Won my last species (Mummy) on 17/01/2016.
Won my last background (Arcane Marksman) on 06/09/2016.

Slime Squisher

Posts: 368

Joined: Thursday, 11th April 2013, 21:07

Post Monday, 31st October 2016, 08:45

Re: Making a "good" autoexplore

Gerad wrote:I'd value efficient exploration highly -- e.g., explore the nooks that look like dead-ends close to you first before moving off to explore another large segment of the level. This is admittedly more of a turncount/boredom fix than a "help me not die" one.

Turncount fixes translate directly into "help me not die" fixes in Crawl's current ruleset:

Monster respawn rate, monster OOD respawn chance (at depths less than 13), and piety decay (for most gods), all work directly off of turncount. God gifting, as a function of piety, also tends to happen relatively more often with faster turncount progression due to higher sustained piety levels (this is *despite* gift timeouts decrementing at a fixed turncount rate). [There are other indirect reasons why lower turncount helps character survival, but I'm mentioning some of the most commonly applicable here for brevity.]

A more turncount-efficient autoexplore function would mean that game balance for players who autoexplore (most players) would come closer to that of players who manually explore (patient veterans playing for streaks and turncount speedrunners), and would be a Good Thing for DCSS in general.

[An autoexplore function that manages to do the above, while also avoiding suicidal positioning decisions wrt LOS breaks and staircases, would be a vast improvement indeed over the current implementation.]

For this message the author Implojin has received thanks: 2
Cimanyd, duvessa

Tomb Titivator

Posts: 900

Joined: Sunday, 30th December 2012, 05:26

Post Monday, 31st October 2016, 14:32

Re: Making a "good" autoexplore

Autoexplore is the typical kind of crutch I'd expect lazy handout-generation millennials to rely on

For this message the author ZipZipskins has received thanks:
Arrhythmia

Shoals Surfer

Posts: 259

Joined: Saturday, 7th February 2015, 14:46

Post Monday, 31st October 2016, 20:53

Re: Making a "good" autoexplore

Implojin wrote:
Gerad wrote:I'd value efficient exploration highly -- e.g., explore the nooks that look like dead-ends close to you first before moving off to explore another large segment of the level. This is admittedly more of a turncount/boredom fix than a "help me not die" one.

Turncount fixes translate directly into "help me not die" fixes in Crawl's current ruleset:

Monster respawn rate, monster OOD respawn chance (at depths less than 13), and piety decay (for most gods), all work directly off of turncount. God gifting, as a function of piety, also tends to happen relatively more often with faster turncount progression due to higher sustained piety levels (this is *despite* gift timeouts decrementing at a fixed turncount rate). [There are other indirect reasons why lower turncount helps character survival, but I'm mentioning some of the most commonly applicable here for brevity.]

A more turncount-efficient autoexplore function would mean that game balance for players who autoexplore (most players) would come closer to that of players who manually explore (patient veterans playing for streaks and turncount speedrunners), and would be a Good Thing for DCSS in general.

[An autoexplore function that manages to do the above, while also avoiding suicidal positioning decisions wrt LOS breaks and staircases, would be a vast improvement indeed over the current implementation.]

Interesting. While this is true, I'm not sure how big an effect it is. When I explore manually for safety (which is rare; usually on a few levels only, when streaking) I'm not doing it for turncount - I'm doing it so that the level is always as safe as possible.

So my instinct is that safe exploring beats turncount. So a change which increases turns by a little, and increases exploration safety, is a good thing.
http://crawl.akrasiac.org/scoring/players/odds

Won my last species (Mummy) on 17/01/2016.
Won my last background (Arcane Marksman) on 06/09/2016.

Shoals Surfer

Posts: 259

Joined: Saturday, 7th February 2015, 14:46

Post Wednesday, 2nd November 2016, 23:20

Re: Making a "good" autoexplore

chequers wrote:Minimise the number of unexplored squares revealed with each step for added safety.

I tried this one out too. It's kind of weird. In large spaces, you make lots of little moves around the known area to reveal one square at a time. Might work better with a less harsh penalty than I'm using atm.
http://crawl.akrasiac.org/scoring/players/odds

Won my last species (Mummy) on 17/01/2016.
Won my last background (Arcane Marksman) on 06/09/2016.

Return to Crazy Yiuf's Corner

Who is online

Users browsing this forum: No registered users and 119 guests

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.