Custom vault causes ctd.


Questions, Explanations, Howtos

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Friday, 8th March 2013, 16:45

Custom vault causes ctd.

I don't know why, but my custom portal vault seems to cause a ctd.
I know it's the vault, because when I remove the file, the game works fine.
Anyone know what's wrong?
  Code:

{{
function koboldcave_portal(e)
  local timeout_turns_long = crawl.random_range(2700, 3300)
  local timeout_turns_short = timeout_turns_long/10

  local messager =
    timed_msg {
      visible = true,
      -- $F{xxx} will be substituted with the 'entity' property of the timed
      -- marker, or with the desc property (if entity is not set).
      messages = time_messages(timeout_turns_short,
          "The $F{the} trembles.",
          "Cracks appear in the walls of the $F{the}.",
          "The cracks in the $F{the} grow larger.",
          "Bits of rock fall from cracks in the $F{the}, almost completely blocking access.")
    }

  e.lua_marker('O',
      timed_marker {
        disappear = "The hole has fallen in on itself.",
        desc = "colapsed hole",
        entity = 'hole',
        dst = "Kobold cave",
        overview = "hole in the rock",
        turns = timeout_turns_long,
        turns_short = timeout_turns_short,
        floor = "expired_portal",
        feat_tile = "dngn_portal_koboldcave_gone",
        msg = messager })
  e.kfeat("O = enter_portal_vault")
  e.colour("O = brown")
  e.tile("O = dngn_portal_koboldcave")
end

-- Use the following line in destination maps after all SUBSTs
-- : koboldcave_setup_features(_G)
-- Note that the function also defines < to be the exit portal.
function koboldcave_setup_features(e)
        e.kfeat("< = exit_portal_vault")
        e.colour("< = brown")
end
}}

default-depth: D:3-8

NAME:   enter_koboldcave
TAGS:   uniq_koboldcave no_monster_gen chance_koboldcave
CHANCE: 40%
: koboldcave_portal(_G)
MAP
.......
..O....
.......
ENDMAP

#### The portal vaults ####################################

# Reset default depth to prevent random generation of portal vaults.
# Sort destination maps by WEIGHT.
default-depth: koboldcave

