PDA

View Full Version : iVanilla - no selling, ranged trap det, spell balances etc.


ewert
October 7, 2010, 14:40
Okay, messing around with github a lot still, but think now have gotten the hang of it for branching etc. enough to work with it somewhat okay. Did delete it a few times to start from clear to figure things out. =P

http://github.com/ewert/angband/tree/ivanilla

I'm trying to upload a working .exe there so people can easily test it, but no luck with Win7 / Opera or Win7 / IE. Beats me why not, flash or http version of uploading, no dice.

Anyways, currently there is no selling option made. It replaces no_stores, takes away d/s option from all but home in stores, and increases gold drops based on vague "I think sort of like this could work"-way and one nosell/nobuy character I played. That char had plenty of gold in the end, so I increased gold drops more at low levels in a non-linear curve...

I can test this version as I finally got a working branch of the master made, so will move on to spell balances next and then ranged trap detection.

Magnate
October 7, 2010, 15:28
Congrats! You beat me to posting the first branch with gameplay changes - serves me right for caving in and getting Civ V!!

Therem Harth
October 7, 2010, 17:18
I like this. It looks more interesting and much less hacky than my own attempt.

Suggestions for the future...

- An "always unusual rooms" feature would be cool. (I just implemented a very primitive version in Strawberry, and it kind of works - generates pits, nests, or lesser vaults on almost every level.)

- Vanilla seems to lack crowd combat for warriors. Adding that a la O would be nice. Maybe for rangers and paladins too, at a higher level?

ewert
October 7, 2010, 18:36
I think dungeon and room generation will go into more complex code mechanics, I have only a rudimentary straightforward type of coding knowledge in C so out of my depth. Crowd combat will be part of fractional blow systems for melee guys (hits dont expend full 100 energy if monster dies beforehand, I checked it out once and I could hack it, but ... most want fractional blows to also look in the low stat problems where the jump from 1 hit to 2 is too big a jump).

Also I will streamline pseudo/id axis as well based on classlevel, ending with instant id on pickup in the end ...

Derakon
October 7, 2010, 18:43
For fractional blows, just make every melee attack only use one blow and only use as much energy as max (100, 100 / (STR mod + DEX mod) * (weapon weight mod))

fizzix
October 7, 2010, 19:06
For fractional blows, just make every melee attack only use one blow and only use as much energy as max (100, 100 / (STR mod + DEX mod) * (weapon weight mod))

I think there's a slightly better approach which is to 'attack until either you have used a full turn worth of blows or you are disturbed.' You can even change it to attack until disturbed and completely eliminate hack and back / pillar dancing tactics. Having to reattack after each blow is a *ton* of extra keystrokes.

d_m
October 7, 2010, 19:20
I think there's a slightly better approach which is to 'attack until either you have used a full turn worth of blows or you are disturbed.' You can even change it to attack until disturbed and completely eliminate hack and back / pillar dancing tactics. Having to reattack after each blow is a *ton* of extra keystrokes.

I don't think eliminating hack and back for melee but leaving it for ranged is a good idea.

I think a simple implementation is best: if you have 4 blows/round, you attack until you've used 4 blows or until your target is dead. Then you lose (# blows used) / 4 of the energy you'd use for a full round of attacks.

I can imagine fancier approaches, but I think that one would help make melee more interesting without requiring too much revision.

Derakon
October 7, 2010, 19:22
sCthangband had one-move one-blow fractional blows, and I don't remember it being a big problem movement wise. But yeah, that was mainly meant to be a simple "how to calculate energy required for a single blow" expression. What you do with it after than is up to you.

Do we have any plans to move monsters to fractional blows too? sCthangband had that; IIRC how it worked was that monsters had a movement speed and an attack speed, and then a selection of possible melee attacks they could use, which were selected at random. So a nine-headed hydra would have an attack speed of 9x base and a movement speed of 2x base, and its bites would randomly burn or poison.

d_m: the issue I have with your approach is that it leaves in the massive jump in power between 1 blow/round and 2 blows/round. Ideally you should be able to use any amount of energy per blow from e.g. 150 (for a level-1 mage trying to use Grond) to 12 (for the warrior with ridiculously lucky randarts).

d_m
October 7, 2010, 19:48
d_m: the issue I have with your approach is that it leaves in the massive jump in power between 1 blow/round and 2 blows/round. Ideally you should be able to use any amount of energy per blow from e.g. 150 (for a level-1 mage trying to use Grond) to 12 (for the warrior with ridiculously lucky randarts).

Yeah, I guess I had forgotten that eliminating the break points was the thing people wanted. You're right that my plan doesn't help that at all. The thing I was trying to do was make melee a little more flexible (a la archery) at dealing with many small targets.

PowerDiver
October 7, 2010, 20:13
I don't think eliminating hack and back for melee but leaving it for ranged is a good idea.

I think a simple implementation is best: if you have 4 blows/round, you attack until you've used 4 blows or until your target is dead. Then you lose (# blows used) / 4 of the energy you'd use for a full round of attacks.

IMO when you attack, you should continue attacking until disturbed. The same for archery [with the same ammo]. If you do not have enough energy left, that counts as a disturb.

