Angband Forums

Angband Forums (http://angband.oook.cz/forum/index.php)
-   Vanilla (http://angband.oook.cz/forum/forumdisplay.php?f=3)
-   -   Really Want To Fight Ancestors (http://angband.oook.cz/forum/showthread.php?t=4120)

tuppe666 February 10, 2011 11:02

Really Want To Fight Ancestors
 
I have played these things for about forever and Angband and its Variants(Zangand really) and the only feature I truly miss is ghosts from my savefile. I have never come close to completing any of these games, and never cheated, but the sting of permanent death lessened by the chance of a killing really fun unique with a good drop.

Philip February 10, 2011 11:09

They are gone now, but O and FA among others still have them. I suggest you look there. Are you perhaps asking for it as an option ala NPP? I don't think that will happen for some reason.

CunningGabe February 10, 2011 13:17

takkaria is (or at least was) interesting in having them return: see ticket #39 on the issue tracker. http://trac.rephial.org/ticket/39

d_m February 10, 2011 16:12

I am also interested in having player ghosts.

Takkaria and I have tried to figure out a good way to support them without the problems that they (apparently) had.

nppangband February 10, 2011 23:28

Quote:

Originally Posted by d_m (Post 48408)
I am also interested in having player ghosts.

Takkaria and I have tried to figure out a good way to support them without the problems that they (apparently) had.

Check out NPP. I am happy with the way they are generated, and their strength, and most of the code is clean and "Vanilla Angbandworthy". I think they are finally balanced to 1) dangerous, but not unfair/instadeath, 2) give an appropriate reward that make them worth fighting.

The only part that extremely ugly code (which I inherited from the old patch) is the way it stores the player_ghost names and depths of death. There are just a bunch of files in a folder that can be loaded. Instead, I want to changed so all of the default ghost templated are in an edit file that is loaded along with everything else in init.2. And then additional ghosts resulting from player deaths are added as a part of the savefile.

I plan on changing/improving this for NPP 0.6.0 when I break savefile compatibility. Unless, of course, you all beat me to it and do your own player ghost patch. In that case, I will shamelessly piggyback on all your hard work. :)

Consistent with with any and all items on the Angband wishlist that are current features of NPP, I will happily code a patch for your consideration.

Derakon February 10, 2011 23:43

I should note for the record that in my OSX builds of NPPAngband, all ghosts are named "Nobody". I'd guess this has something to do with the ghost files not getting written properly, but I never bothered to investigate.

In my ideal world, player ghosts' abilities would be based on the class of the character. Otherwise ghosts basically are semirandom unique monsters whose only connection to the dead character is the name. In a really really ideal world, you'd have a template for each class which would apply multipliers to various stats based on the level of the character at death. Then you'd end up with player ghosts that actually fight something like they did when they were alive.

Of course, that'd mean the early levels would be littered with the ghosts of young mages...

d_m February 10, 2011 23:56

Quote:

Originally Posted by nppangband (Post 48421)
Check out NPP. I am happy with the way they are generated, and their strength, and most of the code is clean and "Vanilla Angbandworthy". I think they are finally balanced to 1) dangerous, but not unfair/instadeath, 2) give an appropriate reward that make them worth fighting.

The only part that extremely ugly code (which I inherited from the old patch) is the way it stores the player_ghost names and depths of death. There are just a bunch of files in a folder that can be loaded. Instead, I want to changed so all of the default ghost templated are in an edit file that is loaded along with everything else in init.2. And then additional ghosts resulting from player deaths are added as a part of the savefile.

I plan on changing/improving this for NPP 0.6.0 when I break savefile compatibility. Unless, of course, you all beat me to it and do your own player ghost patch. In that case, I will shamelessly piggyback on all your hard work. :)

Consistent with with any and all items on the Angband wishlist that are current features of NPP, I will happily code a patch for your consideration.

Awesome!

I will totally look at how these work in NPP and maybe try to code up something for V to test out. If I can get ghosts saved into the savefile properly, I will try to make sure NPP can pull this feature back.

