Blengband - 3D angband in development

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • jplur
    Scout
    • Oct 2009
    • 31

    Blengband - 3D angband in development

    Hello all,

    Angband was one of the first computer games I got into, back in the 90's. For some time I have dreamed of recreating it in realtime 3D, and a week ago I actually started.

    It is being developed with Blender's game engine and python.

    So far I have a random BSP dungeon script, and a script that parses monster.txt

    My aim is to have a 3D model for every monster and item ASCII symbol in the game.

    Youtube videos:

    Some random monsters, for now they all use the rodent mesh.

    My first experiment with displaying the map.

  • Zikke
    Veteran
    • Jun 2008
    • 1069

    #2
    This looks awesome!


    (I know it may not be what you're going for, but having a FPS angband variant would pretty much be the best thing ever)
    A(3.1.0b) CWS "Fyren_V" NEW L:50 DL:127 A++ R+++ Sp+ w:The Great Axe of Eonwe
    A/FA W H- D c-- !f PV+++ s? d P++ M+
    C- S+ I- !So B ac++ GHB? SQ? !RQ V F:

    Comment

    • jplur
      Scout
      • Oct 2009
      • 31

      #3
      Yeah first person shooter game play is going to be a big part of it.

      I imagine playing a ranger or mage will be ridiculously fun.

      And I plan on having the 'v'olley objects command with physics.

      Comment

      • fizzix
        Prophet
        • Aug 2009
        • 3025

        #4
        that looks really cool!

        Are you making the game more real time approach or are you sticking with the turn-based?

        Comment

        • jplur
          Scout
          • Oct 2009
          • 31

          #5
          Realtime. Monsters and the player will have a countdown timer. If they do an action their speed stat will be added to the timer and they will have to wait a bit before performing another action.

          Comment

          • Karzack
            Rookie
            • Dec 2007
            • 17

            #6
            This looks great! I will keep an eye on this one definitely.

            Comment

            • jplur
              Scout
              • Oct 2009
              • 31

              #7
              New video: http://www.youtube.com/watch?v=49yqF9pzjj8

              Stairs, doors, and items are in the dungeon. The game is starting to really feel like angband.

              Next up is character creation, item identification states, inventory, maybe the basic combat algorithm.

              I'm going to have to plan out the user interface, also some sort of quickaccess command slots for ingame, so you could cast a spell or use an item via one keypress.

              I was wondering, what is the algorithm for placing things at a dungeon level? Seems it picks entities from any level up to the current one and sometimes deeper, but is it weighted to pick more from the current level?

              Comment

              • Pete Mack
                Prophet
                • Apr 2007
                • 6883

                #8
                I think it's easier to read the code than explain.
                1. With a 1/20 (1/25?) chance, set max dl to Rand(dl,100), else set max level to dl. If drop is good or excellent, increase max level by 10.
                2. Pick best of Rand(1,3) items, where best is determined by dl.
                3. Try for artifact or ego, enchantment.

                Comment

                • jplur
                  Scout
                  • Oct 2009
                  • 31

                  #9
                  This should look a bit familiar

                  Comment

                  • jplur
                    Scout
                    • Oct 2009
                    • 31

                    #10
                    Hey all,

                    Just writing to say this project is still on my plate, but I've been overwhelmed with work as of late, so haven't gotten much progress made.

                    When I do get some free time, I've been taking Pete Mack's advice and pouring through the angband source code. (I've never used C before, but it's been pretty easy to decipher).

                    I've also been debating whether to make a multiplayer option with TCP. Seems like now would be a good time to implement it, before things get too complicated.
                    Last edited by jplur; November 17, 2009, 22:24.

                    Comment

                    • Derakon
                      Prophet
                      • Dec 2009
                      • 9022

                      #11
                      I caution you against getting too ambitious. Multiplayer is hard. Hard hard hard. It sounds like you don't have all that much experience in game development (feel free to correct me if I'm wrong), so keep it simple!

                      I'd always kinda considered making my own 3D Angband, though I just envisioned it as having 3D versions of all of the letters.

                      Comment

                      • jplur
                        Scout
                        • Oct 2009
                        • 31

                        #12
                        Originally posted by Derakon
                        I caution you against getting too ambitious. Multiplayer is hard. Hard hard hard. It sounds like you don't have all that much experience in game development (feel free to correct me if I'm wrong), so keep it simple!
                        I don't have a lot of programming experience (I'm a visual artist) so you're right about that. I'd still like to experiment with multiplayer at some point, but probably best to try a simple chat with avatar thing so I can learn the ropes.

                        Despite the atrociousness of my code, I do have some of the harder aspects of the game down. Character gen, dungeon gen, parsing of the angband game objects, populating a map with appropriate selections, and a game state which only displays nearby tiles/entities/objects.

                        Originally posted by Derakon
                        I'd always kinda considered making my own 3D Angband, though I just envisioned it as having 3D versions of all of the letters.
                        I have to admit, having 3D ascii letters would add some humor to the game. In the end it won't be hard to create alternate model libraries for that stuff.

                        Comment

                        • Aristobulus
                          Scout
                          • Nov 2008
                          • 25

                          #13
                          Stumbled across this thread when I searched for "3d angband" and thought I'd post. I haven't logged in in over a year, mind you.

                          Anyways, looks awesome, sounds awesome, and I hope you keep working on it.

                          Comment

                          • jplur
                            Scout
                            • Oct 2009
                            • 31

                            #14
                            Small updates. Wrote a decent GUI class that can handle list selection with keys or the mouse. Been doing more thinking than actual programming.

                            Decided I have to change the monster and object data structures to a python dict, own.type['speed'] is much more memorable than own.type[2][0]

                            Did some work on the art side:

                            Comment

                            • Derakon
                              Prophet
                              • Dec 2009
                              • 9022

                              #15
                              Those look like an excellent first stab at the art.

                              As for dicts, I suggest using container classes instead. They're functionally almost identical, but it's even better to do own.type.speed than it is to do own.type['speed']. The simple and stupid way to do that looks like this:
                              Code:
                              class Dummy:
                                  pass
                              
                              own.type = Dummy()
                              own.type.speed = 100
                              The better way would be to make "type", whatever that is, into a proper class with sensible default values.

                              Comment

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