You need to have both energy over 100 and energy >= max {all monsters' energies} for it to be your turn.

So suppose you have 4 blows, which means 25 energy per blow. If you somehow start at 130 energy, you get a blow and are down to 105 energy. Then, if 105 is high enough you get another blow immediately, else some monster gets its turn. Repeat until everyone is below 100, and then increment the game turn counter and add energy and continue.

This means that with 4 blows against a double speed opponent, you generally alternate two blows in between its turns rather than getting 4 blows and then it getting two moves.

There are obviously lots of approaches with different plusses and minuses. I'm not saying this is necessarily best, but it is my favorite.

Magnate
October 7, 2010, 20:46
IMO when you attack, you should continue attacking until disturbed. The same for archery [with the same ammo]. If you do not have enough energy left, that counts as a disturb.

You need to have both energy over 100 and energy >= max {all monsters' energies} for it to be your turn.

So suppose you have 4 blows, which means 25 energy per blow. If you somehow start at 130 energy, you get a blow and are down to 105 energy. Then, if 105 is high enough you get another blow immediately, else some monster gets its turn. Repeat until everyone is below 100, and then increment the game turn counter and add energy and continue.

This means that with 4 blows against a double speed opponent, you generally alternate two blows in between its turns rather than getting 4 blows and then it getting two moves.

There are obviously lots of approaches with different plusses and minuses. I'm not saying this is necessarily best, but it is my favorite.That's rather lucky for me, since this is how I've started on it ...

Derakon
October 7, 2010, 21:01
How would that scheme handle this situation?

Monster @ 110 energy
Player @ 120 energy with 25 energy cost/blow

Player attacks once. Now has 95 energy. Therefore disturb player; now monster's turn.
Monster casts a spell. Now has 10 energy. Game adds energy to everyone until someone can take a turn => player @ 100 energy, monster @ 15 energy.
Player attacks once. Now has 75 energy. 75 < 100; therefore disturb player. Game adds energy to everyone until someone can take a turn => player @ 100 energy, monster @ 40 energy.
Player attacks once...

In other words, this seems like it would lead to a lot of single blows. I agree that you should need at least 100 energy before you get a turn (otherwise you could do something other than attack and end up with negative energy), but I think you should continue attacking until you have less energy than at least one monster, or attacking again would give you negative energy. The way Eddie wrote it, it sounds like this wasn't what he was thinking of. Or did I misinterpret?

PowerDiver
October 7, 2010, 21:40
How would that scheme handle this situation?

Monster @ 110 energy
Player @ 120 energy with 25 energy cost/blow

Player attacks once. Now has 95 energy. Therefore disturb player; now monster's turn.
Monster casts a spell. Now has 10 energy. Game adds energy to everyone until someone can take a turn => player @ 100 energy, monster @ 15 energy.
Player attacks once. Now has 75 energy. 75 < 100; therefore disturb player. Game adds energy to everyone until someone can take a turn => player @ 100 energy, monster @ 40 energy.
Player attacks once...

In other words, this seems like it would lead to a lot of single blows. I agree that you should need at least 100 energy before you get a turn (otherwise you could do something other than attack and end up with negative energy), but I think you should continue attacking until you have less energy than at least one monster, or attacking again would give you negative energy. The way Eddie wrote it, it sounds like this wasn't what he was thinking of. Or did I misinterpret?

When energy is less than 100, the player doesn't move yet, but isn't disturbed either. He just keeps on acting, the way you keep on acting turn after turn as you run.

I guess I screwed up my explanation. I was thinking of multiple ways to describe it and got them confused together. Sorry about that.

Magnate
October 7, 2010, 22:30
When energy is less than 100, the player doesn't move yet, but isn't disturbed either. He just keeps on acting, the way you keep on acting turn after turn as you run.

I guess I screwed up my explanation. I was thinking of multiple ways to describe it and got them confused together. Sorry about that.So when does @ stop acting? If not disturbed by external events (e.g. monster dying), is it when his energy is less than his energy required for another blow? That's the only way this approach makes sense to me, otherwise you dramatically weaken the first attack against a sleeping monster ...

PowerDiver
October 7, 2010, 22:52
So when does @ stop acting? If not disturbed by external events (e.g. monster dying), is it when his energy is less than his energy required for another blow? That's the only way this approach makes sense to me, otherwise you dramatically weaken the first attack against a sleeping monster ...

You are right that this approach does dramatically weaken against a sleeping monster at the moment. In the long term, I think the fix to that is to make monsters awaken with -100 energy. The current method to hack so they do not attack the first move when they wake needs to be redone, unless I am confused how it works which is a possibility.

More generally, this system favors the defending monster. On average, against equal speed, if a monster steps next to you and you attack you will get half your blows before you start alternating its turn then your attacks. I think this seems fair.

One way I think this should be improved is that when waiting, with '5' or rest or search, you should stay at 99 energy. If you do that, then when the monster steps next to you you will generally start with a full set of blows.

ewert
October 8, 2010, 07:59
I don't think eliminating hack and back for melee but leaving it for ranged is a good idea.

I think a simple implementation is best: if you have 4 blows/round, you attack until you've used 4 blows or until your target is dead. Then you lose (# blows used) / 4 of the energy you'd use for a full round of attacks.

I can imagine fancier approaches, but I think that one would help make melee more interesting without requiring too much revision.
This is the method I figured would be a nice quick hack back when I looked at melee code. But coding wise it would actually be "lose full round energy, if didn't use all attacks give back some", but yeah in essence like this. I also dislike single hit keypresses for a couple of reasons, one being more keypresses and two being the "problem" shown by extra shots (less risk vs quick monsters).

ewert
October 8, 2010, 08:02
So suppose you have 4 blows, which means 25 energy per blow. If you somehow start at 130 energy, you get a blow and are down to 105 energy. Then, if 105 is high enough you get another blow immediately, else some monster gets its turn. Repeat until everyone is below 100, and then increment the game turn counter and add energy and continue.
That approach is definitely intriguing as well.

ewert
October 8, 2010, 08:11
Annnnywayyyys ... as fractional blows is probably not on my nearby to-do list (as Magnate is working on it, I might do the hack if I run out of things to do), lets leave the frac blows talk. ;)

I made some spell changes now:

Ball spells do dmg based on max radius and distance, so that it is a linear efficiency: 2 radius -> 100%, 66%, 33%.

The top end spells for mage and priests were changed:
Mana storm is now radius 4, and due to the above ball spell change, it is now a pretty darn massive area killer. Pits of stuff beware. Also changed fail/manacost to get rid of the pesky "max lvl max int and still fail wtf?"

Annihilation is gone, cheers! Say welcome to Smite, radius 0 ball (so it jumps to intended target). High dmg variance of 5d50 (5 d plvl) and double dmg on evil, so averages at 125 on non-evil and 250 on evil, but yeah can do 10dmg or 500dmg on evil. ;) Very mana friendly. Honestly, does anyone want archery anymore with priests after this? Well against non-evil maybe.

