webbed 30 mei 2024 (Laatste aanpassing 30 mei 2024)  checked not yet

Voorbeeld van verbreding/verdieping?


Back on track.

Hoe ver voert NetHack (je)? Ik zou daar graag een duidelijk antwoord op geven en ik heb me helemaal lens gedacht wat te doen en welke voorbeelden.
Maar ja, leg maar eens uit dat een spel steeds opnieuw verassend is, en op steeds een volgend niveau nog verder opzien baart.
Alles wat ik zou weten te vertellen geeft nog niet aan hoe diep het voert, en ver het reikt.
Hoe ver gaat het met pets? Verder dan ik denk in elk geval, want anders zou die conduct "pacifist" (without ever killing a monster) niet eens kunnen bestaan.
Hoe ver met trainen? Met het veranderen van het ene monster in het andere (polymorph)?
Wil je zoiets specifiek weten, dan is daar een prachtige site voor: de nethackwiki. Maar dat hoef ik niet nog meer te kopiëren.
Ik bedacht me dat ik dan zelf maar een hypothetische verbreding en/of vedieping moest verzinnen.
Dat bleek ondoenlijk. Lang, lang bezig geweest met wat te kiezen. Uiteindelijk ben ik gevallen voor iets wat al als patch is gemaakt. Maar ik zag er alleen al op grond van de naam zoveel potentie in dat ik, zonder me verder te laten belemmeren door kennis van zaken, hier wat mogelijke verdieping en verbreding zal schetsen.
Hou in je achterhoofd dat dit dus alleen maar is hoe ik me voorstel dat NetHack omgaat met breedte en diepte.

Flip coin vind ik leuk.
Het is simpel, heeft hoge potentie, is onontgonnen en kan op vele manieren/vlakken NetHack raken.
Het is een patch, en ook al geprogrammeerd in xNetHack, zeer wel mogelijk beter dan hier beschreven. Maar het gaat mij nu even om een voorbeeld van wat een verbreding van NetHack kan zijn en wat daar bij kan komen kijken.

Er zijn ook dingen die juist niet bij de verbreding zouden hoeven gebeuren. Het is altijd aanlokkelijk er extra items bij te slepen, of zulke stevige effecten dat het spel ofwel makkelijker wordt, ofwel uit evenwicht raakt. Dat werkt uiteindeljik niet. Dus een coin met twee koppen, een konijnenpot, niet aan beginnen.

Flip coin is een soort nieuwe categorie die aan dingen met RNG, dingen met keuzes, en dingen met geluk raakt.
De basis is even kinderlijk eenvoudig als ijzersterk.

Eerst eens wat flip coin behelst.

Je kunt er sowieso twee kanten mee op.
Ten eerste:
Kans voor volledige willekeurigheid, zuiver. 50(,0000000000000000...)% Heads, rest Tails.
De kans op Kop is de kans op Munt. Goede RNG en programmeren is een makkie. RND(2), ?(2) of RNG(2). Zoiets is het, en ik ben niet eens programmeur.

En dan ten tweede:
Geluk voor het gewenste resultaat.
De kans is (wordt) snel en graag gekoppeld aan Luck. In elk geval door de gokindustrie en de gokkers, maar ook in vrijwel alle (andere) spellen. En dat kans en luck verweven zijn, wordt door iedereen voor zoete koek aangenomen. In zekere zin is dat wonderlijk. Die onderzoeken waarin iets, iemand of een omstandigheid kon worden aangewezen die geluk afdwingt, worden door vele wetenschappers en unbelievers met argusogen bekeken. Ook door mij. Luck is niet kans. Bij mijn weten gooi je, ook als je een beloning zet op Kop, op vrijdag de 13e onder een ladder nog steeds 50% kop, 50% munt. Als je bij blackjack wordt weggestuurd, is dat omdat je bijvoorbeeld de kaarten aan het tellen bent en zo je kansen stuurt, niet omdat je je geluk stuurt.
Maar wie zegt dat dat dan in NetHack, bij full moon, ook zo is? Binnen NetHack, bij full moon, dan zou je wel eens gelukkig kunnen gooien! Dat wil ik zeker niet ontkennen.
Luck wordt al sinds jaar en dag in NetHack bijgehouden met een score van –13 tot +13.

