PDA

View Full Version : semi-psuedo variants for non-programmers


will_asher
May 16, 2007, 05:50
I am not a programmer, but like other people, I also like to make my own version of things. I know most of my game-designing ideas will remain as they are -daydreams, but I recently discovered how easy is it to edit certain things in the game using the text files in the 'edit' subfolder. So I am in the process of making my own semi-psuedo variant of Angband. Obviously, I can't change a lot without knowing the programming language (I don't even know what language Angband is written in), but I'm thankful to whoever created the edit subfolder for making me be able to change what I can change. I have a couple questions about doing this:

1>Would it be against copyright rules to redistribute the changed text files as a semi-psuedo variant?
(I wouldn't expect many people to be interested in something like this anyway, but I'd like to be able to share it in case anyone is interested.)

2>Should there be a new section of the Angband ladder on this site for
dumps from this type of personal variant? (It wouldn't fit on the main ladder when you can (for example) make Ringil appear on level 1 with rareness 1 if you wanted to.) 'cause I'd still like to be able to post dumps even though these wouldn't fit in the main ladder.

3>Is it possible or too much to ask for someone nice who knows how to program to make it so we can change more types of things in the text files in that folder?

thanks

Will

PS: I somlemnly swear not to post such dumps on the main ladder, I realize that that wouldn't be right. I made a separate set of folders for my edited version, so I still have the unchanged version also.

pav
May 16, 2007, 10:01
You can redistribute your modifications under same license as the original files are (which I imagine is Moria license).

You can't change the variant name as reported in the dump from edit files.

GSN
May 16, 2007, 12:53
If you can take the time, learn lua. With some variants you can do much more than is allowed by the /edit files, and they are pretty limited in possibilities. You have the most elbow room in r_info, and the least in k_info and f_info. You cannot add new kinds of objects or new potion/wand/rod/staff effects, for example.

pav
May 16, 2007, 14:16
If you're to learn Lua, you might as well just learn C.

GSN
May 16, 2007, 14:23
Learning C is not enough, however, to compile Angband; you must also have a grasp of your operating system to know which libraries must be installed etc.

pav
May 16, 2007, 14:56
I'd say learning C is the hardest part of it, still :)

andrewdoull
May 16, 2007, 15:21
If you can take the time, learn lua. With some variants you can do much more than is allowed by the /edit files, and they are pretty limited in possibilities. You have the most elbow room in r_info, and the least in k_info and f_info. You cannot add new kinds of objects or new potion/wand/rod/staff effects, for example.

Except in Unangband. And possibly some other variants... I seem to remember Kamband, or Cthangband having something similar.

Andrew

Big Al
May 17, 2007, 03:19
3>Is it possible or too much to ask for someone nice who knows how to program to make it so we can change more types of things in the text files in that folder?It's certainly possible to move more stuff to edit files, however the more important question is, what would you like to see there? I can't imagine that there is a lot more that would efficiently be placed in the edit files. Stuff like spells and such need to coded by hand and wouldn't really work.

I should not to difficult to modify some stuff without extensive programming knowledge; for example, if you want to add a new spell, just look through the code and find all the places where spells are referenced; do some copy and pasting and a bit of editing and you have a new spell, etc.

andrewdoull
May 17, 2007, 12:10
It's certainly possible to move more stuff to edit files, however the more important question is, what would you like to see there? I can't imagine that there is a lot more that would efficiently be placed in the edit files. Stuff like spells and such need to coded by hand and wouldn't really work.

I should not to difficult to modify some stuff without extensive programming knowledge; for example, if you want to add a new spell, just look through the code and find all the places where spells are referenced; do some copy and pasting and a bit of editing and you have a new spell, etc.

You can do this in edit files: for instance, in Unangband, its quite possible to define a new spell effect, such as a staff of Perilous summoning, which clones all monsters in line of site, by doing the following in spell.txt:

N:344:Perilous Summoning
A:55:33:1
B:LOS:CLONE


and object.txt



N:158:Perilous Summoning
G:_:w
I:55:33:0
W:10:0:50:0
A:10/1:50/1
P:0:1d6:0:0:0
Y:15:2

http://groups.google.co.uk/group/rec.games.roguelike.angband/msg/61536640abd890fa

Andrew

will_asher
May 17, 2007, 21:24
I looks like I should be editing Unangband instead of vanilla to be able to do more with the edit files. Last time I played Unangband it still had some nasty bugs, so I gave up on it for awhile. Maybe I'll download the most recent version and edit that instead.

About other things I'd like to be able to change in the txt files, I didn't have anything complicated in mind. Just things like being able to make new slays for new types of monsters I'm adding, and make certain monsters of different types appear together. (I wanted to add Haradrim and make them always appear with mumaks). And make new vulnerabilities, currently, HURT_LITE, and HURT_ROCK are the only ones. Is there a way to make monsters more vulnerable to certain elements or types of weapons?
With Unangband being able to edit spells, I'd make new summon spells for particular types of monsters which don't have a spell to summon them. If I could, I'd also had monster spells like curse (opposite of scroll of blessing) and hallucenate.

Whatever I just can't do without coding is okay, I'd just want to know how much I am able to do without coding.

Also noticed the lurker above looks exactly like the floor. I never noticed that before because when you have graphics turned on, it has a picture for the lurker above. Why does it have a picture for it when you're not supposed to be able to see it?

Also again, there's a few flags in the monster txt file I was wondering what they do:
F:POWERFUL
F:ESCORTS (there's an ESCORT flag, so why an ESCORTS flag?)
F:STUPID

Those were the only three I wasn't able to figure out what they do.

andrewdoull
May 17, 2007, 21:58
I looks like I should be editing Unangband instead of vanilla to be able to do more with the edit files. Last time I played Unangband it still had some nasty bugs, so I gave up on it for awhile. Maybe I'll download the most recent version and edit that instead.


I suggest you wait for a more stable version. I've been spending a lot of time on the existing work in progress version and should be moving to beta in the next month or so.


About other things I'd like to be able to change in the txt files, I didn't have anything complicated in mind. Just things like being able to make new slays for new types of monsters I'm adding, and make certain monsters of different types appear together. (I wanted to add Haradrim and make them always appear with mumaks). And make new vulnerabilities, currently, HURT_LITE, and HURT_ROCK are the only ones. Is there a way to make monsters more vulnerable to certain elements or types of weapons?

All of the requests you are making are unlikely to be editable in monster files. I could see a number of ways of making some of them, but basically, whenever you add a new flag, you need to add code.


With Unangband being able to edit spells, I'd make new summon spells for particular types of monsters which don't have a spell to summon them. If I could, I'd also had monster spells like curse (opposite of scroll of blessing) and hallucenate.


Unangband already has curse and hallucinate spells ;)

At the moment, in Unangband, you can only define up to 4 ranged spells for monsters, and these take the place of existing monster blows. Unfortunately, these can only really be attack spells e.g. fireball etc. I'm have a plan for monster 'spellbooks' but these won't be implemented for a while.

You could easily add scrolls/staffs of summoning various types of monsters.


Whatever I just can't do without coding is okay, I'd just want to know how much I am able to do without coding.

Also noticed the lurker above looks exactly like the floor. I never noticed that before because when you have graphics turned on, it has a picture for the lurker above. Why does it have a picture for it when you're not supposed to be able to see it?

Also again, there's a few flags in the monster txt file I was wondering what they do:
F:POWERFUL
F:ESCORTS (there's an ESCORT flag, so why an ESCORTS flag?)
F:STUPID


Powerful monsters have more poweful breath weapons, and higher damage caps on their breath weapons, in a lot of variants. Vanilla - I'm not 100% on, but its breath weapon related.

Escorts forces all escort monsters to have the FRIENDS flag, even if only some would normally not. (e.g. for an orc unique with ESCORTS, they'll have orc shamans appearing in a group as well).

Stupid means the monster doesn't make intelligent decisions about what spells to cast. Again, this has much more impact on variants, than in vanilla.


Those were the only three I wasn't able to figure out what they do.

I highly recommend you download the Angband source code and start reading. Its very easy to understand, even if you don't intend to change anything. I wouldn't make the same recommendation about Unangband at the moment.

Learn to use tools like grep to search files. Look at defines.h which sets up all the flag definitions. I highly recommend it.

Andrew

will_asher
May 29, 2007, 04:43
I looked at the defines.h file like you suggested and I found some monster and monster spell flags that are unused but might be useful:

DROP_USEFUL (don't know what this does)
FRIEND (start out in pairs)
HURT_FIRE (hurt extra by fire)
HURT_COLD (hurt extra by cold)
RES_NETH
NO_STUN (can't be stunned, I didn't think monsters could be stunned anyway)

and these monster spells: BR_MANA | BA_MANA | BA_DARK | BO_POIS

Would these work if I used them in monster.txt? If so, do you know what the DROP_USEFUL and NO_STUN flags do? (I'm assuming the NO_STUN does nothing in the current version) I would specifically like to use the HURT_FIRE and HURT_COLD ones if they'd work.

I didn't find anything else in the define.h file that I would know how to do anything with.

thanks

Will

andrewdoull
May 29, 2007, 10:48
I looked at the defines.h file like you suggested and I found some monster and monster spell flags that are unused but might be useful:

DROP_USEFUL (don't know what this does)
FRIEND (start out in pairs)
HURT_FIRE (hurt extra by fire)
HURT_COLD (hurt extra by cold)


None of the above have been implemented in code, so they won't work. They're just ideas sketched in by one or other maintainer.


RES_NETH
NO_STUN (can't be stunned, I didn't think monsters could be stunned anyway)

and these monster spells: BR_MANA | BA_MANA | BA_DARK | BO_POIS


I don't think BR_MANA has been implemented (I could be wrong), but these other flags have. Yes, monsters can be stunned... its quite powerful.


Would these work if I used them in monster.txt? If so, do you know what the DROP_USEFUL and NO_STUN flags do? (I'm assuming the NO_STUN does nothing in the current version) I would specifically like to use the HURT_FIRE and HURT_COLD ones if they'd work.

I didn't find anything else in the define.h file that I would know how to do anything with.

thanks

Will


Andrew

Psi
May 29, 2007, 11:21
Yes, monsters can be stunned... its quite powerful.

Indeed, in FA I kept Morgoth stunned for almost the entirety of the final battle. Made life a *lot* easier.

pav
May 29, 2007, 11:23
Ey and NPP have elemental vulnerabilities for monsters (HURT flags). It's quite nice that you can damage ice elemental more with fire wands...

takkaria
May 29, 2007, 13:12
HURT_FIRE (hurt extra by fire)
HURT_COLD (hurt extra by cold)

I'll see what I can do about these in the next version. (No promises, though.)

andrewdoull
May 29, 2007, 13:31
Ey and NPP have elemental vulnerabilities for monsters (HURT flags). It's quite nice that you can damage ice elemental more with fire wands...

I don't necessarily agree with HURT flags for monsters. It makes it harder to balance the overall monster power. I know that's why they were not implemented in Angband for so long...

Andrew

will_asher
May 29, 2007, 23:38
I don't necessarily agree with HURT flags for monsters. It makes it harder to balance the overall monster power. I know that's why they were not implemented in Angband for so long...

I wouldn't think these flags would make much balance difference unless you're a mage or ranger with the bolt spells, because people don't usually carry around wands or rods of fire and cold. Occationally I do, but never more than one stack, so I'd either only have fire or cold (or elec or acid) but never more than one of those.

With some monsters it would just make good sense that they be damaged extra by certain elements, like ice elementals and zombies (but definetly not all undead) by fire, fire elemenals by cold, iron golems by acid, and the killer trees that I'm adding should be damaged extra by fire and lightning.

Will

Big Al
May 30, 2007, 03:15
I wouldn't think these flags would make much balance difference unless you're a mage or ranger with the bolt spells, because people don't usually carry around wands or rods of fire and cold. Occationally I do, but never more than one stack, so I'd either only have fire or cold (or elec or acid) but never more than one of those.I think that this would encourage people to carry around more of these types of items - reducing the amount of 'junk' items in the game. If 10-25% of the monsters were vulnerable to certain attacks, it would make it (more) worthwhile to figure out and exploit monster weaknesses - resulting in more varied strategy.

andrewdoull
May 30, 2007, 13:27
With some monsters it would just make good sense that they be damaged extra by certain elements, like ice elementals and zombies (but definetly not all undead) by fire, fire elemenals by cold, iron golems by acid, and the killer trees that I'm adding should be damaged extra by fire and lightning.


But no undead are immune to fire anyway at the moment... so fire will always be effective against them.

Andrew

will_asher
June 11, 2007, 22:32
I'm putting in a few new races, but I can't figure out how to correctly edit the p_hist file. Can someone tell me how?

aeneas
June 12, 2007, 02:35
I wouldn't think these flags would make much balance difference unless you're a mage or ranger with the bolt spells, because people don't usually carry around wands or rods of fire and cold. Occationally I do, but never more than one stack, so I'd either only have fire or cold (or elec or acid) but never more than one of those.

With some monsters it would just make good sense that they be damaged extra by certain elements, like ice elementals and zombies (but definetly not all undead) by fire, fire elemenals by cold, iron golems by acid, and the killer trees that I'm adding should be damaged extra by fire and lightning.

Will

An awful lot of things about Angband don't make sense. It's really a very abstract game, and if you made it make sense I'm not sure you'd still have a *band (it seems a bit odd that a sleeping orc can block a passage that is wide enough fo a Wyrm to pass). When good sense and game balance come into conflict, game balance should win out, IMHO.

It wouldn't make much difference to the balance of V if you made the monsters you list vulnerable to certain elements (your trees I don't know about) as none of them are very significant adversaries. But you have to be careful with things like this. Elemental Wyrms seem like a good candidate for vulnerabilities, or at least a sensible one, but they are actually already way too easy to kill (even more so in NPP with attenuation and easily available branded ammo) given the quality of their drop. One very effective algorithm for winning V reasonably quickly is to drop to Wyrm territory as fast as you dare and just hunt Wyrms. The main danger is the _other_ nasty stuff at those depths- the Wyrms themselves are pushovers even if you're quite far out of depth, as long as you have a few requisites.

It's also worth considering that branded ammo is already one of the most unbalanced things in V (the ridiculousness of high level rangers is just a side effect of this- as an aside, I don't think that rangers are nearly as nerfed in NPP as was intended, at least not with store services on). Any creature that is extra vulnerable to branded ammo is going to go down very quickly to anyone with a decent shooter and a good supply of that ammo.

Big Al
June 12, 2007, 04:38
I'm putting in a few new races, but I can't figure out how to correctly edit the p_hist file. Can someone tell me how?

As far as I can figure out, here are the steps to add a new race:

1. Edit limits.txt, and change the "M:P:xx" line to increase the number of races.

2. Edit p_race.txt and add the new race info. (I'm assuming you know how to do this).

3. Edit p_hist.txt file: Each line is of this form:N:1:2:10:25
D:You are the illegitimate and unacknowledged childThe space in order are: the entry index: the entry index to go to next: the relative rarity of the entry: the bonus to social class.


When angband is writing the player histories:
a. It looks at the first entry of the "I:" line in p_race.txt to find which entry in p_hist.txt to start at. (eg. for humans, it starts at entry 1, elves at entry 5, etc.)

b. It finds the appropriate entry in p_hist.txt and randomly picks one of the choices (eg. for humans it picks one of "You are the illegitimate and unacknowledged child", "You are one of several children" etc.). It then looks at the second space in the "N:" line and goes to that entry, picks one of the choices there, goes to the next entry, etc, until it tries to go to entry zero, which indicates for it to stop.

The way it picks with message to display is: roll a random number between 1 and 100, then compare it to the third space in each of the "N:" line for that entry. Eg. for the first entry, the third spaces are 10, 20, 95 and 100. So, if the rolled number is between 1 and 10, you get "illegitimate and unacknowledged child", 11 and 20 you get "illegitimate but acknowledged child", 21 and 95, you get "You are one of several children", or from 96 to 100 you get "You are the first child".

c. It adds the fourth space in the entry you picked to your social class, then subtracts fifty. (eg. for entry 1, you either add -25, -15, -5 or 0 to your social class (for "illegitimate and unacknowledged", "illegitimate but acknowledged", "one of several children" or "first child of" respectively.) It does this for all the parts of the sentence to come up with your final social class, which affects your starting gold. The social class is also randomly varied by up to 3 points and capped between 1 and 100.

4. edit cost_adj.txt for the new races.

(5. possibly edit shop_own.txt to include the new races as shopkeepers.)

p_hist.txt appears to be just about the only edit file that doesn't have an explanation line in the header comments explaining what all the number mean. Hope that helps.

will_asher
June 12, 2007, 05:48
Thanks, that helps


p_hist.txt appears to be just about the only edit file that doesn't have an explanation line in the header comments explaining what all the numbers mean.

..that's why I couldn't figure it out