Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Variants

Reply
 
Thread Tools Display Modes
Old March 11, 2021, 11:03   #11
Dean Anderson
Adept
 
Join Date: Nov 2009
Posts: 192
Dean Anderson is on a distinguished road
I must admit that I've been procrastinating quite a lot and haven't done much with this.

My current work-in-progresss dev version (6.5) has quite a few fixes and tweaks (more than 6.3 and 6.4 combined), but adding this system of gods isn't one of them.

I implemented the basic mechanism whereby favour is a zero-sum game and gaining favour with one god loses it with all the others, as well as the fact that being a priest effectively amplifies the amount of favour you have (or don't have) with your patron god.

However, I've not implemented the details of when you gain favour with a particular god or what the effects of having a high (or low) favour with a particular god are; so currently although you can gain and lose favour, you never actually do (and even if you did it would have no effect).

I need to stop procrastinating and get 6.5 ready for a release - with or without the favour system.
Dean Anderson is offline   Reply With Quote
Old March 11, 2021, 17:38   #12
HugoVirtuoso
Veteran
 
HugoVirtuoso's Avatar
 
Join Date: Jan 2012
Location: Linux
Age: 39
Posts: 1,224
HugoVirtuoso is on a distinguished road
Is there any way to have this available for Linux?
__________________
My best try at PosChengband 7.0.0's nightmare-mode on Angband.live:
https://www.youtube.com/watch?v=rwAR0WOphUA

If I'm offline I'm probably in the middle of maintaining Gentoo or something-Linux or other.

As of February 18th, 2022, my YouTube username is MidgardVirtuoso
HugoVirtuoso is offline   Reply With Quote
Old March 11, 2021, 22:05   #13
Dean Anderson
Adept
 
Join Date: Nov 2009
Posts: 192
Dean Anderson is on a distinguished road
I very much doubt it. It's a C# program that uses the WPF Framework.
Dean Anderson is offline   Reply With Quote
Old March 11, 2021, 22:21   #14
Avenger
Apprentice
 
Join Date: Dec 2013
Location: Wisconsin U.S.
Age: 35
Posts: 97
Avenger is on a distinguished road
Glad to see this is still a work in progress, and that the developer is alive. Looking forward to 6.5.

As far as portability, I like Java for my own projects, since you can run a jar pretty much anywhere as long as you have a JRE installed.

I suspect the same approach Java uses to achieve its portability can help you out on Linux - simply setup a virtual windows box and run the game from there. Maybe not the ideal, or preferable, solution, but certainly a viable one.
__________________
C(6.3) C Erirbag [Half-Ogre Cultist] L:39 DL:Collector's Cave 2 A+ R+ Sp w:The Long Sword of Karakal (2d5) (+9, +12) (+2)
C(TN/Do) W H- D-- c-- f PV s- d+ P++ M?
C S++ I+ So B- ac- GHB- SQ RQ V+ F:TomeNET Game Progression
Avenger is offline   Reply With Quote
Old February 2, 2022, 23:31   #15
Dean Anderson
Adept
 
Join Date: Nov 2009
Posts: 192
Dean Anderson is on a distinguished road
So, these changes didn't make it into 6.5 (or 6.6 for that matter), but I've not forgotten about them.

I've added them to the upcoming 6.7, and it's been quite a balancing act.

I'm using five gods (Great Ones or GOs in Cthangband terminology) aligned with the five realms of magic that priests can cast, as described earlier in the thread, although the exact list has changed slightly:
  • Hagarg Ryonis - Goddess of beasts (aligned with the Nature realm).
  • Lobon - God of youth and strength (aligned with the Corporeal realm).
  • Nath-Horthath - God of war (aligned with the Chaos realm).
  • Tamash - God of illusion and magic (aligned with the Tarot realm).
  • Zo-Kalar - Goddess of birth and death (aligned with the Folk realm).

I decided on three features the system needed to have, to make sure it didn't annoy players:
  1. You should be able to ignore the system entirely without it being imposed on you.
  2. GOs might give you a bonus or benefit if they like you, but they will never give you a penalty or smite you if they don't.
  3. Whatever GOs give you should be passive rather than active abilities, since with racial abilities, multiple realms of magic, and abilities from mutations there are already too many abilities for the player to try to remember.

I've mostly stuck to those three principles, with the exception that you can't ignore the system entirely if you play a priest, since your choice of realm automatically gives you one of the GOs as a patron. Although having said that, the passive nature of the bonuses means that even as a priest you can still mostly ignore the system and just keep the base-level bonus for your patron.

I've implemented "favour" with the five GOs as a zero-sum game, so gaining X favour with one GO will lose you X/4 favour with each of the others, and vice versa (and consequently gaining and losing favour is always done in multiples of 4). That way, your total favour with all five is always zero and it's not possible to have positive favour with all five.

Most people start with 0 favour with each, and if you don't want to interact with the system you can just leave it at that for the whole game - you never gain or lose favour against your will.

However, if you want to gain favour with one of them then you can sacrifice items at the temple. I thought about having altars to specific Great Ones in the dungeon, and I might add that at a later date, but for now you just sacrifice at the temple and you can sacrifice to any Great One.

When you sacrifice an item, you gain favour with the GO to whom you sacrificed it based on the value of the item.

And this was the tricky bit to get the maths right on.

I wanted to make it still worth your while making smaller sacrifices, while at the same time being able to cope with huge sacrifices. A starting character will only have a hundred gold or so, but endgame characters will have dozens of items worth tens or hundreds of thousands of gold each.

I basically needed to combine some kind of exponential scale for sacrifices with a linear scale for bonuses, and the way I did it was:

When you sacrifice an item, you gain 4 favour with the GO to whom you sacrificed it per 10gp of the item's value (and, of course, lose favour with the other GOs equal to 1 per 10gp of the item's value to keep the zero-sum game balanced).

