Bitmap-based dungeon overview (a la TKangband)?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • jrodman
    Apprentice
    • Feb 2009
    • 56

    Bitmap-based dungeon overview (a la TKangband)?

    What would it take to get a dungeon overview that actually kind of shows an overview.. The character-based implementations have to throw away a lot of shape-information and don't work that well.

    I'm imagining a dungeon overview that uses primarily color to show the shape of the dungeon, with a lower level of information about what's present than the main view. Possibly something like 2x2 pixel squares for cells, with gray for walls, red for monsters, and some other clever color choices for stairs up/down, objects, uniques.

    I can start poking at the code independently, but I'd imagine someone has considered this before. The best way to do it isn't clear to me, because the game presumes the outputs are "terminals". I expect this would require a specialcase codepath in some respect. Either the map overview code would need to get a handshake with the terminal that it's using this bitmap mode, or the terminal would have to somehow be a fake high-resolution one that lies that it's huge in size and then downscales itself.

    Or maybe there's some parts I'm not understanding right?
  • takkaria
    Veteran
    • Apr 2007
    • 1951

    #2
    Originally posted by jrodman
    What would it take to get a dungeon overview that actually kind of shows an overview.. The character-based implementations have to throw away a lot of shape-information and don't work that well.

    I'm imagining a dungeon overview that uses primarily color to show the shape of the dungeon, with a lower level of information about what's present than the main view. Possibly something like 2x2 pixel squares for cells, with gray for walls, red for monsters, and some other clever color choices for stairs up/down, objects, uniques.

    I can start poking at the code independently, but I'd imagine someone has considered this before. The best way to do it isn't clear to me, because the game presumes the outputs are "terminals". I expect this would require a specialcase codepath in some respect. Either the map overview code would need to get a handshake with the terminal that it's using this bitmap mode, or the terminal would have to somehow be a fake high-resolution one that lies that it's huge in size and then downscales itself.

    Or maybe there's some parts I'm not understanding right?
    This would be trivial to implement in a platform-specific way, i.e. not using the terminal package. Angband 4 has a relatively comprehensive event system so you can listen (set a function to be called) for map updates that won't interfere with the rest of the code. map_info() tells you what the player thinks is on a given square, not as a ASCII character or a graphic item but as a struct you can use to display however you like (map_info_to_text() does just this for the terminal output).

    I think the easiest way to implement it in any given port would be to create a new window using that system, and use that system's native graphics library to plot it.

    Does that make sense?
    takkaria whispers something about options. -more-

    Comment

    • jrodman
      Apprentice
      • Feb 2009
      • 56

      #3
      Well, I'm not *too* excited about digging into xlib, os x drawing, etc, I was thinking of doing a first-pass for the SDL output-flavor of angband, which should work most anywhere.

      If I get that far, it might make sense to look into implementing something for the default display on osx (which I use), and hopefully do a good enough job for others to add platforms later, which could theoretically be me, but we'll see.

      Comment

      • takkaria
        Veteran
        • Apr 2007
        • 1951

        #4
        Originally posted by jrodman
        Well, I'm not *too* excited about digging into xlib, os x drawing, etc, I was thinking of doing a first-pass for the SDL output-flavor of angband, which should work most anywhere.

        If I get that far, it might make sense to look into implementing something for the default display on osx (which I use), and hopefully do a good enough job for others to add platforms later, which could theoretically be me, but we'll see.
        I'm really interested to see what you do I might pitch in with the platform-independence work, too, if you're on github?
        takkaria whispers something about options. -more-

        Comment

        • jrodman
          Apprentice
          • Feb 2009
          • 56

          #5
          Originally posted by takkaria
          I'm really interested to see what you do I might pitch in with the platform-independence work, too, if you're on github?
          One of the challenges here is learning to use github.

          I use git for work, but github has all its own foibles and expected use patterns, and I haven't learned them.

          Comment

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