If I have any ideas for how to improve player ghosts I'll definitely bounce those off you first.

Nick February 11, 2011 00:05

Quote:

Originally Posted by Derakon (Post 48424)
In my ideal world, player ghosts' abilities would be based on the class of the character. Otherwise ghosts basically are semirandom unique monsters whose only connection to the dead character is the name.

This is how they work in FA/O.

Quote:

In a really really ideal world, you'd have a template for each class which would apply multipliers to various stats based on the level of the character at death. Then you'd end up with player ghosts that actually fight something like they did when they were alive.
Now that is a cool idea. I must put it on one of my lists of things to do...

nppangband February 11, 2011 03:10

Quote:

Originally Posted by Derakon (Post 48424)
I should note for the record that in my OSX builds of NPPAngband, all ghosts are named "Nobody". I'd guess this has something to do with the ghost files not getting written properly, but I never bothered to investigate.

Yes, this is the one part of the player ghost code taht is garbage. Because I intend to nuke that part of the code in the next month or two, I looked at it, didn't see an obvious problem, and shifted to higher priority items. In windows, it fills us the bones directory with 127 bogus templates. I don't know why.

Quote:

Originally Posted by Derakon (Post 48424)
In my ideal world, player ghosts' abilities would be based on the class of the character. Otherwise ghosts basically are semirandom unique monsters whose only connection to the dead character is the name. In a really really ideal world, you'd have a template for each class which would apply multipliers to various stats based on the level of the character at death. Then you'd end up with player ghosts that actually fight something like they did when they were alive.

That's exactly how they work in NPP! When a player dies, it saves a file with the player's name, the depth they died, and their gender, race and class. There are a bunch of ghost race templates (vampire, skepaton, Lich, ghost, skelaton, wraith etc...) in monster.txt. When a player ghost is generated, it looks for a character ghost template that died around the dungeon depth (prepare_ghost function). It reads the player gender, race, and text, and starts making changes to the monster (prepare_ghost_race, and prepare_ghost_class). A troll ghost would get a boost in hit points and the rgeneration flag, a race with resist poison would make a ghost resist poison, the combat damage dice and sides are adjusted with the race's fighting abilities, etc... Then it does the same thing for class. A mage ghost would get spells similar to the mage spellset, depending on the spell level and ghost template level. Priest ghosts get spells similar to their spellset...fighting abilities are adjusted again according to the class's fighting abilities.

Essentially, every single race/class combination will produce a different player ghost. And this player ghost will also be different the deeper in the dungeon it is created. This part was rather difficult to balance, but I think after many years it is finally there. Note there are no random numbers involved in these adjustments, so the ghost is the exact same when a player exits/saves the game, then re-opens the savefile.

If, when a player ghost monster is created, and there has been no player death in that part of the dungeon, it generates a ghost using the name of one of the maintainers of Angband or NPPAngband. Race and class for the maintainer templates are randomly chosen, and the ghost template is taken from there.

CunningGabe February 11, 2011 03:42

Quote:

Originally Posted by nppangband (Post 48430)
That's exactly how they work in NPP! When a player dies, it saves a file with the player's name, the depth they died, and their gender, race and class. There are a bunch of ghost race templates (vampire, skepaton, Lich, ghost, skelaton, wraith etc...) in monster.txt. When a player ghost is generated, it looks for a character ghost template that died around the dungeon depth (prepare_ghost function). It reads the player gender, race, and text, and starts making changes to the monster (prepare_ghost_race, and prepare_ghost_class). A troll ghost would get a boost in hit points and the rgeneration flag, a race with resist poison would make a ghost resist poison, the combat damage dice and sides are adjusted with the race's fighting abilities, etc... Then it does the same thing for class. A mage ghost would get spells similar to the mage spellset, depending on the spell level and ghost template level. Priest ghosts get spells similar to their spellset...fighting abilities are adjusted again according to the class's fighting abilities.

That is really, really cool.


All times are GMT +1. The time now is 17:44.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.