Veronderstellen dat een poot van de flip coin ook iets met de luck te maken heeft, is voor NetHack dan ook niet minder dan logisch.


Okee. Dus in NetHack. Gooi je beter als je meer luck hebt? Ja, tuurlijk. Maar hoe meet je dat? Nou, je gooit beter. Tja...
Luck is een score, een getal. Hoe link je dat het best aan flip coin?

Als je nu op $ drukt staat er: "Your wallet contains 3 zorkmids."
Na verbreding ´flip coin´ zou dat dus kunnen worden: "Your wallet contains 3 zorkmids. You flip a coin. Heads." (Kans)
En dan kun je het daarmee dan doen. Of niet. Wat je wil. Je kunt al je beslissingen er vanaf laten hangen als je wilt. Of geeneen. Zit er dan gewoon in. Af.
Is dat nu zo´n hemelstormende verbreding? Nu, het is nieuw, duidelijk, en het kan de pijler, de kapstok zijn van allerlei dingen die grotere of kleinere impact hebben.

Eerst natuurlijk hoe je het eigenlijk ziet. Kop of Munt. Hallucinerend of confused, blind. Doet er misschien niet toe. Maar mogelijk juist wel, natuurlijk. Dus verschillende meldingen. Misschien in bepaalde combinaties net altijd exact de verkeerde. Ik denk dan aan die Transylvania puzzels van Raymond M. Smullyan ´The Lady or the Tiger´, dat verhaal met zieke vampieren en gezonde mensen.

"You flip all your coins, but none is double headed."
"Heads or tails, that is the question."
"Tails. With ears."
"Pecunia olet sicut cepa pulmenti." of "Nummus iacta est." of als conduct blind: "Ah. Heads."


En er is als je dan toch bezig bent:

Je kunt iets doen als iemand vaak gooit en vaak achtereen ´Heads´ rolt. Dat is dan Kans. Zelfs in buitensporige gevallen iets om verslavingszorg te ondersteunen. Vanaf bepaald aantal worpen "You notice you have no gold. Your wallet is empty. Mmm…". Een verder onbenullig spelletje, maar toch weer een spelletje, en met een belerende boodschap.

Je kunt een aantal meldingen "Are you sure? [yes/no] (n)" vervangen door "Do you want to drink from the fountain? [y/n/f] (n)". Ik denk dat dat soort vraagstukjes best nog met enige regelmaat voorkomt. Of je wilt drinken, dippen, monster slaan, zitten, enzovoort. Daar kun je de uitkomst van de flip daadwerkelijk (laten) inzetten. Een eerlijke 50% kans, Kans. Je kunt natuurlijk ook, voordat je probeert te drinken eerst zelf een coin flippen, en de uitkomst dan gebruiken, maar je kunt het ook automatiseren. Echt niet zo ingewikkeld te programmeren. (Per geval!).

Ineens twijfel ik hoe vaak die vraag voorkomt. Ik heb in de opties wel een paar voorzorgmaatregelen aangezet. "Vraag eerst of je echt wilt prayen", "Vraag of je een vredelievend monster echt wilt slaan", dat soort dingen. Ik vraag me af of er dan nog voldoende overblijft. Confirm en paranoid_confirmation, zo heten ze. Praying zit er wel in, sitting en drinking niet. Dat is bemoedigend. Dan ga ik ermee door.

Een verdieping lager kun je tijd besparen en mogelijk een fijne nieuwe conduct halen als je in de Opties Flip_a_coin aanvinkt en altijd automatisch een coin flipt bij alle [y/n]–situaties (en wishes). Ik schat dat het echt niet veel lastiger zal zijn dan pacifist of zelfs ongeletterd. Nog steeds Kans.
"You have been confident."