These are totally untested at the moment. I think I will do the pseudo/id streamlining and unlimited-home options first before playtesting a mage with no-selling, unlimited home, randarts ...

ewert
October 8, 2010, 08:22
I was also thinking about the status effects that maybe uniques could be affected in minor ways with them. Like slow monsters -> -2 speed. Confuse -> spell fail chance and hit rate reduction. Sleep monster -> less chance of using spells / breaths (drowsy and not quite grasping the situation).

If we consider a fight of 10speed vs 10speed, a successful slow would pay off after 5 rounds (100 energy used, 5 hits = 600 energy or 60 turns, vs. initial + 60*8 = 100 + 480 energy or 580 energy). At higher speeds it is less, but fights usually are also longer. Of course Sauron and Morgoth would be totally immune.

Then for the spellbook versions have level based effects, bolt beam ball and finally LoS. A mage clearing a pit -> LoS slow, confuse, manaaaa stoooooooorm! (Lina Inverse FireBall style ;))

Timo Pietilä
October 8, 2010, 09:00
Annihilation is gone, cheers! Say welcome to Smite, radius 0 ball (so it jumps to intended target). High dmg variance of 5d50 (5 d plvl) and double dmg on evil, so averages at 125 on non-evil and 250 on evil, but yeah can do 10dmg or 500dmg on evil. ;) Very mana friendly. Honestly, does anyone want archery anymore with priests after this? Well against non-evil maybe.


How mana friendly? 250 average doesn't beat powerful missiles, but missiles can miss, which is a reason why people might want to use the spell instead. This would be great against evil summoners.

Don't make spells too powerful. Game is a bit too easy as it is, so some balancing act would need to be done too. I find priest spell "clairvoyance" and potions of Enlightenment a bit too powerful as they are now.

I suggest you change those to "map and illuminate entire level", but without item detection. Preferably with not showing the illuminated floor before you actually see it (like already illuminated unseen rooms in mapped area). Make potions of *enlightement* do what plain enlightement does now.

Atarlost
October 8, 2010, 09:02
Unique special effect immunity has always irritated me. It makes a complete mockery of the source material. Sleep doesn't work on Huan. It works on Charcharoth, Morgoth, and indeed on everything with free run of Angband at the time of the quest of the Silmaril. It's possible Glaurung did not have free run of Angband at the time, and of the undead all were either not yet born or already dead. Drauglin and Sauron resisted, but Drauglin is explicitly stated to be less powerful than Charcharoth so for him it can't be full immunity. Demonic uniques including werewolves can be justified in receiving a saving throw, but not immunity. Certainly there's no way to justify Gorbag the Orc Captain being immune to sleep when Morgoth is explicitly vulnerable to it in the source material.

As one of I think five or six spell effects in the source material sleep shouldn't be lame. Gandalf displays something akin to RoP (in Moria against the Balrog and at the gates of Minas Tirith against the WItch King), firebolt (multiple occasions), either magic missile or spear of light (against the nazgul chasing Faramir), illumination (in Moria), and possibly teleport or blink (in escaping the orcs in the pass in The Hobbit, though he fails to use it in the "fifteen birds" incident). Melian and Luthein demonstrate sleep (on Thingol and the entire population of Angband rerspectively). That's all I can come up with. None of those should be lame useless spells.

Timo Pietilä
October 8, 2010, 09:59
Unique special effect immunity has always irritated me. It makes a complete mockery of the source material. Sleep doesn't work on Huan. It works on Charcharoth, Morgoth, and indeed on everything with free run of Angband at the time of the quest of the Silmaril. It's possible Glaurung did not have free run of Angband at the time, and of the undead all were either not yet born or already dead. Drauglin and Sauron resisted, but Drauglin is explicitly stated to be less powerful than Charcharoth so for him it can't be full immunity. Demonic uniques including werewolves can be justified in receiving a saving throw, but not immunity. Certainly there's no way to justify Gorbag the Orc Captain being immune to sleep when Morgoth is explicitly vulnerable to it in the source material.

I think effect power should scale with caster level. Clvl 1 sleep should hardly affect a fly, but clvl 50 sleep should make groups of giants fall to sleep. For game purposes the very high uniques like Morgoth, Sauron, Gothmog, Vecna should be immune or simply too high level to be affected by player spells. Same with slow. Maybe even with fractional slow effect so that if the level difference is high enough and monster doesn't make saving throw that practically paralyzes the foe. Freeze the entire room full of Hummerhorns.

ewert
October 8, 2010, 10:23
(about spell power to Timo)

Yep, I used OoD as comparison for the single target version. It is bit more mana efficient than OoD. Also 250/rnd is only about 80/hit of 75% hit chance 4 hits melee, and 80/hit in the end game is not that much, I'd say average end-game quality weapon (I think 100/hit is a good endgame weapon, and great ones go 120+, even 150+ for superb ones, and then there are the INSANE ones ;)).

