The Abyss


Although the central place for design discussion is ##crawl-dev on freenode, some may find it helpful to discuss requests and suggestions here first.

User avatar

Dungeon Master

Posts: 162

Joined: Sunday, 29th May 2011, 10:18

Post Sunday, 29th May 2011, 10:29

The Abyss

I'm cross-posting this from C-R-D, seeking additional feedback. The plan is to make the Abyss a more interesting place to visit. What would you like to see out of the Abyss?

---

The biggest change I've made is to level generation. Current Abyss
level generation works by creating a feature vector and then uniformly
sampling from the vector to populate the dungeon. I've retained the
vector, but replaced replaced the sampling step with Worley noise -- a
coherent noise* function based on a fast Voronoi decomposition of 3D
space. Terrain type is determined by the distance from the nearest
point in the decomposition, as well as a unique ID assigned to each
cell. A wobble is introduced to provide variety within a cell. (*A
major advantage of using coherent noise is that we can seamlessly
morph the abyss over time. If the player decides to stand still and
"wait things out" the abyss could undulate around our hapless hero in
a sensibly abyssal way!)

The result is that we find small pools of water, and lava. Metal walls
appear next to other metal walls, and so forth. Open areas are seeded
with wall-tile columns at a low rate The terrain is certainly less
"random" than the uniformly distributed abyss, but retains a
disordered feel. It is my belief that the result is a better play
experience.

My second change is to banishment behavior. Currently, the Abyss is
the Abyss regardless of where the player was upon banishment. With
this patch, the area that the player is banished to resembles a
corrupt version of the player's location prior to banishment. The
probability that a tile is copied into the abyss is inversely
proportional to its distance from the player. The tiles are cleaned up
(traps removed, stairs converted to arches, etc.) and pushed into a
vector, so they're available for reuse if we want to build exit
vaults! I think this still needs some purple smoke effects before it
feels right.

Before Banishment: http://i.imgur.com/mv0Jb.png
After Banishment: http://i.imgur.com/mojJb.png
You might recognize part of the Orb Chamber: http://i.imgur.com/ARgwb.png

I've posted a patch to Mantis: https://crawl.develz.org/mantis/view.php?id=3939
My branch is available on github: http://github.com/bhickey/crawl
Abyssal Knight spawning is a bit dodgy at the moment.

There are still a number of features I'd love -- screaming dungeon
monsters popping into sight in translocational clouds, the abyss
getting harder as a function of:

  • Absolute depth at time of banishment
  • Time spent in the abyss
  • Translocation use and glow
  • How much Lugonu (dis)likes you

For this message the author brendan has received thanks: 8
ClawlessVictory, dolphin, hxy, joellercoaster, mageykun, MyOtheHedgeFox, ryak, Stormfox
User avatar

Slime Squisher

Posts: 332

Joined: Friday, 4th February 2011, 18:04

Location: The South, US

Post Sunday, 29th May 2011, 12:41

Re: The Abyss

