Hmmm. One reason I like the current model is that every class of game data now has an iterator associated; that is, it forrms a normalized relation. I come from databases as much as programming, and this just seems natural to me. Take a look at the lore code to see why this can help.
Z+Angband dev
Collapse
X
-
That looks pretty fancy. I see you've even forked Poschengband? CongratulationsComment
-
I've looked around in Z variants. Poschengband completely replaces Zangband 2.4, just everything is better in Poschengband. It's the "static quest" Z branch.
Zangband 2.7.5 is a different beast though and Z+Angband has continued development on that version. This looks like the branch with the promise for a true random wilderness and dynamic interesting quests. So it makes sense to continue development on Z+Angband.
Zangband and Z+Angband only have sound support for Amiga and Mac Carbon. Oh Amiga, good memories there. Sound and music don't work, this needs SDL mixer code for modern sound support.
ZangbandTK is interesting in that it has all game commands and options in window menus. I haven't seen that in any other variant yet. That's very useful for feature discoverability.Comment
-
I'm really enjoying the discussion of the code and potential directions of a new Z+Angband project.
2.7.5 was the definitive return to the soul of zang for me which Z+angband has continued. Quests and randomisation remain key for me on this variant.
That will explain why I was having trouble with the Win and Dos build in enabling the sound+music, thanks for highlighting.
Lua in newest TOME - I haven't considered that.. Nice comment by droof about migrating and syncing for a v3.5 for easier future coding concept.
Fun and fresh while being authentic to vanilla zang is key for me.
I've looked around in Z variants. Poschengband completely replaces Zangband 2.4, just everything is better in Poschengband. It's the "static quest" Z branch.
Zangband 2.7.5 is a different beast though and Z+Angband has continued development on that version. This looks like the branch with the promise for a true random wilderness and dynamic interesting quests. So it makes sense to continue development on Z+Angband.
Zangband and Z+Angband only have sound support for Amiga and Mac Carbon. Oh Amiga, good memories there. Sound and music don't work, this needs SDL mixer code for modern sound support.
ZangbandTK is interesting in that it has all game commands and options in window menus. I haven't seen that in any other variant yet. That's very useful for feature discoverability.Comment
-
Lua is overrated, IMO. Yeah it allows flexibility in spell set, but 8t turns out that the flexibility is almost never needed. When a spell can be described by a line or two in a text file, and there are a h7ndred or more spells, adding even a small amount of boilerplate multiplies fast. Text file+simple parser really is considered a software best practice. It's right there in all the textbooks.Comment
-
Lua is used by game engines. Scripted story sequences, scripted levels, complex quests, new game modules, total conversions and in case of Doom 3 I think it was even used for artificial intelligence monster behaviour.
But Angband is a game, not a game engine. It's not like anyone could write a total conversion mod in Lua for Angband, instead that gets hacked into the code in C.
If Angband was really a game engine and Vanilla Angband was a Lua module for the game, then that would a different story. That would be like the T-Engine.Comment
-
Lua is used by game engines. Scripted story sequences, scripted levels, complex quests, new game modules, total conversions and in case of Doom 3 I think it was even used for artificial intelligence monster behaviour.
But Angband is a game, not a game engine. It's not like anyone could write a total conversion mod in Lua for Angband, instead that gets hacked into the code in C.
If Angband was really a game engine and Vanilla Angband was a Lua module for the game, then that would a different story. That would be like the T-Engine.Comment
-
[1] ... and you're absoultely, right T2/Angband was not using Lua as a higher level scripting over a high-perf C engine. It was just "let's write C in Lua" (T2) or "let's use Lua to avoid doing a parser for dice-arithmetic" (Angband)... which is pointless and awful.Comment
-
Oh gods yes. The way it was done in 3.0 was WORSE than the initial and temporary hack of turning it into a giant case statement in V3.1. It just added a second language AND extra boilerplate. Parsing text files is so much cleaner all around. So is generating code with CPP where necessary.
Comment
-
I think the C language is a barrier for new developers to try working on their ideas for a new variant. It was for me back in 2013. Maybe Lua isn't a good language either for creative feature coding, but there are plenty of alternatives. For example, Python is gaining popularity and is replacing Lua in some game engines and IoT platforms. Python is also used for education and serious work.
If we want variants that offer something unique and different from what we've seen before, then that requires coding and changes to core functionality. Text files only extend or theme what's already in place.
With text parsers maybe we can get new stories in D&D. With scripting, someone should be able to turn D&D into Pathfinder.Comment
-
Speaking as someone who tried to rewrite Angband in Python, more or less: it is a ton of work. Especially if you want to do a clean rewrite, rather than just re-implement C code in a different language.
Ultimately, it turned out that I don't care that much about Angband that I was willing to see the project through. I still feel bad for the people here that contributed to the project, only to see it die on the vine...Comment
-
A much easier route is to start by making small changes, getting more ambitious as you better understand the language and the codebase. If starting from current V, my ongoing efforts to move stuff from C code out to the text datafiles should help with that.
Note that I'm not suggesting no change for the sake of no change. It's just that I've been doing Angband coding for 12 years or so now - starting from pretty minimal knowledge of C. Feel free to ignore me though - learning from one's own mistakes is usually more effectiveOne for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.Comment
Comment