Maar als je nu extreem lucky bent, kun je dan de uitkomst van je flip coin (lucky) gebruiken om te bepalen of je van de fontein moet drinken? Je verwacht meer kans op iets goeds, omdat je lucky bent, dat is Geluk.
En daar gaat het lastiger worden. De uitkomst van de coin zelf is nooit lucky of unlucky voordat je de uitkomst van drinken weet. Kans is eigenlijk wat je van te voren weet, luck is wat achteraf is gebleken.(Kijk eens aan, dat is ook de zienswijze van Montaigne.) En daar wil je dan een loophole in vinden. Met je luck (die achteraf blijkt) wil je je kans (die je nu hebt) interpreteren. Zal ik van de fontein drinken? Ik flip een coin. De uitkomst heeft (de hoogste) kans op gelukkig resultaat. Is dat onmogelijk? Voor een spel is het best mogelijk te bepalen wat er gaat gebeuren als je het één of het ander kiest. En NetHack kan dus, voordat er gedronken wordt, al weten of drinken een positief of negatief effect zal hebben, beter of slechter dan niet drinken. En dan Kop of Munt gooien posifief (of negatief) beïnvloeden. Dat is dan 50% + 2x de luckscore = maximaal 76% kans op gelukkig effect. Het is dan een wonderlijke, verbasterde kans geworden, maar dat zou kunnen…
Klink aanlokkelijk maar ik zie er twee paar ogen aan haken.
Niet drinken kan erg lucky zijn, wel drinken ook. Maar soms is er geen, of weinig effect, of dat je in de tijd dat je je wens intypt net wordt neergemept, wat is dan geluk? (Niet drinken, geen wens krijgen dus.) Bovendien zijn in veel gevallen de effecten van de keus zelf (zitten, drinken, enz.) al (een beetje) afhankelijk van je luckscore.
Ik zou het eigenlijk onterecht vinden als je bij "Do you want to drink from the fountain? [y/n/f] (f)" de uitkomst van je worp (max 76% op succes) rekening zou laten houden met wat de uitkomst zou zijn van de fontein (als lucky dan beter effect), omdat de luck dan dubbel wordt meegenomen. Eén keer in de score om het gelukkigst te kiezen, en één keer voor het beste effect.
Je zou natuurlijk ook kunnen bepleiten dat Nethack, als je dan zo lucky bent, en als het detecteert dat bij een keuze een echt gelukkige optie er niet bij zit, die gelukkige keuze dan alsnog bijvoegt, voor dus die 74%. Dat gaat mij te ver. Dat heeft ook niets meer met flip coin te maken.
Hoewel coin flip dus intuïtief wel iets met luck te maken heeft, zou ik bepleiten dat het in [y/n/f]–gevallen ‘slechts’ een eerlijke random keuzegenerator (Kans) is.

Kun je flip coin dan helemaal niet aan luck verbinden (Geluk)?
Ik denk dat dat wel (makkelijk zelfs) kan. Maar grappig genoeg andersom. Want je gooit nu eenmaal beter. Of nee, je gooide blijkbaar beter.
Stel je gooit eens 5 keer kop/munt. Als je nu eens 5 keer achter 5 x heads of 5 x tails gooit, dan ben je (blijkbaar) lucky en kan ik me voorstellen dat je dan +1 op je luckscore krijgt onder de volgende stelling:
Je gooit (één keer per level of zo) in één keer 5 x kop. Dan heb je geluk. Die punt geluk tel je op bij je luckscore in NetHack. En zo heb je dan Geluk ook gerealiseerd zonder je hoofd te breken over wat het meest gelukkig is als je op een throne gaat zitten. Zo´n puntje geluk kan crusiaal zijn!
dat is dan ½*½*½*½*½= 1/32e Dat is zo'n 3 procent, keurig. Maar wacht eens, die eerste krijg je gratis voor 100% dus dan is de kans op ofwel 5x kop, ofwel 5 keer munt, 1/16e. En dat lijkt me dan weer wat veel voor NetHack, 6 keer gooien dus. Volgende keer reken ik wel even uit hoe je dan ook -1 luck kunt krijgen, maar dan is het ook wel mooi geweest voor wat betreft de stochastische/fortuinlijke/ethische/filosofische kant (kop) eraan.

"You feel lucky."
"You are lucky, careful what you wish for!"
"Flipping a coin has got nothing to do with luck."
"You ascended vegan, confident."
"Time flies, when you are having fun. You notice you lost some gold."


Weet je nog? Dit is allemaal voorbeeld! En ik kom pas op stoom!