The dmg/rnd for both classes with the end-game spells is a bit more with these changes vs. single targets, dmg/mana stayed about same for mages and increased a bit for priests. Mages get a lot more area effect dmg now (comparing farming end game monsters with ball spells vs. melee in corner, that's why I changed it, to promote more heads on spellfights against groups too) though.

The clairvoyance/item detection discussion is a true one, I personally abuse the hell out of ?DetTreasure for example. Overall will prolly aim for changing that stuff after traps are streamlined into more gaming oriented form rather than obsessivecompulsive-press^F form.

Game balance, overall I think monsters damage is fine, but player dmg has creeped up powerwise bit by bit. At some point a simple across-the-board hp increase for monsters might be in order. I'll balance spells at the moment more versus melee and archery than versus monsters.

takkaria
October 10, 2010, 22:25
Okay, messing around with github a lot still, but think now have gotten the hang of it for branching etc. enough to work with it somewhat okay. Did delete it a few times to start from clear to figure things out. =P

http://github.com/ewert/angband/tree/ivanilla

I'm trying to upload a working .exe there so people can easily test it, but no luck with Win7 / Opera or Win7 / IE. Beats me why not, flash or http version of uploading, no dice.

Anyways, currently there is no selling option made. It replaces no_stores, takes away d/s option from all but home in stores, and increases gold drops based on vague "I think sort of like this could work"-way and one nosell/nobuy character I played. That char had plenty of gold in the end, so I increased gold drops more at low levels in a non-linear curve...

I can test this version as I finally got a working branch of the master made, so will move on to spell balances next and then ranged trap detection.

The latest master branch has fixed menus now, you might be interested in knowing.

fizzix
October 10, 2010, 23:16
The dmg/rnd for both classes with the end-game spells is a bit more with these changes vs. single targets, dmg/mana stayed about same for mages and increased a bit for priests. Mages get a lot more area effect dmg now (comparing farming end game monsters with ball spells vs. melee in corner, that's why I changed it, to promote more heads on spellfights against groups too) though.


Mana storm is not good at all for "farming endgame monsters" since it destroys anything on the ground except for artifacts.

camlost
October 11, 2010, 00:09
As one of I think five or six spell effects in the source material sleep shouldn't be lame. Gandalf displays something akin to RoP (in Moria against the Balrog and at the gates of Minas Tirith against the WItch King), firebolt (multiple occasions), either magic missile or spear of light (against the nazgul chasing Faramir), illumination (in Moria), and possibly teleport or blink (in escaping the orcs in the pass in The Hobbit, though he fails to use it in the "fifteen birds" incident). Melian and Luthein demonstrate sleep (on Thingol and the entire population of Angband rerspectively). That's all I can come up with. None of those should be lame useless spells.

Gandalf totally confuses the Trolls.

ewert
October 11, 2010, 10:19
Mana storm is not good at all for "farming endgame monsters" since it destroys anything on the ground except for artifacts.
True ... so soften up with a few mana storms, and finish them off with other ball spells. :P Unless one IS farming for artifacts. ;)

Priests having a better ball spell than mages for farming ... while having LoS spells too ... aaaawww, shucks. *ponderhat*

I'll merge to newest master when I have time, having to work at work sucks. :)

ewert
October 12, 2010, 13:05
Pseudo id seems like a bad joke TBH. Numbers just seem like no planning in them, the formulaes are whacked (p_class.txt "level based improvement" is not level based), every class but mage has improved pseudo but it basically means nothing but that mages have just even worse pseudo id chance ... Prolly most are just stuff that were left behind when pseudo id was different for different classes?

Hrpmh!

Anyways, I'll totally revamp pseudo-id chances, and just straight out remove the improv flag as useless currently. I'll aim at formulas that give warriors pretty much near instant pseudo at clvl30. I was not sure of giving id by pickup after classlevel x (40?), but now that I think about it, only the warrior will really benefit from it due to one less item slot? Right? So I guess I will go ahead with it.

fizzix
October 12, 2010, 13:57
Priests having a better ball spell than mages for farming ... while having LoS spells too ... aaaawww, shucks. *ponderhat*



Yeah, that was where I was getting. Alternatively, possibly with Magnate's changes, priests will have a very rough go in the beginning until they can start killing things with OoD. I'm not sure if they are guaranteed 1 blow per round with heavy weapons as currently.

If you want to even it up, give mages the equivalent of _power in kelek's (instead of bedlam)

ewert
October 12, 2010, 14:21
The latest master branch has fixed menus now, you might be interested in knowing.

Dunno if I messed up something, but can't access birth settings in my compiled version still ...

ewert
October 12, 2010, 14:29
Now how to test my birth_options with birth screen broken, mwahaha ... aww shucks. =P Hmm how to revert spesific commits from the version, hmm ...

ewert
October 12, 2010, 15:19
Reverted back the branch, but extra home not working ...

Hmm ...

ewert
October 12, 2010, 15:36
I'm thinking init1.c is called before birth options are read, so that the OPT(adult_big_home) results in FALSE?

Magnate
October 12, 2010, 20:45
Yeah, that was where I was getting. Alternatively, possibly with Magnate's changes, priests will have a very rough go in the beginning until they can start killing things with OoD. I'm not sure if they are guaranteed 1 blow per round with heavy weapons as currently.All characters get a minimum of one blow per round. In fact, at the bottom end of the scale things are slightly easier than they were before, so you should be able to get a priest starting with 1.2 blows or similar, depending on what you invest in STR and DEX.

Magnate
October 12, 2010, 20:47
I'm thinking init1.c is called before birth options are read, so that the OPT(adult_big_home) results in FALSE?It is - init1.c is before the game has actually finished starting, if you see what I mean. By the time you get to the welcome screen, init?.c have all finished.

ewert
October 13, 2010, 00:43
It is - init1.c is before the game has actually finished starting, if you see what I mean. By the time you get to the welcome screen, init?.c have all finished.
Yep thought that might be the problem. Too bad, as that would have been the easiest way to have extra home space ... Wonder where to change the store pointer stock_size so it gets "fixed" before loading home items etc., so that nothing goes poooof. :P

ewert
October 13, 2010, 09:58
Okay I think I managed to do unlimited home option with quite minimal intrusion. Store init and store loading now sets home to 254 stock size if option is set, just two places so pretty sure can't make it neater at the moment. =P

My initial test char for some reason it didn't work before saving/loading once, changed the syntax in store_init afterwards but didn't test again yes. Will have to test again ...

What would people think if I made detecting objects just give a general "object" marker on the map and item list? Would people still think clairvoyance is too good? Or just downright remove item detection from all but rogues normal spell?

Anyways, no_selling makes me want to hunt down hydrae ... lol. :)

