You are. Go on in there and get your hands dirty! It's a lot of work, but it's not impossible by any means.
Z+Angband dev
Collapse
X
-
Questing forward!
But I'm working on four games atm for a competition this summer. My programming skills have suffered.
I'll do what I can, thinking starting from 2.7.5, learning from z+ and independent room generators or multiple independent AI.
As droof said, keep the exploration, randomisation, flexible quests, unique monsters/allies + items (Item sets poss).Comment
-
What I did to increase the number of quests and casino in town is edit wild2.c lines 142, 148 and 149. Changing the last number to a low number like 2. But I can only find the city-bound quest log ('M' map and 'c' castle keys inside a city), that only shows quests from that city inside the city. That's not useful for keeping track of quests.
For the world, Zangband creates a 2d height map, population map and law map in wild1.c. For all three, it copy / pasted a diamond-square algorithm to create a plasma fractal shape for each map.
The law map is used to decide on spawned monster levels in the wilderness. Since that map is also a plasma fractal, there is no linear level progression in the Zangband wilderness. This makes the wilderness always dangerous to low level characters.
For a more linear level progression, I think a linear radial gradient makes more sense for the law map. That way, the player can progress from the low-level center wilderness to the high-level corners of the wilderness.
Googling on the diamond-square algorithm got me started on terrain generation. I ported the 2d simplex noise algorithm along with the fractal brownian motion algorithm to get a configurable wilderness in lua from C, independent from Zangband. Link
I'm also thinking about mixing a random voronoi diagram with the world to create distinct level-bound flat law areas and a random biome for each area, like a desert, forest, swamp etc. The cities could be placed on the random 2d voronoi points, around which the diagram is generated. World of Warcraft is structured like that too, so this would be the procedural generated version of that.
I wanted to hook the lua wilderness code into Zangband, but since Lua 4 is hardcoded into Zangband and needs major rewriting for Lua 5.3, I can't easily plug it in. Maybe I can more easily use the wilderness code in Vanilla Angband once I find the correct function that's responsible for the town map terrain placement.
=== edit
I updated my script to include a random Voronoi map and 7 ascii biomes (forest, desert, swamp, vulcano, ice, tundra, taiga):
Last edited by droof; March 17, 2018, 11:06.Comment
-
Nice work, how is it going with linear radial gradient and LUA? I agree that wilderness code in Vanilla Angband is probably the most efficient approach..
Any other ideas you are considering?
What I did to increase the number of quests and casino in town is edit wild2.c lines 142, 148 and 149. Changing the last number to a low number like 2. But I can only find the city-bound quest log ('M' map and 'c' castle keys inside a city), that only shows quests from that city inside the city. That's not useful for keeping track of quests.
For the world, Zangband creates a 2d height map, population map and law map in wild1.c. For all three, it copy / pasted a diamond-square algorithm to create a plasma fractal shape for each map.
The law map is used to decide on spawned monster levels in the wilderness. Since that map is also a plasma fractal, there is no linear level progression in the Zangband wilderness. This makes the wilderness always dangerous to low level characters.
For a more linear level progression, I think a linear radial gradient makes more sense for the law map. That way, the player can progress from the low-level center wilderness to the high-level corners of the wilderness.
Googling on the diamond-square algorithm got me started on terrain generation. I ported the 2d simplex noise algorithm along with the fractal brownian motion algorithm to get a configurable wilderness in lua from C, independent from Zangband. Link
I'm also thinking about mixing a random voronoi diagram with the world to create distinct level-bound flat law areas and a random biome for each area, like a desert, forest, swamp etc. The cities could be placed on the random 2d voronoi points, around which the diagram is generated. World of Warcraft is structured like that too, so this would be the procedural generated version of that.
I wanted to hook the lua wilderness code into Zangband, but since Lua 4 is hardcoded into Zangband and needs major rewriting for Lua 5.3, I can't easily plug it in. Maybe I can more easily use the wilderness code in Vanilla Angband once I find the correct function that's responsible for the town map terrain placement.
=== edit
I updated my script to include a random Voronoi map and 7 ascii biomes (forest, desert, swamp, vulcano, ice, tundra, taiga):
Comment
-
Zangband 2.7.5pre edit
Dear Droof, how are the tweaks going. I'm going to apply your Map and quests edit to the 275beta I have here. And try for new quest descriptions.
Also wanted to offer this roguelike megapack I've found on archive.org which could be handy
Comment
-
Progress is slow because I'm doing too many things. Also I don't want to code too much in my spare time. I prefer to post when I have a working result.
I'm working on a next version of Friendband, partially fixing GCU colors and other tweaks. GCU colors already were broken in Un, I made it worse with Friendband and now I'm at a point where just some inventory colors are wrong and I lost some time trying to fix that without result. Un uses unsupported GCU colors to decide on trap behavior, so that's a thing too.
I'm experimenting with different vegetation models to improve the lua world generator. At least I should keep track of matching biome temperatures, so that an ice biome is not directly connected to a volcano biome.
I've experimented with different law map shades in zangband, but it's still unclear how the law map values exactly correlate to monster levels. The monsters still jump in level too much. Also, it's always unclear which direction in the world leads to lower law values and are more dangerous, so discovery difficulty remains random even with a linear law gradient.
The Zangband world needs an obvious visual indication when the player moves to more dangerous zones, other than accidentally running into too high monsters levels and running the other way, hopefully in the right easier direction. I could dump the current law value of the current player position and the direct north/west/east/south law values, but that's a technical solution and not a proper game design solution.
With voronoi zones I could make entire areas the same law value and generate easier zones and more difficult zones, but that messes up city placement that relies on multiple high law zones across the world. For a simpler solution, I could use multiple ground terrain colors to indicate difficulty level of the ground roughly by color and make ground difficulties more naturally visual in the world that way.
Finally, I need to use some time to add a new global quest tracking term to Zangband. With many quests generated, that's mandatory.
Once I have some good Z results, I'll be sure to post it here with patches starting from debian Z 275.
I haven't made any time to inject the lua wilderness into vanilla angband yet. Maybe after I round up one of the other projects.Comment
-
Forging ahead
I know what you mean, I've just finished tweaking 8 games for a competition on atari I'm planning this summer. So now I can focus a little more on zang and phantasy star 1 VR. Let me know your progress so I'm not repeating your work.Comment
Comment