NAME:    koboldcave_1
WEIGHT:  40
ORIENT:  encompass
TAGS:    no_item_gen no_monster_gen no_rotate
ITEM:    potion of curing / potion of heal wounds / any scroll w:7 / any armour w:2 / any weapon w:2
MONS:    kobold
: koboldcave_setup_features(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxx<A..xxxxxxxxxx
xxxxxx...x..xx....xxxx
xxx....d..x....xx...xx
xx..1....x...1....x..x
xxx..x..x.......xx...x
xxxx.xx..x..xx.xxx.1.x
x...xxx..x..xx.xxx..xx
x.x.xx..xxx..x.xxxx.xx
x.x..xx....x.....xx..x
x.x...x......d....x..x
xx.1.x...............x
xx.......x......1...xx
x.xx..dx......x....xxx
x.x.x.....1.......x.xx
xxdxxx....dd.....x.x.x
xxx.xxx........xxx.x1x
xxxx..x.....1.....xx.x
xxxxxx.xxxxxxxxxxx..xx
xxxxxx.xxxxxxxxxx.xxxx
xxxx..xxxxxxdddxx.xxxx
xxx.xxxxxxx.1ddxxx1xxx
xxxx.xx.xx.x2.1x.x.xxx
xxxxx..x..xxxxx.x.xxxx
xxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:    koboldcave_2
WEIGHT:  40
ORIENT:  encompass
TAGS:    no_item_gen no_monster_gen no_rotate
ITEM:    potion of curing / potion of heal wounds / any scroll w:7 / any armour w:2 / any weapon w:2
MONS:    kobold
MONS: big kobold
: koboldcave_setup_features(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxx
xxxxx..x<A..xxxxx...xx
xxx.1xx.xxxx..x..xxx.x
xxxxx.xxxxx.xx.xxdx.xx
xxxx.xxxxxxx.xxx.xx.xx
xx..x.1xxxxx.xxx1x.xxx
x.xxxxx.xxx.xxxxx.xxxx
xx.xxx.x.1.x.xxx.xdxxx
xx.xx.xx..xxx.x.xxx.xx
xx.x.xx.x..xxx1xxx.xxx
x.x.xx.xxxxxxxxxx.xxxx
xdxxx.x.xxxxxxx.xx.xxx
xx.xx.xx.ddd...x.1x.xx
xxx..xxxxd2dx.xxxx.xxx
xxxxxxxxxxxxxxxxxxxxxx
ENDMAP
NAME:    koboldcave_3
WEIGHT:  20
ORIENT:  encompass
TAGS:    no_item_gen no_monster_gen no_rotate
ITEM:    potion of curing / potion of heal wounds / any scroll w:7 / any armour w:2 / any weapon w:2
MONS:    kobold
MONS: kobold name:Kiblib_II
MONS: big kobold name:Kiblib
: koboldcave_setup_features(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxdxxxxxxxxxxxxxxxxxxxd1xxxxx
xx.xxxxxxxxxx.xxxxxxxdddxxxxx
xx1x.xxx.xx..x..x.xxxx.xxxxxx
xxx.x.x.x..xx.xx.x.xxx.xxxxxx
xxxx.xx.xxx.xxxxxxd.x.xxxxxxx
xxx.x..xx.x1xxxxxxx..x.xxxxxx
xx.x..x..x.xxxxxxxxxxx.xxxxxx
xxx.xx.xxxx.xxxxxxxx.x.xxxxxx
xxxxxxx.x1.xAxxxxx..x.x<xxxxx
xxxxxxxx.xx.xxxxx.xxxx.x.xxxx
xxxxxx.x.x.xxxxxxx1xxxxxx.xxx
xxxxx.x.x.x.xxx..x.xxxxx.xxxx
xxxx.xxx.1xx..x.x.xxxxx.xxxxx
xxddxxxxxxxxxx.xxx..x..xxxxxx
xxd3....2xxxxxxxxxxx.xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

Dungeon Master

Posts: 1531

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

Post Friday, 8th March 2013, 16:52

Re: Custom vault causes ctd.

I can't see any obvious fault, but if you start Crawl from the command line then you might see an error message when it crashes.

For this message the author mumra has received thanks:
khalil

Dungeon Master

Posts: 1531

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

Post Friday, 8th March 2013, 17:05

Re: Custom vault causes ctd.

Actually I see a small problem - your maps are called koboldcave_foo, so you should add dstname = "koboldcave" to your timed_marker. It could also be a problem having space characters in the dst property, usually these strings are short (e.g. "IceCv") so try changing it to e.g. "KbCave". See icecave.des for example if you're not sure.

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Friday, 8th March 2013, 17:05

Re: Custom vault causes ctd.

mumra wrote:I can't see any obvious fault, but if you start Crawl from the command line then you might see an error message when it crashes.

It says there's a problem with the spec for the portal name.

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Friday, 8th March 2013, 17:12

Re: Custom vault causes ctd.

mumra wrote:Actually I see a small problem - your maps are called koboldcave_foo, so you should add dstname = "koboldcave" to your timed_marker. It could also be a problem having space characters in the dst property, usually these strings are short (e.g. "IceCv") so try changing it to e.g. "KbCave". See icecave.des for example if you're not sure.

Tried that, but it doesn't seem to do anything.

Dungeon Master

Posts: 1531

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

Post Friday, 8th March 2013, 17:30

Re: Custom vault causes ctd.

- Post the exact message you received (this would allow me to search for it in the source and see what triggers it)
- Also post your updated code

For this message the author mumra has received thanks:
khalil

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Friday, 8th March 2013, 20:09

Re: Custom vault causes ctd.

mumra wrote:- Post the exact message you received (this would allow me to search for it in the source and see what triggers it)
- Also post your updated code

Here.
error wrote:koboldcave.des:57: bad spec : 'dngn_portal_koboldcave' in 'dngn_portal_koboldcave

and here's the revised code.
  Code:
##############################################################################
#
# Kobold cave: My first vault.
# By Khalil
#
# The point of this is just to add more portal vaults to the early game.
#
#
# Flavour: Small, line of sight blocking tunnels mixed with large and open arenas.
#
##############################################################################

{{
function koboldcave_portal(e)
  local timeout_turns_long = crawl.random_range(2700, 3300)
  local timeout_turns_short = timeout_turns_long/10

  local messager =
    timed_msg {
      visible = true,
      -- $F{xxx} will be substituted with the 'entity' property of the timed
      -- marker, or with the desc property (if entity is not set).
      messages = time_messages(timeout_turns_short,
                               "$F{The} is starting to fall in on itself.",
                               "$F{The} is falling in on itself.",
                               "$F{The} is quickly falling in on itself.",
                               "$F{The} is almost done falling in on itself.")
    }


  e.lua_marker('O',
      timed_marker {
        disappear = "The hole falls in on itself.",
        desc = "hole in the ground",
        entity = 'hole',
        dst = "KobCv",
        dstname = "koboldcave",
        overview = "hole in the ground",
        turns = timeout_turns_long,
        turns_short = timeout_turns_short,
        floor = "expired_portal",
        feat_tile = "dngn_portal_koboldcave_gone",
        msg = messager })
  e.kfeat("O = enter_portal_vault")
  e.colour("O = brown")
  e.tile("O = dngn_portal_koboldcave")
  e.colour("X = brown")
end

}}
######
default-depth: D:3-8

NAME:   portal_koboldcave
TAGS:   uniq_koboldcave no_monster_gen chance_koboldcave
CHANCE: 40%
: koboldcave_portal(_G)
MAP
.......
..O....
.......
ENDMAP

#### The portal vaults ####################################

# Reset default depth to prevent random generation of portal vaults.
# Sort destination maps by WEIGHT.
default-depth: KobCv

NAME:    koboldcave_1
WEIGHT:  40
ORIENT:  encompass
TAGS:    no_item_gen no_monster_gen no_rotate
ITEM:    potion of curing / potion of heal wounds / any scroll w:7 / any armour w:2 / any weapon w:2
MONS:    kobold
: koboldcave_setup_features(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxx<A..xxxxxxxxxx
xxxxxx...x..xx....xxxx
xxx....d..x....xx...xx
xx..1....x...1....x..x
xxx..x..x.......xx...x
xxxx.xx..x..xx.xxx.1.x
x...xxx..x..xx.xxx..xx
x.x.xx..xxx..x.xxxx.xx
x.x..xx....x.....xx..x
x.x...x......d....x..x
xx.1.x...............x
xx.......x......1...xx
x.xx..dx......x....xxx
x.x.x.....1.......x.xx
xxdxxx....dd.....x.x.x
xxx.xxx........xxx.x1x
xxxx..x.....1.....xx.x
xxxxxx.xxxxxxxxxxx..xx
xxxxxx.xxxxxxxxxx.xxxx
xxxx..xxxxxxdddxx.xxxx
xxx.xxxxxxx.1ddxxx1xxx
xxxx.xx.xx.x2.1x.x.xxx
xxxxx..x..xxxxx.x.xxxx
xxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:    koboldcave_2
WEIGHT:  40
ORIENT:  encompass
TAGS:    no_item_gen no_monster_gen no_rotate
ITEM:    potion of curing / potion of heal wounds / any scroll w:7 / any armour w:2 / any weapon w:2
MONS:    kobold
MONS: big kobold
: koboldcave_setup_features(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxx
xxxxx..x<A..xxxxx...xx
xxx.1xx.xxxx..x..xxx.x
xxxxx.xxxxx.xx.xxdx.xx
xxxx.xxxxxxx.xxx.xx.xx
xx..x.1xxxxx.xxx1x.xxx
x.xxxxx.xxx.xxxxx.xxxx
xx.xxx...1.x.xxx.xdxxx
xx.xx..1..xxx.x.xxx.xx
xx.x.x..1..xxx1xxx.xxx
x.x.xx.xxxxxxxxxx.xxxx
xdxxx.x.xxxxxxx.xx.xxx
xx.xx.xx.ddd...x.1x.xx
xxx..xxxxd2dx.xxxx.xxx
xxxxxxxxxxxxxxxxxxxxxx
ENDMAP
NAME:    koboldcave_3
WEIGHT:  20
ORIENT:  encompass
TAGS:    no_item_gen no_monster_gen no_rotate
ITEM:    potion of curing / potion of heal wounds / any scroll w:7 / any armour w:2 / any weapon w:2
MONS:  big kobold name:Jibjub name_replace
MONS: kobold name:Nitkik name_replace
MONS: big kobold name:Kiblib name_replace
: koboldcave_setup_features(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxdxxxxxxxxxxxxxxxxxxxddxxxxx
xx.xxxxxxxxxx.xxxxxxxdddxxxxx
xx.x.xxx.xx..x..x.xxxx.xxxxxx
xxx.x.x.x..xx.xx.x.xxx.xxxxxx
xxxx.xx.xxx.xxxxxxd.x.xxxxxxx
xxx.x..xx.x.xxxxxxx..x.xxxxxx
xx.x..x..x.xxx.xxxxxxx.xxxxxx
xxx.xx.xxxx.x.x.xxxx.x.xxxxxx
xxxxxxx.x..xAxxx.x..x.x<xxxxx
xxxxxxxx.xx.xxxxx.xxxx.x.xxxx
xxxxxx.x.x.xxxxxxx.xxxxxx.xxx
xxxxx.x.x.x.xxx..x.xxxxx.xxxx
xxxx.xxx..xx..x.x.xxxxx.xxxxx
xxddxxxxxxxxxx.xxx..x..xxxxxx
xxd3.1..2xxxxxxxxxxx.xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

Ziggurat Zagger

Posts: 3163

Joined: Friday, 6th January 2012, 18:45

Post Friday, 8th March 2013, 20:48

Re: Custom vault causes ctd.

I'm assuming you didn't create a new tile for your portal, so the "e.tile("O = dngn_portal_koboldcave")" line is probably your problem. Maybe try using one for another portal as a placeholder?

For this message the author BlackSheep has received thanks:
khalil

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Friday, 8th March 2013, 20:52

Re: Custom vault causes ctd.

BlackSheep wrote:I'm assuming you didn't create a new tile for your portal, so the "e.tile("O = dngn_portal_koboldcave")" line is probably your problem. Maybe try using one for another portal as a placeholder?

I'll try that.

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Friday, 8th March 2013, 21:03

Re: Custom vault causes ctd.

khalil wrote:
BlackSheep wrote:I'm assuming you didn't create a new tile for your portal, so the "e.tile("O = dngn_portal_koboldcave")" line is probably your problem. Maybe try using one for another portal as a placeholder?

I'll try that.

Horay! Now it says KobCv isn't a valid branch! A new bug! We're making progress!
Should I add it to branch data, and if so, how should I do that?

Ziggurat Zagger

Posts: 3163

Joined: Friday, 6th January 2012, 18:45

Post Friday, 8th March 2013, 21:23

Re: Custom vault causes ctd.

That'd be branch-data.h in the code. Skip all the way to the bottom to see the entries for the existing portal vaults.

For this message the author BlackSheep has received thanks:
khalil

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Friday, 8th March 2013, 21:36

Re: Custom vault causes ctd.

BlackSheep wrote:That'd be branch-data.h in the code. Skip all the way to the bottom to see the entries for the existing portal vaults.

Kay, I put this in,
  Code:
    { BRANCH_KOBOLDCAVE, NUM_BRANCHES, -1, -1, 1, 3,
      BFLAG_NO_XLEV_TRAVEL | BFLAG_NO_ITEMS, 0,
      DNGN_ENTER_PORTAL_VAULT, DNGN_EXIT_PORTAL_VAULT,
      "Kobold Cave", "a cave filled with kobolds", "KobCv",
      NULL,
      false, LIGHTGREY, DARKGREY,
      mons_null_rare, mons_null_level,
      '9', false, 0 },

but the compiler says
error wrote:error: BRANCH_KOBOLDCAVE was not declared in this scope.

I really wish I knew enough to do this without asking the internet for help every five seconds.
EDIT:
Nevermind, I think I figured out the problem.
EDIT EDIT: Nope, I'vegot the newley edited error now.
Last edited by khalil on Friday, 8th March 2013, 21:41, edited 1 time in total.
User avatar

Dungeon Master

Posts: 4031

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

Location: France

Post Friday, 8th March 2013, 21:38

Re: Custom vault causes ctd.

Add BRANCH_KobCv to the branch_type enum in enum.h:259
<+Grunt> You dereference an invalid pointer! Ouch! That really hurt! The game dies...

For this message the author galehar has received thanks:
khalil

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Friday, 8th March 2013, 21:41

Re: Custom vault causes ctd.

galehar wrote:Add BRANCH_KobCv to the branch_type enum in enum.h:259

Thanks. Trying that now.
EDIT: Looks like it's working. Thanks for the help. I really wish I knew enough to do this without having to ask the internet for advice every five seconds.

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Friday, 8th March 2013, 23:04

Re: Custom vault causes ctd.

More problems with the vault. Whee.
I added it to all the lists and so on, and the compiled game starts just fine, but when I try to create a charicter it says
ASSERT(layout) in 'dungeon.cc' at line 4018 failed

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Saturday, 9th March 2013, 18:22

Re: Custom vault causes ctd.

Any chance of some help? I don't know that much about this game's code. Anything would be appreciated.

Dungeon Master

Posts: 1531

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

Post Saturday, 9th March 2013, 19:20

Re: Custom vault causes ctd.

What does 'dungeon.cc' say at line 4018, that might give you some clues.

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Saturday, 9th March 2013, 19:27

Re: Custom vault causes ctd.

mumra wrote:What does 'dungeon.cc' say at line 4018, that might give you some clues.

It's a function that puts vaults in I think.
  Code:
static void _build_postvault_level(vault_placement &place)
{
    // Does this level require Dis treatment (metal wallification)?
    // XXX: Change this so the level definition can explicitly state what
    // kind of wallification it wants.
    if (place.map.has_tag("dis"))
        dgn_build_chaotic_city_level(DNGN_METAL_WALL);
    else if (player_in_branch(BRANCH_SWAMP))
        dgn_build_swamp_level();
    else if (player_in_branch(BRANCH_SPIDER_NEST))
    {
        int ngb_min = 2;
        int ngb_max = random_range(3, 8);
        if (one_chance_in(10))
            ngb_min = 1, ngb_max = random_range(5, 7);
        if (one_chance_in(20))
            ngb_min = 3, ngb_max = 4;
        delve(0, ngb_min, ngb_max,
              random_choose(0, 5, 20, 50, 100, -1),
              -1,
              random_choose(1, 20, 125, 500, 999999, -1));
    }
    else
    {
        const map_def* layout = random_map_for_tag("layout", true, true);
        ASSERT(layout); ///THIS IS WHERE THE BUG HAPPENS
        _build_secondary_vault(layout, false);
    }
}

Dungeon Master

Posts: 1531

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

Post Sunday, 10th March 2013, 03:42

Re: Custom vault causes ctd.

You say you get this error immediately when you create your character? Are you sure you haven't changed anything else by accident, this shouldn't affect D:1 building.

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Sunday, 10th March 2013, 14:44

Re: Custom vault causes ctd.

mumra wrote:You say you get this error immediately when you create your character? Are you sure you haven't changed anything else by accident, this shouldn't affect D:1 building.

I get it right after I choose race.

Dungeon Master

Posts: 1531

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

Post Sunday, 10th March 2013, 14:55

Re: Custom vault causes ctd.

Right, so can you answer the question.

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Sunday, 10th March 2013, 19:41

Re: Custom vault causes ctd.

mumra wrote:Right, so can you answer the question.

Nope. Left D1 alone.

Dungeon Master

Posts: 1531

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

Post Sunday, 10th March 2013, 19:55

Re: Custom vault causes ctd.

Yeah but have you changed anything other than the code you've posted here?

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Sunday, 10th March 2013, 20:08

Re: Custom vault causes ctd.

mumra wrote:Yeah but have you changed anything other than the code you've posted here?

I also added it to branch data and enum.
Here's that code
Enum:
  Code:
    BRANCH_SEWER,
    BRANCH_KOBCAV,
    BRANCH_OSSUARY,

Branch data
  Code:
    { BRANCH_KOBCAVE, NUM_BRANCHES, -1, -1, 1, 3,
      BFLAG_NO_XLEV_TRAVEL | BFLAG_NO_ITEMS, 0,
      DNGN_ENTER_PORTAL_VAULT, DNGN_EXIT_PORTAL_VAULT,
      "Kobold Cave", "a cave filled with kobolds", "KobCv",
      NULL,
      false, LIGHTGREY, DARKGREY,
      mons_null_rare, mons_null_level,
      '9', false, 0 },

Dungeon Master

Posts: 1531

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

Post Sunday, 10th March 2013, 22:13

Re: Custom vault causes ctd.

Riiight ... so, this is an educated guess, but usually the order of enums matters a lot, so you should be adding new stuff at the end, not somewhere in the middle. Also the Branch data is probably expected to be in exactly the same order as the enum. Either of these errors could easily cause a crash like that.

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Sunday, 10th March 2013, 23:42

Re: Custom vault causes ctd.

mumra wrote:Riiight ... so, this is an educated guess, but usually the order of enums matters a lot, so you should be adding new stuff at the end, not somewhere in the middle. Also the Branch data is probably expected to be in exactly the same order as the enum. Either of these errors could easily cause a crash like that.

Thanks.

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Monday, 11th March 2013, 00:56

Re: Custom vault causes ctd.

Doesn't seem to have worked. I've still got the problem.
User avatar

Dungeon Master

Posts: 46

Joined: Sunday, 20th November 2011, 01:52

Post Tuesday, 12th March 2013, 00:05

Re: Custom vault causes ctd.

Not to rain on anybody's parade with the ever so fun work here making a portal vault work, but I have to note a few things about the actual vault designs. Monsters dangerous for D:1 showing up scatted around a little in a few generic randomly-spun paths with zero randomization as the sole contents for a portal for D:3-8 is rather detached from the amount of randomization and variety in other portal vaults, even when compared to low-monster-variety ossuaries or the heavily bloated volcanoes. It is far, far away from being difficult or interesting and thus doesn't even add anything more then saying an area is a portal vault that wants to be in and thus influence a large part of nearly all crawl games.

I have to admit, I didn't start much better myself, centering around gimmicks for rather prominent vaults as the in-every-game food vaults, but I had a lot of edits done over time and other devs to hold back weaker designs, so let me act as they were for me: think a lot about submitting your first fifty vaults when you don't have much grips on vaultmaking itself unless you've made something so abstract and basic in design (i.e. walls and 098) there's little to critique, especially when you want to change a significant part of the game.

These could work as regular vaults for D:4-7 with entrances where the A is, and with a lot more kobolds standing around in them (which kind of makes them early kobold rooms with specific chokepoints but "flavour of tunnels" is the only attraction to these designs anyway); a few kobolds given random equipment to explicitly be the well-known mean kobold with brands, wands, or a blowgun would also help but are kind of silly gimmicks for early vaults. There's not nearly enough substance here for anything else.

For this message the author claws has received thanks:
nicolae

Tomb Titivator

Posts: 799

Joined: Saturday, 23rd February 2013, 22:25

Post Tuesday, 12th March 2013, 00:20

Re: Custom vault causes ctd.

claws wrote:Not to rain on anybody's parade with the ever so fun work here making a portal vault work, but I have to note a few things about the actual vault designs. Monsters dangerous for D:1 showing up scatted around a little in a few generic randomly-spun paths with zero randomization as the sole contents for a portal for D:3-8 is rather detached from the amount of randomization and variety in other portal vaults, even when compared to low-monster-variety ossuaries or the heavily bloated volcanoes. It is far, far away from being difficult or interesting and thus doesn't even add anything more then saying an area is a portal vault that wants to be in and thus influence a large part of nearly all crawl games.

I have to admit, I didn't start much better myself, centering around gimmicks for rather prominent vaults as the in-every-game food vaults, but I had a lot of edits done over time and other devs to hold back weaker designs, so let me act as they were for me: think a lot about submitting your first fifty vaults when you don't have much grips on vaultmaking itself unless you've made something so abstract and basic in design (i.e. walls and 098) there's little to critique, especially when you want to change a significant part of the game.

These could work as regular vaults for D:4-7 with entrances where the A is, and with a lot more kobolds standing around in them (which kind of makes them early kobold rooms with specific chokepoints but "flavour of tunnels" is the only attraction to these designs anyway); a few kobolds given random equipment to explicitly be the well-known mean kobold with brands, wands, or a blowgun would also help but are kind of silly gimmicks for early vaults. There's not nearly enough substance here for anything else.

I suppose you're right. Plus, normal vaults are easier to code.

Return to Coding

Who is online

Users browsing this forum: No registered users and 12 guests

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