ewert
October 13, 2010, 12:06
Okay now with clairvoyance no longer giving item info, I feel the sudden urge to address level feelings properly. You know, to lessen the exploration of boring levels now that you can't instantly see if there are interesting items. And to know when to !enlight and scourge every corner ... I think having clairvoyance just map&light works wonder on exploration anyways, every room is like a little lottery ticket, is there an item there?

I'm thinking danger, unique and item:
Normal monsters do not give feelings
Pits increase danger feeling (pit spesific msg?)
If any unique is on level, gives a feeling
Artifacts give special feeling, maybe even depending on the power of the artifact?

Now what I'm not sure about:
Should the top 3 weapons give a feeling? I'm definitely hunting for those when deeeeep
As consumables are not so rare, I don't think most non-artifacts need to give any feelings

Overall I think I will also remove the time-out period. Consider it auto-scummer if you have connected stairs. I miss auto-scummer anyways...

buzzkill
October 13, 2010, 12:33
Just an off of top of my head suggestion. Make level feeling specific but absolutely don't provide them immediately upon arrival (determine it randomly or base it upon CHA is you must). Give multiple level feelings. Maybe one for monsters overall, one for unique(s) alone, melee weapons, missile weapons, ammo, jewelry, armour(s), consumables, magic items, artifact(s). Just mention the outliers (either really good or really poor based on what could be reasonably expected at a particular depth) in each of these proposed categories. In this way players can actually explore levels if they find it contains a item they may need, and can bypass some of the levels that are useless to them. Isn't that the purpose of level feelings? This may very well be too much information, but if you have it there to begin with, you can always limit the amount available to the player later, or portion it out via spells.

I also like the use of generic markers for detected items, though I would use item type specific markers. Also in favor or making detection more costly and rare so it doesn't get used constantly to detect every item on every level. Not selling DT it would be a good place to start.

fizzix
October 13, 2010, 16:06
Buzzkill's suggestion is good. Delayed level feelings are a much more desirable alternative to the 'wait for level feeling.'

After n_1 turns you get a monster feeling
After n_2 turns you get an item feeling
After n_3 turns you get a notice about artifacts. Where n_3 > n_2 > n_1

Each level feeling can be tailored pretty strongly with more dangerous feelings taking precedance

The ground is damp and rotting (jelly pit)
Broken equipment is strewn about (orc, troll pit)
Loud sounds echo through the halls (zoo)
The ceilings are unusually high in areas (giant pit)
A chill runs down your spine (graveyard)
Deep grumbling reverberates (dragon pit)
Grotesque imagery appear all around (demon pit)
You feel a powerful presence nearby (unique at or near current level)
You feel incredible danger (unique(s) above current level.)

Item feelings can give you information on whether there's a vault nearby. Alternatively, you can just base the feelings on the quantity of items generated with the dungeon.

Artifact feelings should just be 'you have a feeling something special is here'

ewert
October 14, 2010, 12:14
Okay a three tiered version with first info being pit/vault that comes instantly upon entering level, then uniques after a while and finally artifact info some time later.

Reasoning: uniques and artifacts can't be "missed" (unless preserve off, but that is a very special case), so no need to tell them straight off. A level without a pit or vault is totally boring, so I'd rather not even bother with levels like those after some depth. Even a pit will call me to clear it though, so giving that info straight away will most likely lure me into exploring the level and clearing the pit, and then the unique/artifact info will prod me into exploring even more thoroughly the level if there are any.

ewert
October 14, 2010, 12:54
Hmm, well rethinking while looking at the code and noticing I don't know right away how to code a delayed level feeling ... =P

I think giving pit spesifics with the feeling is too much. Graveyards and jelly pits will be skipped even without having to go see which pit it is.

Not sure if there is any harm in telling if there is a unique present right away. I mean, it is no "look here, free treasure" like clairvoyance was.

Artifacts ... Pits, vaults and uniques cover most of artifacts found I guess. Pit/vault/unique feeling would thus cover "fight for it and may find artifacts" mostly. Just an "artifact here somewhere", in the case of vaults, is just surplus info. If it is an artifact lying around in a normal room ... Do we want "free treasure here" signs? Probably not ...

I think I'll code a straight up non-delayed version first, with artifact feeling only for preserve_off.

Nick
October 14, 2010, 13:02
Hmm, well rethinking while looking at the code and noticing I don't know right away how to code a delayed level feeling ... =P


NPP and FA have them, if you're up for some code theft.

ewert
October 14, 2010, 14:11
Yeah thought NPP had it, couldn't bother (headache, ungh) to go find it.

Well now the feelings are done. No boring "wait on stairs 1000 game turns" delays for new feeling. no_feelings option is there if you don't want this autoscum-type feature, as is disconnected_stairs, so honestly it was just tedium that you didn't always get level feeling.

Next LoS trap detection I guess, then fracblows ... and then I might actually play the game a bit too! =P

EpicMan
October 15, 2010, 15:34
Hengband also implemented delayed level feelings, though I suspect NPP or FAAngband's implementation will be easier to since they are both closer to your port.

Magnate
October 15, 2010, 21:15
Next LoS trap detection I guess, then fracblows ... and then I might actually play the game a bit too! =PHi Ewert - much as I remain slack-jawed with admiration at the speed of your progress, it's quite hard to follow your development intentions. Would you mind writing up a few of your ideas into tickets at trac.rephial.org? (If you don't have a login, takkaria can give you one.) That would make it much easier to, er, track them, alongside what everyone else is working on.

