Blengband - 3D angband in development
Collapse
X
-
Ha ok. I'll be sure to at least add an option for synchronized convulsions.
I've been working a lot this weekend, but it feels like progress is slow. I rewrote the level of detail script (it translates between the dungeon map and the local 'bubble' of reality the player sees). The game objects now have the right mesh and passable physics, but they are sometimes getting lost through the floor. (bad news if your trying to track down a 'special' feeling.
I finished the new tileset, and had to rewrite the function that parses the map data into tile type and rotations. Previously it would look up the 4 cardinal neighbors, but the new tile types need to check all 8 neighbors. I wrote what I thought was an elegant routine to rotate a template 4 times and return a match, but it slows down the level generation time. For now I'm moving on, but in the future I'm going to have to pregenerate some sort of look up table; if the first number is 0 limit the search to all matches that start with 0. etc. If anyone has any ideas about this let me know
So what's next? I have no idea. It's becoming clear that a lot of the base systems have to be written well otherwise i end up going back to them. I'm thinking key mapping and a control object should be set up soon. Keys will be mapped to commands. If you pass the 'fire missile' command to the conrol object it will pop the inventory menu with an 'ammo' filter and wait for your choice. But if you define a macro that passes ['fire missile', 1] it will bypass the menu to fire the first ammo inscribed '@f1'Comment
-
If I understand correctly what you mean by tileset issues, you have a 2D grid, with each space either being in the grid or out of it, and you want to generate the appropriate meshes/textures to cleanly show corners, blank walls, and the like, right?
I wrote a solution to that problem in Jetblade. Basically the way it works is that I assign each space in a 3x3 grid a power of two:Code:1 2 4 8 16 32 64 128 256
There are 2^9 = 512 possible signatures, but in practice many of them result in the same tile types, so I wrote a system to automatically generate the mapping based on a "must be empty / must be occupied / don't care" setup. If you download the Jetblade code, you can find more information on this in map.py's adjacencyKernelToBlockTypeMap object and util.py's adjacencyArrayToSignatures() function.
I've considered extending this to use a 5x5 grid instead of a 3x3; that would allow me to have smoother diagonal walls (right now they're either flat or 45° angles). But that would result in 2^25 = 33554432 different signatures, which is rather a lot.Comment
-
See: flyweight pattern, LRU cacheComment
-
After dealing with some bugs I'm back on track. It's hard to find all 4 of the monster symbols together but here is an in game shot.
My to do list
inventory
control object with que
keymap to command names
menu that can filter from inventory/equipment/ground and return selection
timing for entites based on speed
melee actions for entitiesComment
-
That looks awesome. My wife loves the natural lighting and high ceilings, when can we move in? Something near the surface (and shopping) would be nice.www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012.
My banding life on Buzzkill's ladder.Comment
-
Couple of videos up on youtube:
Enjoy the videos and music that you love, upload original content and share it all with friends, family and the world on YouTube.
Showing off inventory and stairscumming
Enjoy the videos and music that you love, upload original content and share it all with friends, family and the world on YouTube.
interesting hack using a sword. Objects have a mass equal to their weight but it looks like the system needs some tweaking.
I'm very glad the weekend is here, it means large chunks of time to work on this.Comment
-
Thanks for the encouraging words!
I got a lot of work done in the depths of blengband. In short, inventory scrolls are working.
In detail; the menu can filter your inventory based on commands (quaff, read). Consumable items are consumed, reading an inventory scroll brings up another dialog displaying un-id'd items. players start with their class defined equipment. I have dummy functions for spells1.c and spells2.c, for now identify_pack is the only spell hooked up, but when I have time I can begin to add more spell effects and hook them up to items.
What's next? I'm going to give some TLC to the existing code. I plan on using cprofile module for python to find bottlenecks, redo some of my early programming work, and just clean things up in general.Comment
-
Thanks for the encouraging words!
I got a lot of work done in the depths of blengband. In short, inventory scrolls are working.
In detail; the menu can filter your inventory based on commands (quaff, read). Consumable items are consumed, reading an inventory scroll brings up another dialog displaying un-id'd items. players start with their class defined equipment. I have dummy functions for spells1.c and spells2.c, for now identify_pack is the only spell hooked up, but when I have time I can begin to add more spell effects and hook them up to items.
What's next? I'm going to give some TLC to the existing code. I plan on using cprofile module for python to find bottlenecks, redo some of my early programming work, and just clean things up in general.
Scroll of identify.............................9
Wooden Torch...............................7
Gloopy Green Potion........................1
This gets rid of having to deal with horrible non-standard english grammar, but still presents the info in a good way.Comment
-
Update video: http://www.youtube.com/watch?v=x8YFjiIpiEM
Weapon equipment slot is working and you can wield weapons. It's all in preliminary stages right now.
Kind of confused how to sort through some game items. effect mushrooms and food rations have the same symbol and tval, so i end up checking for "&" in the item name to tell them apart.
Identifying flavors is now global and updates appropriately.Comment
-
Image dump of a 300^2 map. The size of the map has no effect on in level speed, but who would want to clear something that regular?
Honestly I haven't looked to closely at the angband dungeon generate, I think it places rooms randomly and snakes halls to connect them all (where mine recursively splits the entire map and draws rooms on the lowest nodes)Comment
-
Heh. Reminds me of my own experiments in procedural map generation: 1.6MB PNG.
Despite that development on this has kind of gotten derailed. A week ago I took some time off to learn about network programming. It was a lot of fun but when I came back to blengband it was like hitting a brick wall.
Maybe this sounds familiar to other developers. I'm guessing a lot of the project is in my short term memory and If don't actively work on it, it gets muddy. Doesn't help that my code is poorly commented either.
Anyway, I'm turning back to the art. It's guaranteed that I can get somthing accomplished after x amount of hours, let's hope it gets my mind back in the dungeon.
Comment
Comment