“Ik denk dat het Oracle ook wel iets vindt van kans, zeker als je die kan beïnvloeden met geluk. Wat? Je wilt kans en geluk gebruiken om te voorspellen dat er iets goeds gaat gebeuren, tsss! Sowieso voorzie ik irritatie (afgunst) over vermeende onduidelijkheid van dat gelukkig flippen of daar conclusies aan verbinden bij oracles. Coin flips geven veel onduidelijker toekomstbeeld dan ingewanden van verse vis. Met kretologie. Van een oracle. Kan zomaar.
"Chance is not luck, and both are poor advisors!"
"Careful with the Lady Fortuna, she is a fickle mistress!"

Takje hierheen, voor de verbreding.

Misschien is er wel een gokhal/bruine bar waar je van een louche figuur (of toch vrouwe Fortuna) informatie kan krijgen voor "tails" in een soort gokspelachtige situatie. (Afhankelijk van luck, alignment, charisma, en dreiging: de weg het kasteel in of de hoeveelheid "tailed" monsters in Sokoban, bijvoorbeeld). Kan zomaar.
Die figuur begrijpt het oracle niet.

Takje daarheen.

Is er (zijn er) een ander dualiastsch item waar je mee kunt tossen? Ja hoor. Eén keer. Schrödingers kat krijgt er dan nog maar weer eens een verdiepinkje bij.
Kan zomaar.

Of ook leuk: Uit het niets ineens een melding als NetHack bespeurt dan je ergens precies een 50/50 kans hebt met iets. "Like flipping a coin, you add "force bolt" to your spellbook." Dat kan overigens nog wel even tegenvallen want ik denk dat NetHack nu nergens percentages uitrekent. (Bijvoorbeeld spreuken leren is van een hele rits dingen afhankelijk. BUC–status, Luck, lvl, difficulty, Int, en daaruit tezamen rolt dan een eindpercentage. Althans, leer je hem wel of niet. NetHack rekent vast niet eerst de kans op succes uit…) Daar zou dan een standaard voor gemaakt moeten worden, vrijwel alles heeft een kans, en of dat het waard is… Aan de andere kant is er een eindige hoeveelheid zuivere succes/failure situaties (behalve op binair niveau). Misschien voor een select aantal situaties waarbij de kans steeds groter of kleiner wordt? Lastig maar wie weet. NetHack porten naar iWatch is ook lastig.
"Maar heb je er wat aan?" -"Hoezo?"

Volgens mij raakt het spel door de flip coin nergens uit evenwicht.
En daarmee vind ik het zeker ook een elegante additie.

"They say the harder you work, the luckier you get." (NetHack op z'n best.)
"They can say what they want but pseudo random is not random."
Okee. Voorbeeld van verbreding. Je zou het bijna vergeten. En dan heb ik er pas met z’n tweeën en vrij kort over nagedacht. Allemaal met de flip of a coin. En ik weet zeker dat je nog vele andere nutten voor de flip coin zou kunnen vinden (maken) binnen NetHack. Goede kandidaat, zou ik dus denken. Goed voorbeeld zeker.

En wie weet zit flip coin al in 3.7.0. Maar die moet nog uitkomen. In xNetHack zit het al wel. Al weet ik niet hoe.
Leuk hoor, NetHack.
Mmm, is dit nog wel redelijk en normaal, zo diep in de theorie van een spelletje duiken, theorie die er niet eens is? Mmmm.

Waar het natuurlijk allemaal op uit blijkt te komen, is dat NetHack al sinds jaar en dag zeer nauwkeurig omgaat met Luck en Kans en het verschil daartussen.
Ze zijn er ook iets dieper in gedoken dan ik, natuurlijk. Wat ik ervan kan zien en lezen, ziet het er des NetHacks grondig uit.
NetHack gebruikt de (pseudo) random number function rn2(x) –dit is een beetje vereenvoudigd– voor eerlijke gelijke kansen, maar ook rnl(x), een (pseudo) random number function die rekening houdt met je luckscore.
Pseudo slaat op dat een computer een slechte bedenker van toevallig is.
En die rnl, die rekening houdt met je luck score, wordt voor een aantal specifieke dingen gebruikt. Daar waar die gebruikt wordt, kan dat ook. Voor loopholes in het zoeken naar de beste optie wordt die dus niet gebruikt.

Wat dat betreft zit ik wel in de goede hoek over hoe ik denk dat iets wel of niet met NetHack kan of mag.