The Abyss
Posted: Sunday, 29th May 2011, 10:29
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:
---
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