30 mei 2024 (Laatste aanpassing 30 mei 2024)
not yet
“You've got to ask yourself one question: 'Do I feel lucky?' Well, do you, punk?”
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 verrassend 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.
Het Dev-team is liever bezig met het verbreden en verdiepen van het spel dan met het aanmaken van nieuwe items of bijhouden van (nog meer) eindstatistieken. Waar ze die verdieping dan voor zich zien, en hoe? Wat is verdieping in NetHack dan eigenlijk?
Hoe ver (diep) 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, en ik weet ook van veel dingen niet hoe ze zo zijn gekomen.
Ik bedacht me dat ik dan zelf maar een hypothetische verbreding en/of verdieping moest verzinnen.
Dat bleek ondoenlijk. Lang, lang bezig geweest met wat te kiezen. Uiteindelijk ben ik gevallen voor iets wat al als patch was gemaakt. 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.
Het moet idealiter iets zijn dat al in het spel zit. Iets dat je sinds jaar en dag voor zoete koek aanneemt. Iets dat hergebruikt wordt voor iets nieuws. Iets dat mogelijk enig nut heeft. En dat iets moet niet allesbepalend zijn. En het is extra leuk als je er (eens) een heel spel op kunt inrichten, maar zonder moet je er geen last van hebben (rustig beginnen).
Flip coin vind ik leuk.
Als je erom vraagt gooit NetHack een muntje voor je op: kop of munt.
Het is simpel, 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 (zou kunnen) 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 uiteindelijk niet. Dus een coin met twee koppen, een konijnenpoot, hoefijzers, klavers 4, niet aan beginnen.
Flip coin stel ik me voor als een soort nieuwe categorie met een bezigheid, en die zichtbaar aan dingen met RNG, dingen met keuzes, en dingen met geluk raakt. In NetHack zijn natuurlijk heel veel dingen met random en keuzes, maar die zie je niet zo(maar).
De basis is even kinderlijk eenvoudig als ijzersterk.
Eerst eens wat flip coin behelst of kan behelzen.
Voor wat je gooit kun je er sowieso twee kanten mee op.
Ten eerste Kans:
Kans voor volledige willekeurigheid, zuiver. 50(,0000000000000000…)% Heads, rest Tails.
De kans op Kop is de kans op Munt. ½ om ½. Als je een goede RNG hebt is programmeren een makkie. RND(2), ?(2) of RNG(2). Zoiets is het, en ik ben niet eens programmeur.
En dan ten tweede Geluk(?):
Hoezo geluk? Geluk voor het gewenste resultaat.
De kans is (wordt) snel en graag gekoppeld aan geluk. In elk geval door de gokindustrie en de gokkers, maar ook in vrijwel alle (andere) spellen.
Dat kans en luck verweven zijn, wordt door vrijwel iedereen voor zoete koek aangenomen.
In zekere zin is dat wonderlijk. Ik was nooit erg goed in statistiek en kansberekening, maar voor zover ik me herinner was er binnen de kansrekening geen grond voor luck. En 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. En zelfs als je het omdraait, wordt het niet beter. Het is dus eigenlijk nog erger dan “Een koe is een dier, een dier is een koe”. Daarbij klopt er tenminste nog íets van. Want Kans is ook niet luck.
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.
Toch heb ik er gevoelsmatig geen enkel probleem mee om Kans aan Geluk te koppelen.
En met mij vele wetenschappers tijdens een potje klaverjas, hoe sceptisch ze ook zijn over geluk in wetenschappelijk opzicht.
Wie zegt dat kans en geluk in NetHack, bij full moon, werkelijk zo gescheiden zijn? 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. Wat kun je gooien met Flip coin. Kans en geluk.
En wat kun je met die kans en geluk dan doen in NetHack?
Hoe kun je het gebruiken; hoe gooi je sowieso?
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.” (En dat is duidelijk Kans.)
En dan kun je het daarmee dan doen. Of niet. Wat je wil. Het kost geen tijd om je geld te tellen, en ook niet om te flippen. Je spreekt (met jezelf) af dat Heads rechts of yes is, en je kunt al je beslissingen er vanaf laten hangen als je wilt. Of geeneen. Je kunt je hele spel erdoor laten leiden, of het volledig negeren. Zit er dan gewoon in. De meest elementaire stochastische check. Nog veel simpeler dan “Wat rol je met een dobbelsteen?” Af.
Is dat nu zo´n hemelstormende verbreding? Nou het voldoet wel aan aan aantal criteria: iets zijn dat al in het spel zit, sinds jaar en dag voor zoete koek, hergebruikt voor iets nieuws. Mogelijk enig nut, niet allesbepalend. En je zou er zelfs je hele spel op kunt inrichten, en zonder er ooit naar te kijken kun je ook makkelijk ascenden. (Voor zover ascenden makkelijk is.)
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.
Misschien (beter) krijg je gewoon je geldhoeveelheid te zien als je op $ drukt, en wat je flipt als je tweede actie (je geld tellen kost geen tijd, is geen actie) wederom $ (wat mij betreft is dat wel een actie) is, en de derde en vierde, enzovoort. Daar zou ik voor zijn.
“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.”
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 maar niet volledig uit de lucht gegrepen boodschap.
Je zou ook een aantal meldingen “Are you sure? [yes/no] (n)” kunnen vervangen door “Do you want to drink from the fountain? [y/n/f] (n)”. Waarbij die ‘f’ dan staat voor “flip coin en gebruik resultaat”. 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, let wel: 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!).
Het ingewikkelde deel komt daarna.
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. Die twee opties uit, en rest_on_space aan is wat mij betreft overigens ook wel een conductsvermelding waard… 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. (Dit is wel veel makkelijker gezegd dan gedaan, maar goed.)
“You have been confident.”
Maar nu het ingewikkelde deel, met geluk erbij.
Ik zou voor een spel als NetHack geluk verwachten in een flip coin. Zou je je geluk kunnen gebruiken op nieuwe onverwachte manieren?
Als je weet dat je geluk hebt, en je bepaalt wat te doen met een “flip coin” (zeg: ik drink als ik ‘Kop’ gooi), kun je dan daardoor zorgen dat dat drinken dan een gelukkig (Luck) resultaat oplevert?
Als je nu extreem lucky bent, kun je dan de uitkomst van je flip coin (lucky) gebruiken om van te voren te bepalen of je van de fontein moet drinken? Je verwacht immers meer kans op iets goeds, omdat je lucky bent, en dat is Geluk.
Mooi gedacht, en daar wordt het snel lastiger. 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. Ik zou het floepen of floopen willen dopen. Met je luck (die achteraf blijkt) wil je je kans (die je nu hebt) interpreteren.
Zal ik van de fontein drinken? Ik weet dat ik erg veel geluk heb. Als ik kop zal gooien, zal ik wel drinken. Daarbij zal ik het meest kans hebben op het gunstigste resultaat.
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 (bijvoorbeeld) 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 een aantal 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.) Daarbij stel ik me voor dat je direct de actie moet doen na de check want één keer zoeken tussendoor en het best kan alweer iets anders zijn. Bovendien zijn in veel gevallen de effecten van de keus zelf (zitten, drinken, enz.) al (een beetje) afhankelijk van je luckscore. Maar de echte dooddoener zit hem in het feit dat je op een fontein gaat staan, dat je flipt, en dat je daarna, omdat je een positief resultaat kreeg, op je wonderlamp wrijft. Ik hoop niet dat je ook nog aan moet geven wat je direct! na de flip coin van plan bent.
En zelfs als je zou kunnen aangeven dat het op drinken van de fontein zou gaan, zou ik 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 (zuivere Kans) zou moeten zijn.
Flip coin is beter dan floop coin.
Zou er een commando #flip komen, kun je dat specifiek binden aan een actie, en dan zou je potentieel dus een gunstig resultaat kunnen zoeken. (Ook voor het slaan van een acid blob?)
#flip
->
“Do you want to flip a coin whether to hit the acid blob? [y/n] (y)”
‘You decide not to hit.’
Ik weet niet of zoiets een goed idee is. De volgende ronde kun je weer #flip doen. Totdat je zonder gevaar (grotere kans daarop) kunt slaan. Dat maakt het op deze manier onbruikbaar. In elk geval nooit verraden of er sowieso luck in een optie verscholen is. "The elf corpse was tainted!"
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 elkaar heads of 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 tot het een keer lukt), eerste keer proberen, keer 5 x kop. Dat is mazzel. 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 of en hoe je dan ook –1 luck kunt krijgen, maar dan is het ook wel mooi geweest voor wat betreft de stochastische/(on)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 councelors!”
“Careful with the Lady Fortuna, she is a fickle mistress!”
Takje hierheen,
Misschien is er wel een gokhal/bruine bar waar je van een louche figuur (of toch vrouwe Fortuna, non-hostile chaotic unicorn) 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.
En die figuur begrijpt het oracle natuurlijk niet.
Takje daarheen…
Is er (zijn er) in NetHack een ander dualiastsch item waar je zuiver mee kunt tossen? Ja hoor. Eén keer. Die kist met Schrödingers kat krijgt er dan nog maar weer eens een verdiepinkje bij.
Kan zomaar.
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 en verdieping. Voorbeeld. 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 aardigheidjes voor de flip coin zou kunnen vinden (maken) binnen NetHack. Goede kandidaat, zou ik dus denken. En wat mij betreft eindelijk een voldoende goed voorbeeld van hoe je een bijzonder simpele zaak in NetHack maar kunt blijven verbreden en verdiepen 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 TDTTOE; 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. Ze hebben het bijvoorbeeld eerst eens even gekwantificeerd. En geïmplementeerd. Een flink deel van wat ik hierboven beschrijf over luck is dus al lang en breed bekeken. En verwerkt nota bene. Vandaar misschien dat het mij ook zo logisch overkomt. Wat ik ervan kan zien en lezen, ziet het er des NetHacks grondig uit.
Het mag dan dus een voorbeeld van verbreding/verdieping zijn, maar lengte en breedte waren eigenlijk toch al gezet!
Dat maakt het ook verbreding! Maak met de riemen die je al hebt een nieuw boek!
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 werkt het dus niet.
Dat is zo te zien dus een weloverwogen keuze geweest van het DEV-team. En daar kan ik ook helemaal achter staan.
Maar toen hadden ze de flip coin ook nog niet!. Je flip coin is zichtbaar!
Dit alles overziende zou ik voor verbreding overhouden:
flip coin (uitkomst) laten zien (kost tijd)
intern spelletje 6 x flippen voor luck, risico geld
misschien iets met #flip-commando
opmerkingen van het oracle
eventueel Lady Fortuna met opmerkingen
flip coin linken in fortune met Schrödinger´s cat
en een setje meldingen.
Meer dan zat.
Leuk hoor, NetHack.