I then put in a 'decay' of favour as the GO's lose interest after a while, so each game-day that passes it picks the GO you have the most favour with and takes 10% of that favour as a decay value. You lose 4x the decay value in favour with that GO, and gain 1x the decay value in favour with each other GO. Again, keeping the zero-sum.

Losing 40% of your favour might sound a lot, but remember this is kind of like the reverse of compound interest. You won't lose all your favour in two and a half days, because each time you lose favour the next loss will be 40% of the new total, not 40% of the original total - so it's kind of like radioactive decay with half-lives. As the amount goes down the amount lost goes down too.

The nice thing about this is that even though the amounts of favour you're getting are going up geometrically as you sacrifice more expensive items, the time to decay doesn't go up geometrically with it but instead goes up linearly - so a huge sacrifice will give you a lot more favour, but it won't end up giving you favour that lasts forever.

As for what favour actually does for you, I turn the favour into a percentage bonus. Again, I convert from a geometric scale to a linear scale, this time by taking log10 of your favour and converting it into a score. I don't actually do a log10 calculation, of course - that would be overkill. Instead I simply convert the favour into a string and count the digits. This gives me a number between 0 and 10 (theoretically it could be higher, but I cap it at 10) which I can easily convert into a percentage by multiplying it by 10. So I end up with a value from 0% to 100% that I can use as I see fit.

At the moment (and this may be adjusted as a result of further testing), you get the following bonuses from the different GOs:
  • Hagarg Ryonis - your bonus is the chance to ignore poison or life drain attacks.
  • Lobon - your bonus is the chance to ignore ability score damage.
  • Nath-Horthath - your bonus is applied to your max health.
  • Tamash - your bonus is applied to your max mana.
  • Zo-Kalar - your bonus halved is the chance to negate an effect that would kill you.

Priests get two benefits. Firstly their "resting" favour to which the scores decay is to have 120 favour with their patron and -30 favour with each of the other GOs, so unless they actively do something bad they'll always have a 30% bonus for their patron's ability. And seconly when converting the favour to a bonus their favour is doubled before counting the digits, so for the same amount of sacrifice they get a bigger bonus.

I've finished implementing it, and I'm currently testing it to see if the balance needs tweaking - but so far it's looking good.
Dean Anderson is offline   Reply With Quote
Old February 3, 2022, 17:19   #16
HugoVirtuoso
Veteran
 
HugoVirtuoso's Avatar
 
Join Date: Jan 2012
Location: Linux
Age: 39
Posts: 1,224
HugoVirtuoso is on a distinguished road
I know this following question was addressed: is there any way to port this to Linux? Or at least have a binary of this for Linux?
__________________
My best try at PosChengband 7.0.0's nightmare-mode on Angband.live:
https://www.youtube.com/watch?v=rwAR0WOphUA

If I'm offline I'm probably in the middle of maintaining Gentoo or something-Linux or other.

As of February 18th, 2022, my YouTube username is MidgardVirtuoso
HugoVirtuoso is offline   Reply With Quote
Old February 4, 2022, 00:13   #17
Dean Anderson
Adept
 
Join Date: Nov 2009
Posts: 192
Dean Anderson is on a distinguished road
Quote:
Originally Posted by HugoVirtuoso View Post
I know this following question was addressed: is there any way to port this to Linux? Or at least have a binary of this for Linux?
I don't think so. It's a C# program using WPF running on the .NET Framework 4.5.2.

It might be possible to run that under Linux using something like Wine, but since I've never used Linux in my life I wouldn't have the first clue how to set something like that up.
Dean Anderson is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
1.2 endgame feedback debo Sil 24 January 9, 2014 14:13
[3.4.0] feedback Estie Vanilla 40 December 1, 2012 16:12
Angband (or variant) Feature Suggestion Poll/Feedback thread PaulBlay Vanilla 77 March 9, 2009 02:40
*band variant Feature Suggestion Poll/Feedback thread PaulBlay Variants 0 February 28, 2009 10:24
Feature reporter wanted takkaria Vanilla 14 April 25, 2007 01:01


All times are GMT +1. The time now is 02:46.


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