Adding 3 dimensions to a 2D roguelike

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • xibalba
    Rookie
    • Feb 2012
    • 7

    Adding 3 dimensions to a 2D roguelike

    For Azure Dreams on the PlayStation, a GameFAQs message board topic titled "Azure Dreams is a 3D roguelike".


    Azure Dreams is a proprietary game for the PlayStation 1. It's a 3D roguelike, with elements of townbuilding sims, dating sims, and monster raising and fighting games. The game uses 3D graphics to represent the terrain of each floor in the Monster Tower (which is the tower you must climb in the game, just like you have to descend into a dungeon in other roguelikes), but the actual player character and non-player characters are 2D sprites. Items and effect animations are 2D sprites as well.

    I'm no programmer, so I'm wondering; how hard is it to add a z-axis and 3D graphics for terrain to an existing 2D ascii roguelike? It doesn't have to be a fully functional z-axis (in that you can have a something on a floor above you, at the same x and y co-ordinates), but it would instead allow you to have hills and ravines to traverse on the current floor, which would change battle mechanics.

    The battle mechanics in question:
    *Height Variance = Damage Variance.
    //Attack from above, and you deal more damage. Attack from below, and you deal less damage.
    *Line Of Sight
    //Ranged weapons and spells which use LOS can be blocked when there is something between the actor and the target.
    *Arcing
    //Weapons like bows - but not crossbows - and some spells activate along an arc. As such, they can be fired over an obstacle, but not around it to either side. Depending on the position of the obstacle relative to the actor and the target, the obstacle may block the attack.
    *Knockback
    //Some attacks can knock a target back one square. If the target falls from a higher square to a lower square, the target may suffer fall damage.
    *Fall Damage
    //Fall Damage increases the greater the distance you fall.
  • ghengiz
    Adept
    • Nov 2011
    • 178

    #2
    Originally posted by xibalba
    I'm no programmer, so I'm wondering; how hard is it to add a z-axis and 3D graphics for terrain to an existing 2D ascii roguelike? It doesn't have to be a fully functional z-axis (in that you can have a something on a floor above you, at the same x and y co-ordinates), but it would instead allow you to have hills and ravines to traverse on the current floor, which would change battle mechanics.

    The additional features you are listing should be in the game design since the start, because they are an integral part of the game mechanics.

    If you'd be happy with just a fake z-axis, necklace of the eye

    NotEye

    gives you a first person POV to a generic roguelike which uses pure ASCII output.

    edit:
    if you are interested in tactical use of terrain, you could try unangband, for example

    Comment

    • Mikko Lehtinen
      Veteran
      • Sep 2010
      • 1246

      #3
      Originally posted by ghengiz
      if you are interested in tactical use of terrain, you could try unangband, for example
      I've added tables and platforms to the development version of FayAngband.

      Standing on a platform while your opponent is lower protects you from its melee attacks 2/5 of the time.

      Platforms may also block ranged attacks aimed at the other side 2/5 of the time. If you are standing right next to a table or platform, you may use it as a cover without getting the penalties yourself.

      I have Jumping skill for both the player and monsters. You have to succeed in Jumping to get on a table.

      Comment

      • ghengiz
        Adept
        • Nov 2011
        • 178

        #4
        Originally posted by Mikko Lehtinen
        I've added tables and platforms to the development version of FayAngband.

        Standing on a platform while your opponent is lower protects you from its melee attacks 2/5 of the time.

        Platforms may also block ranged attacks aimed at the other side 2/5 of the time. If you are standing right next to a table or platform, you may use it as a cover without getting the penalties yourself.

        I have Jumping skill for both the player and monsters. You have to succeed in Jumping to get on a table.
        very nice!

        Comment

        • Mikko Lehtinen
          Veteran
          • Sep 2010
          • 1246

          #5
          I have other new tactical features in rooms, too. Unfortunately playtesting revealed that no matter how beneficial the room features were, retreating into a corridor was still usually the optimal strategy.

          But I really wanted people to take advantage of the platforms and other nifty features, like magical circles. I decided to make a radical change to melee combat: whenever you attack a monster in melee, and there's another monster in melee range, you will attack one additional monster at random!

          This may feel weird at first but it works really well in actual play. Now I often have exciting situations where I'm standing on a table surrounded by a horde of orcs, who are bad jumpers.

          Comment

          • ghengiz
            Adept
            • Nov 2011
            • 178

            #6
            Originally posted by Mikko Lehtinen
            I decided to make a radical change to melee combat: whenever you attack a monster in melee, and there's another monster in melee range, you will attack one additional monster at random!
            just curious: does that count as an additional free attack (with thus the whole dice of the weapon in hand), or like an "accidental" hit (imagine a monster (not the one you are attacking directly) near you hit by the rear of a lance) with reduced damage?

            Originally posted by Mikko Lehtinen
            Now I often have exciting situations where I'm standing on a table surrounded by a horde of orcs, who are bad jumpers.
            I'm looking forward to try it

            Comment

            • Mikko Lehtinen
              Veteran
              • Sep 2010
              • 1246

              #7
              Originally posted by ghengiz
              just curious: does that count as an additional free attack (with thus the whole dice of the weapon in hand), or like an "accidental" hit (imagine a monster (not the one you are attacking directly) near you hit by the rear of a lance) with reduced damage?
              It's a full attack sequence with all your blows. So it's optimal to pick fights with either one or two monsters at the same time.

              Comment

              • ghengiz
                Adept
                • Nov 2011
                • 178

                #8
                Originally posted by Mikko Lehtinen
                It's a full attack sequence with all your blows. So it's optimal to pick fights with either one or two monsters at the same time.
                I think it's a great idea...
                BTW, is this "one more full attack sequence" a just-once-per-turn thing, or may it trigger again for free and so on?

                Comment

                • Mikko Lehtinen
                  Veteran
                  • Sep 2010
                  • 1246

                  #9
                  Originally posted by ghengiz
                  I think it's a great idea...
                  BTW, is this "one more full attack sequence" a just-once-per-turn thing, or may it trigger again for free and so on?
                  It happens every time you press the key to attack someone. If there are more opponents in melee range, you attack one of them at random.

                  This doesn't actually change the combat math that much. It's still usually preferable to retreat to a corridor rather than face three or more monsters in a room. You just have some more tactical options, especially around terrain features.

                  Comment

                  • Derakon
                    Prophet
                    • Dec 2009
                    • 9022

                    #10
                    I've thought about trying to make a roguelike with height variance in the tiles. I came to the conclusion that the result would basically look like your average tactical RPG (c.f. Final Fantasy Tactics, Disgaea, Fire Emblem, etc.). Doesn't mean it'd be a bad idea -- I sank way too many hours into Disgaea 2. The main thing about height variance is that it needs to be an integral component of the combat system, to make up for the costs of implementing it. Some potential issues that you'd want to think about:

                    * Do you know how to do 3D graphical work? OpenGL is a lot more complicated to work with than just blitting pixels to the screen.
                    * You'll need a mobile camera so you can look behind tiles and see where monsters are hiding.
                    * Units will need different capabilities when it comes to traversing the terrain. Snakes should probably not be able to just jump up over a short cliff, but they might be able to climb its side.
                    * Testing for line-of-sight becomes more complicated.
                    * Area-of-effect spells should probably also be tweaked, since presumably they aren't all going to be lightning bolts out of the heavens.

                    And so on...

                    Comment

                    • Mikko Lehtinen
                      Veteran
                      • Sep 2010
                      • 1246

                      #11
                      Originally posted by Derakon
                      * Units will need different capabilities when it comes to traversing the terrain. Snakes should probably not be able to just jump up over a short cliff, but they might be able to climb its side.
                      * Testing for line-of-sight becomes more complicated.
                      * Area-of-effect spells should probably also be tweaked, since presumably they aren't all going to be lightning bolts out of the heavens.
                      With my small set of terrain features I managed with a very reasonable amount of changes.

                      Monsters have only three new flags: FLYING, BAD_JUMPER, and PASS_VEGETATION. (Most monsters have jumping at 40%.)

                      Making bolts and ball effects behave near platforms was tricky, with lots of special cases. And it's not always intuitive to the player what's gonna happen when you blast that fireball near a platform.

                      I specifically designed the terrain features so that I would not need to touch the monster AI. I'm quite happy with my monsters being stupid sometimes. It actually makes terrain features more tactically interesting for the player.

                      With richer terrain elements, AI would surely have to be tweaked. Many monsters would need their own set of monster flow rules. Andrew Doull has been doing this for a long time in UnAngband, and he claims it is actually not that hard.

                      Comment

                      • xibalba
                        Rookie
                        • Feb 2012
                        • 7

                        #12
                        Azure Dreams deals with height variance by some kind of algorithm which limits extreme changes in height so that every square can be climbed. And everyone - player character, NPC, and enemies - can jump 2 or 3 tiles vertically and 1 tile horizontally at the same height.



                        Read Aerostar's battle mechanics guide for more details on jumping mechanics in FFT. Though FFT isn't a roguelike, it's within batting distance of Azure Dreams.
                        Last edited by xibalba; February 25, 2012, 00:42.

                        Comment

                        • getter77
                          Adept
                          • Dec 2009
                          • 242

                          #13
                          Originally posted by Derakon
                          I've thought about trying to make a roguelike with height variance in the tiles.

                          And so on...
                          Castlevania RL manages height variance relatively well with platforming, stair mechanics, etc. More is needed in terms of letting the player better determine effectiveness of doing various things with respect to height tolerance and such, but hey.

                          Comment

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