There are already two tickets for level feelings (#50 and #1184), but nothing for clairvoyance. If you put links to the relevant branch of your repo into tickets, we can then close them when the branches are merged into the nightlies' master.

fizzix
October 15, 2010, 23:27
Attempted to compile ewert's git code and ran into problems in cmd4. Has anyone else attempted to compile this?

ewert
October 16, 2010, 07:00
Attempted to compile ewert's git code and ran into problems in cmd4. Has anyone else attempted to compile this?
Using the ivanilla branch? The master is mostly something I tried to delete but it won't for some reason. :P Prolly due to starting the fork with master branch name.

Mingw32-make -f Makefile.win works on my Windows platform. Note though, birth screen is still broken with takkaria's version with my windows compiled .exe, so don't know if it has some quirk that is different ...

ewert
October 16, 2010, 07:05
Hi Ewert - much as I remain slack-jawed with admiration at the speed of your progress, it's quite hard to follow your development intentions. Would you mind writing up a few of your ideas into tickets at trac.rephial.org? (If you don't have a login, takkaria can give you one.) That would make it much easier to, er, track them, alongside what everyone else is working on.

There are already two tickets for level feelings (#50 and #1184), but nothing for clairvoyance. If you put links to the relevant branch of your repo into tickets, we can then close them when the branches are merged into the nightlies' master.
TL;DR.

Joking. =P

Yeah I think mostly the ivanilla branch at the moment is sort of save-file for myself, not a superuseful tracking branch, as there are sometimes different things within a single commit. I guess I could make a "pushvanilla" branch, and start it from the "virgin" state and do single-thing-single-commit things to it to get it up to same place as my current vanilla, so you could more easily see what is done, how it is done and grab it.

I am trying to keep the readme.txt updated on what I have done in general sense though, and what I'm looking at next.

ewert
October 16, 2010, 07:16
Ahh

http://github.com/ewert/angband/compare/ivanilla

That's a very cool thing, can instantly see all changes compared to original. :)

Magnate
October 16, 2010, 09:41
Using the ivanilla branch? The master is mostly something I tried to delete but it won't for some reason.Erm ... you can only delete branches. Master is the "trunk", as it were.

Magnate
October 16, 2010, 09:42
I am trying to keep the readme.txt updated on what I have done in general sense though, and what I'm looking at next.Ah, thanks - I hadn't spotted that. Yes - github makes it easy to see what you have changed, but I'm more interested in what you're planning to do next!

ewert
October 16, 2010, 09:44
Erm ... you can only delete branches. Master is the "trunk", as it were.
Yeah I just thought I could delete "my" master, as it is only a copy of the true master ...

Magnate
October 16, 2010, 09:59
Yeah I just thought I could delete "my" master, as it is only a copy of the true master ...You can certainly do that - just nuke the whole directory and start again with git clone. But of course, deleting the trunk takes all the branches with it ...

ewert
October 16, 2010, 12:50
Well it'd be only an extra step then I guess (to name the new fork ivanilla instead of master) but ... not bothering at the moment, let there be two branches. :)

fizzix
October 16, 2010, 14:23
Using the ivanilla branch? The master is mostly something I tried to delete but it won't for some reason. :P Prolly due to starting the fork with master branch name.


yeah, I"m getting errors on the ivanilla branch.

I was using Microsoft Visual Studio Express to compile following PaulBlay's instructions here.

This can also be done relatively painlessly using
TortoiseSVN and Visual C++

Windows, Visual C++ and TortoiseSVN for Angband SVN compile

1. Download and install TortoiseSVN (http://tortoisesvn.tigris.org/) (requires reboot)

2. Navigate to a convenient folder (using Explore or via My Computer), right-click and choose "SVN Checkout" menu option.

3. Enter "svn://rephial.org/angband/trunk" for the url of repository. Click OK and you should have the latest SVN source on your computer in a few minutes.

4. Copy the source code somewhere else (if you want to mess around with it).

5. Install Microsoft Visual C++ 2008 Express Edition (http://www.microsoft.com/express/vc/).

6. Start the Visual Studio 2008 command prompt and change to the
source directory of angband (e.g. C:\angbandSVN\src\ )

7. Make the file with
nmake /fMakefile.nmake RELEASE=1
(leave off the RELEASE=1 for a debug compile)

I guess I could try using MingWin, but there was some problem I had with it the first time I tried.

edit: yeah, i remember the problem I have. I have no idea how to get a command prompt with Mingw.

ewert
October 16, 2010, 15:54
edit: yeah, i remember the problem I have. I have no idea how to get a command prompt with Mingw.
I run it from normal "cmd" window in Windows. Just have the /bin dir included in path like the guides say (from Computer Properties, extras, environment variables or whatever it is in English) and it works for me atleast.

The installation of mingw is stupid though, there is no GUI for the mingw-get but it doesn't say that in big blaring letters anywhere really obvious but you have to find the info that the error message you get is "normal" yourself. Need to use the mingw-get update/install etc cmd line cmds...

Timo Pietilä
October 16, 2010, 16:21
I run it from normal "cmd" window in Windows. Just have the /bin dir included in path like the guides say (from Computer Properties, extras, environment variables or whatever it is in English) and it works for me atleast.

The installation of mingw is stupid though, there is no GUI for the mingw-get but it doesn't say that in big blaring letters anywhere really obvious but you have to find the info that the error message you get is "normal" yourself. Need to use the mingw-get update/install etc cmd line cmds...

I use cygwin for my compiles. Way less complicated than Mingw. IIRC I had a problem with path lengths in mingw, it didn't understand long paths (which were not that long, way way way less than XP understands).

With cygwin I haven't had any problems ever.

Magnate
October 16, 2010, 16:26
Well it'd be only an extra step then I guess (to name the new fork ivanilla instead of master) but ... not bothering at the moment, let there be two branches. :)Not quite. You can name a repo anything you like, regardless of whether you create it from scratch or fork (clone) it from an existing repo. But every repo, whatever it is called and however it is created, has a branch called "master". This isn't a branch at all, but the trunk from which other branches are made. You cannot delete this master branch without deleting the entire repo and starting over. You *can* delete any other branch in a repo, except master.

For this reason, it is sensible to do most coding and testing on other branches, and make changes to master only when you are certain you will not want to undo them.

fizzix
October 16, 2010, 16:33
I think I got it to compile. Although, the broken birth menu does make it a pain, but I think I was able to start up a no-selling game. Unfortunately I have to get some actual work done now, but maybe I'll get a chance to play some tonight.

ewert
October 16, 2010, 18:51
I think I got it to compile. Although, the broken birth menu does make it a pain, but I think I was able to start up a no-selling game. Unfortunately I have to get some actual work done now, but maybe I'll get a chance to play some tonight.
Well you SURE you have the ivanilla branch? =P As that is based on the earlier versions and the broken birth menu is a thing of the later patches in angband-master. The broken birth menu is why I am using an older forking point.

fizzix
October 16, 2010, 19:26
Well you SURE you have the ivanilla branch? =P As that is based on the earlier versions and the broken birth menu is a thing of the later patches in angband-master. The broken birth menu is why I am using an older forking point.

Us this one wrong? I'm having some trouble navigating the git website...

http://github.com/ewert/angband/commit/cbe03101180dee30cc975f941fc3b6b482c3ef67

never mind, I found the right one.

ewert
October 17, 2010, 10:47
Yeah that wasn't the right one. The "Network" tab is the easiest place to visualize and find branches.

fizzix
October 17, 2010, 15:07
Game crashes at home. (inventory on second page) Save file attached

It might have something to do with display. The second page will need to start at 0 again at the top. otherwise you will run out of room.

ewert
October 17, 2010, 22:14
Hmmh figured there might be problems with the display, thought it would just be funky and have to up/down to pick items. Never got it to crash on me though.

Bit strange though, since I'm pretty sure I've had way more items in inventory than that and it has worked.

ewert
October 17, 2010, 22:22
Heh, okay really weird since now my save games are crashing too just entering town level though they worked fine last I played. :) Can't even remember that I have changed something ...

ewert
October 17, 2010, 22:35
Okay it would appear changing the stock_size at load.c and store.c isn't enough, having stock_size set to 254 in init1.c removes this crash ... Weird that didn't get this crash before, am pretty sure I tested with this new version too, but I guess not enough.

ewert
October 17, 2010, 22:51
Made some changes in init1.c, load.c and store.c, check if it works okay now.

Note the display will be funky, since unlike before the new home/store display system does not work based on items displayed, but every item has it's own "letter" no matter if it is not displayed in current screen ...

fizzix
October 18, 2010, 00:29
Made some changes in init1.c, load.c and store.c, check if it works okay now.

Note the display will be funky, since unlike before the new home/store display system does not work based on items displayed, but every item has it's own "letter" no matter if it is not displayed in current screen ...

copied those files over and recompiled, seems to work fine now.

ewert
October 18, 2010, 13:37
Beware the new version it is totally untested AND ... trap detection spells are GONE! =P

Yes, say hello to short range LoS searching. Wear those rings of searching before venturing out, oh and turn on searching ... ;)

Will need to fix teleport and summon traps to be not so lethal in end-game. But both 100% searching and 100% trap avoidance is possible in endgame too ... unless you are blind/confused, mwahahahahahahahaa (oh wait, avoidance isn't hindered by that, need to fix that).

ewert
October 19, 2010, 07:34
Seems the -speed part of searching isn't working for some reason, will have to check that.

Guess could change perception into being the trap avoidance "skill".

Though I am thinking could use the perception skill as the "ESP" thing that one thread discussed...

ewert
November 8, 2010, 13:01
Currently iVanilla has fractional blows from Magnate and vault/pit changes from fizzix. Also retuned pseudo id (the earlier one was horribly slow for all but warriors really, thank god for calculators and (1-chance)^bignumberhere to check probabilities =P). Also gold drops were changed too, so no-selling is really viable (couple of runs at stat gain levels tend to give enough for a BM stat potion if there happens to be one for sale :)).

I'm sort of running out of the big ideas ... next will probably mess with class balance bit more, go through the different skills and probably nix the ranger (giving rogues more spells, warriors more archery). The warrior will thus end really powerful fighter, and as paladin IMHO has awesomesauce spellset, I think will make rogues have a good spellset too ...

fizzix
November 8, 2010, 17:06
Currently iVanilla has fractional blows from Magnate and vault/pit changes from fizzix. Also retuned pseudo id (the earlier one was horribly slow for all but warriors really, thank god for calculators and (1-chance)^bignumberhere to check probabilities =P). Also gold drops were changed too, so no-selling is really viable (couple of runs at stat gain levels tend to give enough for a BM stat potion if there happens to be one for sale :)).


