Noob's development journal

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • PaulBlay
    Knight
    • Jan 2009
    • 657

    Noob's development journal

    See also the thread in the ToMEnet forum http://forum.t-o-m-e.net/viewtopic.php?t=20976.

    Aim: Implement new town and option of choosing starting position in ToME 3.0 with the current ToME module. Umbar (the new town) is more suitable for evil races and characters.

    Done:
    City of Umbar map.
    Set start position to Umbar.

    To Do:
    Set start position within Umbar.
    Make deep water impassable to players in Umbar.
    Make deep water impassable to land-bound monsters in Umbar.
    Set entry position when going to Umbar from the wilderness.
    Extend world map downwards a few characters.

    Bugs:
    When entering Bree the player is trapped in trees.
    Terrain generator creates trees far too often.

    Roundtuit and wishlist:
    (e.g. not going to happen any time soon).
    Implement alignment system
    Implement 'evil story questline'

    ToME engine feature requests:
    Ability to delete characters while in load screen.

    B1. When entering Bree the player is trapped in trees.
    I think this is a feature of ToME, not anything I've done. It only shows up when you enter a town for the first time. Usually people start in Bree so it wouldn't be obvious. There should be a method of setting default entrance points for town maps.

    B2. Terrain generator creates trees far too often.
    Code:
    	generator= {
    		FEAT_DIRT,
    		FEAT_DIRT,
    		FEAT_DIRT,
    		FEAT_DIRT,
    		FEAT_DIRT,
    		FEAT_DIRT,
    		FEAT_GRASS,
    		FEAT_GRASS,
    		FEAT_GRASS,
    		FEAT_GRASS,
    		FEAT_GRASS,
    		FEAT_GRASS,
    		FEAT_GRASS,
    		FEAT_GRASS,
    		FEAT_GRASS,
    		FEAT_TREES,
    		FEAT_TREES,
    		FEAT_TREES,
    	}
    As I see it that generator code should result in lots of grass, some dirt and a few trees. Is it broken, or don't I know what I'm doing?

    T2 Make deep water impassable to players in Umbar.
    T3 Make deep water impassable to land-bound monsters in Umbar.


    I think I need to do something with the flag NO_WALK. Possibly create a new feature FEAT_OCEAN

    There's also the ALLOW_IN_OCEAN flag - but that only seems to be used on a map-wide basis. (e.g. for ocean wilderness areas, etc.)
    Last edited by PaulBlay; February 8, 2009, 18:27.
    Currently turning (Angband) Japanese.
  • PaulBlay
    Knight
    • Jan 2009
    • 657

    #2
    Successfully(?) compiled the CVS, but I seem to be having some 'issues'.

    I don't know if it's because there's something wrong with the way I've compiled it or if it's because of bugs in the engine.

    1. Movement on 'overland' map is incredibly slow.
    Currently turning (Angband) Japanese.

    Comment

    • PaulBlay
      Knight
      • Jan 2009
      • 657

      #3
      Originally posted by PaulBlay
      1. Movement on 'overland' map is incredibly slow.
      That's been fixed (not by me!). Also (finally) got the CVS tome module working (made a silly mistake in copying files).

      I've extended the world map down - but when your character walks past
      where the world _used_ to end the terrain becomes invisible.
      I've looked at the load map stuff but can't figure it out yet.

      Code:
      [[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]],
      [[X========q=qqqqqqqqqggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggX]],
      [[X=========q=qq=qqqqgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggX]],
      [[X==========qq=q=qqqqggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggX]],
      [[X==============qqq=qqgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggX]],
      [[X===============q=q=q=gwwwwgggwwwwwgggggggggwwwwwwwwwwggggwwwwwwwwwwwwwggggwwwwwwwwggggwwwwwwwwwggggX]],
      [[X====================qwwwwwwwwwwwwwwwwggggggggwwwwwwwwwwwwwwwwwwwwwwwwwwggwwwwwwwwwwwwwwwwwwwwwwEEEEX]],
      [[X======================wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.EEEEEEEEX]],
      [[X========================wwwwwwww...wwwwwwwwww..........wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.EEEEEEEEEEEX]],
      [[X========================..www....wwwwwwww................wwwwGGGGwwwwwwww......wwwww.EEEEEEEEEEEEEEX]],
      [[X==========.......======.........hhhh..................GGGGGGGwwwDwwww.........wwww.EjEEEEjEEEEEEjEEX]],
      [[X========......BB..===.........hhhhhhhh..&&&&&...&..GGGGGGGGGGGGG.................jEEEjEjEEjEjjEEEEjX]],
      [[X=======......BB..===............hhhh.......&&&&&&GG.._._...........................jjjjjjjjjjjjjjjjX]],
      [[X======...._.BB._..._............................M....._._TTT................II........jjjjjjjjjjjjjX]],
      [[X=======.._..BB.._.._..hhhh................&....&MM~~~~.TT_TTTT..........I.....III........jjjjjj^^^^X]],
      [[X======.._...BB..._._..hhh.......hhhhhh.....&&&&._MM..~.TTT_T_TT..^l......IIIIII..............jjj^^^X]],
      [[X=====.._..TBBB...._._..h.=....hhh|hh..........__.MM__~.TTTT_h_TT.l8........_.....................^^X]],
      [[X===...._....BB....._..hh.=_....h.|..........__...MM..~.TTTTTT_TT.=........_........................X]],
      [[X====.._...BBBB...._....hhhh__....|........._.....MM..~.TTTTTT____a........_........................X]],
      [[X=====.._..TTBB..._........._.....|h......._.ff...MM..~6TTTTT&&&T._........._.......................X]],
      [[X====...__..TBBB._......hh.._.....|.hh...._.f^^^._MM..~..TTT&G&&&T._........._......................X]],
      [[X=====..._.....__......hho+-_.2---x1hh-------_L...MM---------------_........_.......................X]],
      [[X======..==..=__....h....h|.._.hh.|ih....._..^^^._M...~..TTTTTTTTTT._........_......................X]],
      [[X=============.....hhh....|.._.OOO|h......_.._.._MMM...~..TTTTTTTTT.._........_....................jX]],
      [[X======........BB...h.....|..._OOO|hh...._.._...MM.....~..TTTTTTTT...._......_....................jjX]],
      [[X=====.........BB.........[---_.O.|.h...._._..MMMMM.s._~..TTTTTTTT....._......_..................jjjX]],
      [[X=====.........BB............._[--|....._.._..MMMM___s.~~.TTTTTTTT......_.._._..................jjjjX]],
      [[X======........BB....B......._....|....._._...MMMM.....~~.TTTTT.T........._.._.................jfjjjX]],
      [[X=======.....TBBB..BBBB....._.....|....._....MMMMM....~~...TTTT.............._...............jffjjjjX]],
      [[X==========..TBBBT........._......|...._.....MMMM.....~~...TTTT..............._...._.......fjfjjfjjjX]],
      [[X==========..TTTBBTBB....._.......|ss__.....hMMMM....~~....TTTTTTT............._.__._ ...ffffffjjjjjX]],
      [[X==========...TTBTT......_........___ss_....MMMMM....~~..TTTTTTTTTT............._....  ...f  fffjjjjX]],
      [[X==========.....T.T....._........_.....______MM___...~~.TTTTTTTTTT...................        ffjjjjjX]],
      [[X===========.=........._........_...........MMMM_!.!~~..TT&TTTTTTT..................         fjfjjjjX]],
      [[X================....__........_..jjj......MMMM._!4!~~..TTTTTTTTT...................         ...jjjjX]],
      [[X=================.==E........_....jj.....ffMMM..!!!~.....TTTTT..................^^.        ......jjX]],
      [[X===================EE........._.........ffMMM.......~~.........................^^^^.       .......jX]],
      [[X===================E==......._..........ffMMMttttt._..~~~~;;....................^^^.  ...  .......jX]],
      [[X===================E==......_...........f&MMMMtttt_s_.....~;;..................^^^^^. ... ........jX]],
      [[X=====================......_.jjj........f&MMMtttttt..__s~~;;...................^^^^^^.............jX]],
      [[X=====================.....=_.jj.........&&MMMttttt.....~...........................^^.............jX]],
      [[X======================...==..jjj........&&_&&&.._.......~~........................................jX]],
      [[X=======================.===..............^_^....._........~.......................................jX]],
      [[X===========================..............._........_.....~........................................jX]],
      [[X==========================.jj......._._.._........_....h=hh...SSS.................................jX]],
      [[X==========================.jj._.._j_...__.........._..h===h.SSSS.................................jjX]],
      [[X==========================..__.__._._._..&&&b....._....h=hh..SS.A.A.............................jjjX]],
      [[X============================....._..._.__.&&&......_....~~.....AAkAAA..A..AA..A..A..AA...A.....jjjjX]],
      [[X===========================.............._&&&^^....._....~~s...DDvvAAAAAAAAAAAAAAAAAAAAAAAAAAAAJjjjX]],
      [[X===========================.......^.&.^^&&&&&&&......__.~~sss...DDVVVVVVVAVVVAVAA_"""_""""""..AAAjjX]],
      [[X===========================.....^^.&.&_&^&.&^&_&&&9...._..~~ss..DDVVUVVVVVVVVVVA_"""""_""""""...AAjX]],
      [[X===========================....^....__^^...^^^._^&&........~~.c.DDVVUUVVVVVVVAA_"""""""_"""".....AAX]],
      [[X===========================..^^^_.._.......^^._.^^&&&........~~.DDVVVVVVVVVVAA""_""""""_"""""""....X]],
      [[X============================.^f_.__._........_&^^^.&&&&&......e.DDVAAVAAAVVV"""""_""""_""""""".....X]],
      [[X============================.f^_..._....hh.._&&&^^.._&&&&.&...~.DDD""A"A""""""""=="""_""""""""""...X]],
      [[X============================.f^._.hhhhhhhh...__...._^&^&&&&&.~..DD""""""""""""======_"""""""""""AAAX]],
      [[X===========================.^^._...h.h........._.._.^&^^._^3.~..DD"""_"_"""""=====""""""""""""AAAddX]],
      [[X==========================..^^.._.....===.=====_._&^...._...^.~.DD"__"_"__======"""""AA""""AAAAddddX]],
      [[X==========================.h...._...===========_&&^...._._...~~.DD_""""""""""""_""A"AAAAAAAAdddddddX]],
      [[X========================.hhh=...=_.==========&^^^^.._._..._.~~..DDD""DDD""D"""DD_DDAAddddddddddddddX]],
      [[X======================....=====.==============^.^._=._.....~~...DDDDDDDDDDDDDDDDDDDddddddddddddddddX]],
      [[X==============================================.^^^==....~~~~..............~.....dddddddddddddddddddX]],
      [[X===============================================..====~~~p................~dddddddddddddddddddddddddX]],
      [[X===============================================.==^==_............dddddd~ddddddddddddddddddddddddddX]],
      [[X=================================================^^===........dddddd~~~~dddddddddddddddddddddddddddX]],
      [[X======================================================.....~~~~~~~~~dddddddddddddddddddddddddddddddX]],
      [[X======================================================..~~~.....dddddddddddddddddddddddddddddddddddX]],
      [[X=======================================================~.......ddddddddddddddddddddddddddddddddddddX]],
      [[X======================================================.........ddddddddddddddddddddddddddddddddddddX]],
      [[X====================================================.........ddddddddddddddddddddddddddddddddddddddX]],
      [[X===================================================..=0....ddddddddddddddddddddddddddddddddddddddddX]],
      [[X======================================================..dddddddddddddddddddddddddddddddddddddddddddX]],
      [[X================================================dddddddddddddddddddddddddddddddddddddddddddddddddddX]],
      [[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]],
      Currently turning (Angband) Japanese.

      Comment

      • Nick
        Vanilla maintainer
        • Apr 2007
        • 9634

        #4
        Originally posted by PaulBlay
        I've extended the world map down - but when your character walks past where the world _used_ to end the terrain becomes invisible.
        That sounds like there's a limit to downward extent coded somewhere. The tricky bit will be finding where.
        One for the Dark Lord on his dark throne
        In the Land of Mordor where the Shadows lie.

        Comment

        • PaulBlay
          Knight
          • Jan 2009
          • 657

          #5
          Originally posted by Nick
          That sounds like there's a limit to downward extent coded somewhere. The tricky bit will be finding where.
          I tried searching on the size of the previous match.

          It isn't obviously hardcoded - in engine\variable.c we have
          Code:
          /*
           * Maximum size of the wilderness map
           */
          u16b max_wild_x;
          u16b max_wild_y;
          And (in the module, in mapload.lua) max_wild_y is set from map.cur_map.hgt

          Code:
          map.cur_map.hgt = getn(m)
          (m is the map array)
          Currently turning (Angband) Japanese.

          Comment

          • PaulBlay
            Knight
            • Jan 2009
            • 657

            #6
            General thoughts on ToME3 (CVS)

            - Overland travel is a pain in the butt.
            There is no warning before going weak from lack of food.
            Suggestions:
            a) Decrease food usage during wilderness travel.
            b) Instead of dropping to local map when you go weak give a chance to eat first.
            c) Have inns where you can pay for travel in stage coaches / wagons / caravans to nearby towns.

            - Lighting in overland travel is inconsistent.
            I suggest "Night time = No light radius" / "Daytime = Radius of 1"
            At present lanterns provide an extra light radius which, when you consider the scale involved, is very silly.
            Last edited by PaulBlay; February 12, 2009, 15:15.
            Currently turning (Angband) Japanese.

            Comment

            • PaulBlay
              Knight
              • Jan 2009
              • 657

              #7
              Originally posted by Nick
              That sounds like there's a limit to downward extent coded somewhere. The tricky bit will be finding where.
              OK, what I've found out so far is that it's the bit where you approach the edge and the map 'flips' further down that isn't working. Centering doesn't help though. Unfortunately I still haven't noticed where the fixed sizes are slipping in.

              [EDIT]It looks like it may be from here ...

              Code:
              /*
               * Maximum dungeon height in grids, must be a multiple of SCREEN_HGT,
               * probably hard-coded to SCREEN_HGT * 3.
               */
              #define MAX_HGT         253
              SCREEN_HGT is 22 so I'm changing it to 88 from 66 (=original) or from 77 (=failed)

              Edit - that didn't work, so I guess they were right about the ' * 3' ?
              Last edited by PaulBlay; February 12, 2009, 18:38.
              Currently turning (Angband) Japanese.

              Comment

              • bio_hazard
                Knight
                • Dec 2008
                • 649

                #8
                Originally posted by PaulBlay
                General thoughts on ToME3 (CVS)

                - Overland travel is a pain in the butt.
                There is no warning before going weak from lack of food.
                Suggestions:
                a) Decrease food usage during wilderness travel.
                b) Instead of dropping to local map when you go weak give a chance to eat first.
                c) Have inns where you can pay for travel in stage coaches / wagons / caravans to nearby towns.

                - Lighting in overland travel is inconsistent.
                I suggest "Night time = No light radius" / "Daytime = Radius of 1"
                At present lanterns provide an extra light radius which, when you consider the scale involved, is very silly.
                What speed is your test character? At least in 2.3.x there's usually at least 1 turn of "hungry" before dropping you down to weak. Also, unless you are ambushed, there's no real penalty to being weak in wilderness. Unless you have the ill fortune to land right next to an awake monster, you should be able to eat and then re-enter wilderness mode. And at least in 2.3.x, you do get a warning- the first time you walk in the wilderness you get a message telling you to make sure to bring enough food!

                Of course, it would be ideal if you auto-ate (or auto-magiked your food), with some kind of warning when you drop below a certain amount of food or exceeded some distance from a known town based on your current food supply.

                About lighting, I would totally support a standard light radius, along with not burning fuel (making the assumption that you are resting at night and traveling during the day). Zero light radius would be pretty useless in overland, and I don't think that level of realism would add much to gameplay (imho).

                Comment

                • PaulBlay
                  Knight
                  • Jan 2009
                  • 657

                  #9
                  Originally posted by bio_hazard
                  What speed is your test character?
                  Standard. No bonus, no penalty.
                  At least in 2.3.x there's usually at least 1 turn of "hungry" before dropping you down to weak.
                  I'm in Tome3 (CVS build). I wonder if the 'energy' used per step varies with terrain? In anycase I often/usually have no warning.

                  Also, unless you are ambushed, there's no real penalty to being weak in wilderness.
                  Sure. It all slows stuff down though. Especially when I just want to run to the southern end of the map to see if it's working (Yes, I know I can change the start position ...)

                  Of course, it would be ideal if you auto-ate (or auto-magiked your food), with some kind of warning when you drop below a certain amount of food or exceeded some distance from a known town based on your current food supply.
                  Agreed.

                  About lighting, I would totally support a standard light radius, along with not burning fuel (making the assumption that you are resting at night and traveling during the day). Zero light radius would be pretty useless in overland, and I don't think that level of realism would add much to gameplay (imho).
                  Sounds good to me. Standard light radius during daytime, auto-advance through night. For 'realism' I suppose you should drop to encounter level if you get 'weak' during the night - but I'd rather you didn't get hungry while asleep.

                  Still no luck resizing the map though - I'm giving up for today.
                  Currently turning (Angband) Japanese.

                  Comment

                  Working...
                  😀
                  😂
                  🥰
                  😘
                  🤢
                  😎
                  😞
                  😡
                  👍
                  👎