From just reading it, that sounds absurdly fantastic (however, I'm no mathematician, nor am I a programmer). But everything that I read and understood, (Corrupt Branch and move out into Abyss, incomplete randomness - structures and pools and whatnot, Abyss getting harder for a variety of reasons, Banished monsters occasionally appearing) I loved. I cannot wait to try this out in Trunk.
Human kind cannot bear very much reality.
TSE
User avatar

Swamp Slogger

Posts: 168

Joined: Sunday, 27th February 2011, 16:54

Post Sunday, 29th May 2011, 13:27

Re: The Abyss

Fantastic ideas. This proposed design is much more interesting and creative than it's current form. Really looking forward to seeing this implemented.
User avatar

Swamp Slogger

Posts: 153

Joined: Sunday, 23rd January 2011, 20:04

Post Sunday, 29th May 2011, 18:10

Re: The Abyss

I didn't understand 80% of the proposal but it sounds like it sounds like it took a whole lot of work.
Overall i really like it.
However i'm a little bit against having the abyss change in difficulty depending on how far down you've gotten, but i'd be ok with that.

Another thing i've been thinking about is having the Swamp, snake, or shoal branch that doesn't show up in lair pop up in the Abyss or Pan
Only its been corrupted and is much more difficult.
(Imagines fighting off a swarm of Demonic Hydras, and you need cold branded weapons to successfully decapitate them)
Sorry for going off topic XD

Vestibule Violator

Posts: 1567

Joined: Friday, 21st January 2011, 22:56

Post Sunday, 29th May 2011, 20:23

Re: The Abyss

Sounds really cool, but I cant try it without compiling crawl, which means I wont. Damn my laziness. :(

I'm hoping the devs will look at it, and if it is as cool as it sounds we might see it in trunk soon. The totally random terrain is quite defining for the current abyss though, so keeping this at least for some areas might be nice. Strongly varying coherence length between areas could produce some fairly ordered areas, and some that are almost like the current abyss, with fluid change between those extremes in between. The arrival point after banishment being based on current surroundings sounds awesome too.

Scaling abyss difficulty comes up every once in a while. IIRC this is generally desired, because currently looking for the abyssal rune is a boring grind, and abyss being easy and infinite equals scummable.
User avatar

Dungeon Master

Posts: 162

Joined: Sunday, 29th May 2011, 10:18

Post Sunday, 29th May 2011, 22:08

Re: The Abyss

Galefury wrote:Sounds really cool, but I cant try it without compiling crawl, which means I wont. Damn my laziness.


I run a server with my latest build: ssh://crawl:crawl@ch4n.org -- I'm not running GDL so it will only accept one player at a time. The level builder is presently bugged for Abyssal Knights, so either wait or enter wizmode straight away.

Galefury wrote:I'm hoping the devs will look at it, and if it is as cool as it sounds we might see it in trunk soon. The totally random terrain is quite defining for the current abyss though, so keeping this at least for some areas might be nice. Strongly varying coherence length between areas could produce some fairly ordered areas, and some that are almost like the current abyss, with fluid change between those extremes in between. The arrival point after banishment being based on current surroundings sounds awesome too.


I'll restore the fully random terrain in patches. You're right about it contributing to the feel of the Abyss. With some very modest increases in level builder complexity I think I can achieve the effect you're describing. I'll also look into pulling the entire level (the parts that have been seen) into the Abyss. This might be nice for self-banishment, or just yank it in with some low probability.

Galefury wrote:Scaling abyss difficulty comes up every once in a while. IIRC this is generally desired, because currently looking for the abyssal rune is a boring grind, and abyss being easy and infinite equals scummable.


I'm entirely opposed to the Abyssal rune as it is. I strongly believe that it should never appear on the floor and should instead always appear in a rune vault. For example, Kilobyte has snagged the Abyssal rune at levels 1, 2, and 3. One player managed to grab the rune at XL 11 and went on to win. This is fundamentally broken.
User avatar

Snake Sneak

Posts: 105

Joined: Sunday, 19th December 2010, 19:28

Location: UK

Post Sunday, 29th May 2011, 22:44

Re: The Abyss

I think this is a great idea, especially the Abyss representing the level you were banished on. However, this would require tweaking of the "flavour", as the Abyss is currently meant to be "formless".
User avatar

Dungeon Master

Posts: 162

Joined: Sunday, 29th May 2011, 10:18

Post Sunday, 29th May 2011, 23:41

Re: The Abyss

Galefury wrote:The totally random terrain is quite defining for the current abyss though, so keeping this at least for some areas might be nice.


I've implemented this.
For a "sensible default", between 1/6th and 1/8th of the Abyss is generated this way. We can tune it as appropriate. :mrgreen:
User avatar

Dungeon Master

Posts: 4031

Joined: Thursday, 16th December 2010, 20:37

Location: France

Post Monday, 30th May 2011, 08:27

Re: The Abyss

brendan wrote:I'm entirely opposed to the Abyssal rune as it is. I strongly believe that it should never appear on the floor and should instead always appear in a rune vault.

We already have 11 abyss rune vaults with monsters. I'm not sure about their difficulty, but maybe this is enough to stop generating the rune without defence. More rune vaults (and exit vaults) are always appreciated.
<+Grunt> You dereference an invalid pointer! Ouch! That really hurt! The game dies...
User avatar

Zot Zealot

Posts: 1060

Joined: Tuesday, 21st December 2010, 17:22

Location: United Kingdom

Post Monday, 30th May 2011, 11:20

Re: The Abyss

I've just spent maybe twenty minutes wandering around brendan's new Abyss in Tiles mode, and I think it's a great piece of work.

It can feel a bit like a cave system a lot of the time. Not all the time mind you - there are some nice chaotic open spaces, and some twisty dead ends - but it still feels like it could be a bit more featureful. Also wondering if you could somehow use the Abyssal vaults that appear as materials seeds too? I know part of the point of Vaults is recognising them from the outside, but it would stop them feeling (as they sometimes do now) that they've just been plonked down, rather than being part of it.

The pools on the floor are cool, and the way the wall materials cohere is interesting. The banishment-point resemblance is actually quite eerie... "Oh crap, the walls just turned to wax. I'm in trouble, aren't I?"

It is my belief that the result is a better play experience.


Just one guy's opinion, but I definitely concur.
I am sure I played flawflessly. This was an utmost unfair death. -- gorbeh
User avatar

Dungeon Master

Posts: 4031

Joined: Thursday, 16th December 2010, 20:37

Location: France

Post Monday, 30th May 2011, 15:50

Re: The Abyss

I've tested it and it looks really great. Looking forward to see the morphing in action :)
<+Grunt> You dereference an invalid pointer! Ouch! That really hurt! The game dies...
User avatar

Slime Squisher

Posts: 332

Joined: Friday, 4th February 2011, 18:04

Location: The South, US

Post Thursday, 9th June 2011, 01:20

Re: The Abyss

Is this gonna go in trunk soon?
Human kind cannot bear very much reality.
TSE

Snake Sneak

Posts: 110

Joined: Monday, 20th December 2010, 21:11

Post Saturday, 18th June 2011, 13:37

Re: The Abyss

If it isn't, it really should be.

Bim

Crypt Cleanser

Posts: 700

Joined: Wednesday, 5th January 2011, 15:51

Post Saturday, 18th June 2011, 18:43

Re: The Abyss

Reallllllllllllly should be implemented! Great work with this, I wasn't too keen on the 'random' look of it before, It just seemed a bit messy most of the time (I know its supposed to be unformed, but still...) and having Lug making it easier/harder would be a nice addition, as at the moment he doesn't really do much in the Abyss (if that makes sense).

Great work!
2012 Winner of fewest proposed ideas implemented by devs.

Dungeon Master

Posts: 1531

Joined: Saturday, 5th March 2011, 06:29

Post Monday, 20th June 2011, 17:21

Re: The Abyss

This sounds amazing, I love seeing creative mathematics in action :)

To me the idea of "unformed" implies something at unknown (and fluxing) state somewhere between fully-formed and non-existent. The changes this thread describes capture that perfectly.
User avatar

Dungeon Master

Posts: 162

Joined: Sunday, 29th May 2011, 10:18

Post Wednesday, 6th July 2011, 07:19

Re: The Abyss

I updated my branch last night. I think I've finished off the important bits, last thing I need to do is serialize the abyss state across saves. Here's to hoping it can make it into trunk ahead of the tournament.

Features:
  • New Abyss terrain based on 2-octave Worley Noise. Look ma', no RNG invocations.
  • The abyss morphs rather than popping! Monsters are intelligently shoved out of the way. Occasionally a monster will be dragged back into the abyss if it can't be placed.
  • When you're banished, the abyss resembles your surroundings.
  • Vaults are stable islands within the abyss. They eventually decay into their surroundings, taking their contents with them.
  • The Abyss is mappable a la the Labyrinth. Maprot has been changed to be less player hostile. Lugonu worshippers rot less in the Abyss.
  • Abyssal Knights are no longer encased in stone tombs!

For this message the author brendan has received thanks: 4
dolphin, joellercoaster, MyOtheHedgeFox, pratamawirya
User avatar

Zot Zealot

Posts: 1060

Joined: Tuesday, 21st December 2010, 17:22

Location: United Kingdom

Post Wednesday, 6th July 2011, 09:46

Re: The Abyss

This is really awesome. I'm having a problem with the game hanging when I kill things (often but not always, seems to need to be something worth more than a few XP), but it doesn't just happen in the Abyss.

The terrain morphing seems quite quick? A couple of times I was able to just wait a few turns when my way was blocked, which has been one of the really tense Abyss situations for me - getting trapped by water or lava when being chased, and having to weight up burning that potion of levitation or turning to fight.

I think if this makes it into 0.9, it's the most exciting addition so far. And I love Octopodes :)
I am sure I played flawflessly. This was an utmost unfair death. -- gorbeh
User avatar

Blades Runner

Posts: 575

Joined: Tuesday, 18th January 2011, 15:11

Post Wednesday, 6th July 2011, 10:00

Re: The Abyss

if you're on trunk and like 4 hours behind, update, because there have been a flurry of commits pertaining to the new skill system and a few of them were bugfixes.
Wins: DDBe (3 runes, morgue file)
User avatar

Zot Zealot

Posts: 1060

Joined: Tuesday, 21st December 2010, 17:22

Location: United Kingdom

Post Wednesday, 6th July 2011, 10:10

Re: The Abyss

I think that's what is going on - maybe brendan's branch merged from trunk when the latter was in a buggy state? I have a pure-trunk build of extreme recency that seems happy.
I am sure I played flawflessly. This was an utmost unfair death. -- gorbeh
User avatar

Dungeon Master

Posts: 162

Joined: Sunday, 29th May 2011, 10:18

Post Thursday, 7th July 2011, 06:28

Re: The Abyss

I believe everything was made right in the universe with regards to the hang. I've decreased the rate at which the minor noise octave transitions, which should eliminate most of the annoying thrashing. It also looks like kilobyte has merged my changes into trunk!

Ziggurat Zagger

Posts: 6393

Joined: Friday, 17th December 2010, 18:17

Post Thursday, 7th July 2011, 06:45

Re: The Abyss

I am actually looking forward to my next involuntary trip to the Abyss.

For this message the author Grimm has received thanks:
MyOtheHedgeFox
User avatar

Zot Zealot

Posts: 1060

Joined: Tuesday, 21st December 2010, 17:22

Location: United Kingdom

Post Thursday, 7th July 2011, 07:35

Re: The Abyss

brendan wrote:It also looks like kilobyte has merged my changes into trunk!


Yeehaw! :mrgreen:
I am sure I played flawflessly. This was an utmost unfair death. -- gorbeh
User avatar

Dungeon Master

Posts: 4031

Joined: Thursday, 16th December 2010, 20:37

Location: France

Post Thursday, 7th July 2011, 08:18

Re: The Abyss

brendan wrote:It also looks like kilobyte has merged my changes into trunk!

No he didn't. I'm not sure what git magic he applied to the branch, but it's not merged yet.
<+Grunt> You dereference an invalid pointer! Ouch! That really hurt! The game dies...

Vestibule Violator

Posts: 1567

Joined: Friday, 21st January 2011, 22:56

Post Wednesday, 31st August 2011, 21:42

Re: The Abyss

Reviving this thread because new abyss is in trunk, and it's awesome. The map feels a lot more organic, and the morphing is great. Patches of walls, water or lava expand, contract and move, and passages open or close in front of you. Sweet stuff. Every bit as cool as I imagined.

Dungeon Master

Posts: 1531

Joined: Saturday, 5th March 2011, 06:29

Post Wednesday, 31st August 2011, 21:59

Re: The Abyss

Just mentioned this on ##crawl-dev but thought I'd post it here in case brendan sees -

The one thing that doesn't change in the Abyss is the tileset - it's selected at random upon banishment and never changes no matter how long you're there.

Wouldn't it be awesome if the tileset actually morphed at the same time as everything else? I think the tileset is the one thing that's still kind of uniform about the Abyss right now.

Anyway, yeah the morphing looks great. Have you tried ramping up the speed in Wizmode? It'll be even better once variable speed is in there.

Return to Game Design Discussion

Who is online

Users browsing this forum: Google [Bot] and 3 guests

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