Initial testing seems to indicate that item rewards in jelly nests, zoos and graveyards are insufficient. Probably should bump these to averaging 10, 50 and 80 items apiece. up from 3, 10 and 30.

LV and MV frequency is too low relative to pits/nests. This is partly to do with the difficulty of fitting these vaults in. The way these are generated is kind of funky. It rolls a random number and if it's low enough it attempts a vault. If the vault fails because it intersects another room, it will attempt a pit, which is about half the size. This is one of the reasons why nearly every level after a certain depth has either a pit or a nest. It also skews the frequency of pits vs nests because pits get all the vaults that don't fit. There needs to be some more fudging with the frequencies, although I'd really like the montecarlo sim available before I mess with it more.

ewert
November 8, 2010, 17:41
Initial testing seems to indicate that item rewards in jelly nests, zoos and graveyards are insufficient. Probably should bump these to averaging 10, 50 and 80 items apiece. up from 3, 10 and 30.

LV and MV frequency is too low relative to pits/nests. This is partly to do with the difficulty of fitting these vaults in. The way these are generated is kind of funky. It rolls a random number and if it's low enough it attempts a vault. If the vault fails because it intersects another room, it will attempt a pit, which is about half the size. This is one of the reasons why nearly every level after a certain depth has either a pit or a nest. It also skews the frequency of pits vs nests because pits get all the vaults that don't fit. There needs to be some more fudging with the frequencies, although I'd really like the montecarlo sim available before I mess with it more.
Only cleared one jelly pit so far, my warrior had a 400/rnd weapon and rDis at around 35 or so, so those death molds didn't scare me. :P Well they still did tons of damage, but could kill them before they killed me, lots of resting in between. ;) There were a couple of items "postsquelch" in there, nothing awesomesauce true. Honestly atleast that jelly pit was not worth the hassle, but was interested in clearing it.

