Some (developery) thoughts on tile support

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • takkaria
    Veteran
    • Apr 2007
    • 1951

    Some (developery) thoughts on tile support

    As I pootled home on my bicycle today my mind turned to tile support in Angband. This is something I really wanted to work on while I was maintainer but was always crowded out by other stuff.

    I figure there are two broad approaches to better tile support: the first is to go for it, and write a new frontend for some platform or framework (like Qt) that does stuff differently without touching the existing frontends. The second is to try and improve the game core to support something like the existing terminal package but for graphics and then write something on top of it. As a code reuse and tidiness freak I'm more into the second. Also, maintaining one way of doing graphics for three frontends with pref files and tilesets (which the current approach requires) and another way using separate tiles will be a nightmare, so if we want to move to a file-per-tile we're going to have to bring along the old frontends, or abolish their graphics support.

    I wrote up my initial thoughts on some building blocks for this work here, but basically, they involve writing a couple of layers of graphics primitives so that the core game has some concept of graphics support (including e.g. shockbolt's double-height tiles). Then attempting to move existing frontends to use this, before ripping out graphics from z-term and then moving to a file per tile instead of these ridiculous massive tilesets with 128 added to every location.

    I'm going to have a go at writing this at some point but it might take a while, but if anyone else fancies a go, I'd say don't wait, bearing mind I have spent years not finishing some subprojects in Angband! I think my plan is to start with the SDL frontend, and make a window that just draws a map, get map updates working properly there with full tile sizes and then try to integrate that into the main term. I think the API above would be relatively easy to test in unit tests too, which would make not breaking everything horribly without noticing a lot easier.

    I think Nick also has some thoughts to share on this.
    takkaria whispers something about options. -more-
  • Nick
    Vanilla maintainer
    • Apr 2007
    • 9634

    #2
    I've had a bunch of fairly disordered thoughts on this:
    • Angband has 5 tilesets. Of those, 2 of the designers are currently active - Nomad and Shockbolt (also special mention for buzzkill, who has been keeping the Gervais tileset going). If there are going to be changes that require new tiles, this is probably a good time.
    • I really like Shockbolt's 13-piece terrain tiles (first raised for *bands by Leon Marrick - sadly the pictures are gone, but this thread is worth it for the history)
    • The current way of drawing tiles has really been stretched way beyond the original constraints, so we really need it to be rewritten, but I feel very unqualified.


    So you can imagine my delight on takkaria expressing interest

    So I'm seeing the plan as I will patch up the current setup as well as I can, and we look forward to a glorious future of grafgrids.
    One for the Dark Lord on his dark throne
    In the Land of Mordor where the Shadows lie.

    Comment

    • fizzix
      Prophet
      • Aug 2009
      • 3025

      #3
      I would really like it if the angband tile version looked a lot like the DCSS tile version, with subwindows meshed into the overhead display. Obviously, it would look somewhat different, we wouldn't have as much use for the minimap, and have far more use for stuff like the visible monster list.

      I wouldn't mind working on something like this, but honestly, I have no clue where to even start.

      Comment

      • MattB
        Veteran
        • Mar 2013
        • 1214

        #4
        Originally posted by Nick
        [*]I really like Shockbolt's 13-piece terrain tiles (first raised for *bands by Leon Marrick - sadly the pictures are gone, but this thread is worth it for the history)
        Awesome thread - thanks for the link!

        Comment

        • Ingwe Ingweron
          Veteran
          • Jan 2009
          • 2129

          #5
          There's so much focus on graphics, appropriately so, but is there also any consideration to improving the sound effects?
          “We're more of the love, blood, and rhetoric school. Well, we can do you blood and love without the rhetoric, and we can do you blood and rhetoric without the love, and we can do you all three concurrent or consecutive. But we can't give you love and rhetoric without the blood. Blood is compulsory. They're all blood, you see.”
          ― Tom Stoppard, Rosencrantz and Guildenstern are Dead

          Comment

          • PowerWyrm
            Prophet
            • Apr 2008
            • 2986

            #6
            Anyone ever considered porting Angband to NotEye frontend?
            Take a quick look here: http://mangband.org/forum/viewtopic.php?f=9&t=1955.
            This would require drawing a complete tileset (the example with my variant uses the basic tileset + ascii for the unmapped tiles).
            PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!

            Comment

            • takkaria
              Veteran
              • Apr 2007
              • 1951

              #7
              Originally posted by Ingwe Ingweron
              There's so much focus on graphics, appropriately so, but is there also any consideration to improving the sound effects?
              I think no-one has expressed a strong opinion about sound support for a long time. If you have some that would be great. However, focussing on tiles seems more timely right due to the fact we have two graphic tileset creators around.
              takkaria whispers something about options. -more-

              Comment

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