Lost my earlier ranger to a boredom-death (whirlpool vault or maelstrom or whatever it is called), "oh wtf, seems that dracolich/lisk whatever decided to enter LoS while was just taptaptapping some lower monsters" ... But it WAS a vault. And I actually cleared (well about 90%, then hit a trapdoor while trying to disarm it by movement instead of by spell! lol!) a GV with the char already once. So atleast those vaults are definitely more and happily frequent.

As an aside ... yet again the disparity of standart vs. randart games raises it's head, the ranger was standart and had seen only few arts, this warrior is randart and is swimming in arts, especially weapons ... prolly have 20+ already seen, and am not dlvl40.

Derakon
November 8, 2010, 17:59
Pits should be reduced in size, IMO. 95 monsters in one shot basically means that either the monsters are weak enough that you can steady-state them (e.g. holding down a direction key), or they're strong enough that the only plausible way to take them out is to kite off one or two, kill them, kite off a few more, repeat. Which makes for very tedious gameplay.

I suggest having three pit sizes: 3x3, 5x5, and 6x8. That last might still be too big, for that matter. But it'd be an improvement over the current system. The only downside is that graveyards and zoos are slightly less "must avoid this sector at all costs".

Magnate
November 8, 2010, 18:28
As an aside ... yet again the disparity of standart vs. randart games raises it's head, the ranger was standart and had seen only few arts, this warrior is randart and is swimming in arts, especially weapons ... prolly have 20+ already seen, and am not dlvl40.Yeah - I'll be reverting the last change to randart gen chances to try and bring randarts back into line with standarts. They used to be less common, now they're way more common. Like you, I'm waiting for myshkin's monte carlo code ...

ewert
November 20, 2010, 09:13
Wow this is one weirdo bug ... can't melee attack on a troll mage. Haven't tried to pinpoint source of why not, attached a savefile. Considering I haven't done anything to melee except include Magnate's fracblows, hmm. =P

Timo Pietilä
November 20, 2010, 10:02
Wow this is one weirdo bug ... can't melee attack on a troll mage. Haven't tried to pinpoint source of why not, attached a savefile. Considering I haven't done anything to melee except include Magnate's fracblows, hmm. =P

Weird indeed.

WARNINGWARNINGWARNINGWARNINGWARNING

If you rename your own PLAYER -savefile as PLAYER.old game destroys it when you stop trying this one. Apparently .old is something game uses.

Taha
November 20, 2010, 14:56
Wow this is one weirdo bug ... can't melee attack on a troll mage. Haven't tried to pinpoint source of why not, attached a savefile. Considering I haven't done anything to melee except include Magnate's fracblows, hmm. =P

This sounds very similar to the problem I had with a dwarf priest. Magnate apparently also saw it once. I was wondering if it had happened with any other class combinations.

http://trac.rephial.org/ticket/1210

Leave a note on the ticket if it matches, I thought it might have something to do with fractional blows (maybe a single blow takes more than 100 energy?), but haven't done any real checks.
________
Washington Marijuana Dispensaries (http://washington.dispensaries.org/)

Timo Pietilä
November 20, 2010, 18:24
I thought it might have something to do with fractional blows (maybe a single blow takes more than 100 energy?)

That sounds logical. If you "I"nspect the weapon it actually says:

With an additional 2 strength and 0 dex you would get 1.0 blows
With an additional 0 strength and 9 dex you would get 1.0 blows

So he has less than one blow. If I give it +2 RoSTR it can use that dagger.

BTW STR is written strength, but dexterity is abbreviated to dex. IMO both should be abbreviated to capital STR and DEX.

Taha
November 20, 2010, 20:18
Switching to a whip (or fists) from the default mace allows combat for my dwarf priest, so this is definitely the issue. Tak said there was a fix in the code already, just hasn't been built yet.
________
Weed tracker (http://dispensaries.org/)

AnonymousHero
November 20, 2010, 23:29
Since Angband has now officially switchted to git, you can always try the most über of debugging commands: git bisect. It will help you pinpoint exactly when some behaviror was introduced (intentionally or not) in very few iterations of answering "yes, this behavas as i excpect" or "no, bad bad bad!"

EDIT: As a special bonus, if the behavior was unintentional you've just given the maintainers the exact moment at which things went wrong.

Magnate
November 21, 2010, 12:22
Switching to a whip (or fists) from the default mace allows combat for my dwarf priest, so this is definitely the issue. Tak said there was a fix in the code already, just hasn't been built yet.Sorry folks, this was my fault: in the fracblows code there is an off-by-one error, so if your energy-per-blow is exactly 100 it won't let you attack. That's why it didn't affect all chars, because many start with enough STR and DEX for <100 epb.

It has been fixed - I'm not sure if it made it into last night's nightly, but it will definitely be in tonight's.

Sorry again.

Philip
December 26, 2010, 11:51
So, I'm a (mostly) windows user and do not know a thing about programming, compiling etc. I'm interested in playtesting it. How do I download it in a easy, painless way in less than 10 mins. I'm interested in the iVanilla branch

ewert
December 26, 2010, 12:07
I'll be reapplying the things for 3.2 soon(ish) I hope. I guess I could do an zip file for current version too.

ewert
December 26, 2010, 12:20
Here you go:

https://github.com/ewert/angband/downloads

The 3.1.2 based download. :) Mind you there are a couple of quirks:

LoS works on dark grids (havent fixed that in this version)
No_selling gold drops in town level are too large