”Olyckor är inte slumpmässiga, allt detta är ett stort bedrägeri.”Eller hur elementen i det slumpmässiga i spel fungerar.
God dagstoppspel! Idag kommer jag att berätta hur elementen i slumpmässiga (slumpmässiga händelser) fungerar och hur utvecklarna i själva verket skapar vissa situationer där dessa element krävs. Jag kommer omedelbart att klargöra för en större förståelse: chans – slumpmässigt. Jag kommer att försöka berätta så mycket som möjligt och förståeligt för uppfattning. Låt oss gå!
Om de typer av slumpmässiga element
Få vet, men En dator kan inte skapa ett helt slumpmässigt nummer, Vilka algoritmer skulle inte användas. Det alltid skapade numret beror på något och kommer inte att vara helt slumpmässigt. En dator är en maskin och den följer matematiska algoritmer och formler, och en olycka, i princip, direkt motsatsen till några matematiska regler. Utvecklarna går alltid till tricks för att skapa en illusion av chansen så rimlig som möjligt, men detta kan fortfarande inte kallas ett komplett slumpmässigt.
Det finns faktiskt flera situationer där användningen av slumpmässiga element krävs:
1.Procedurgenerering (skapa landskap och världar).
2.”Ärlig” generering av föremål (förlusten av föremål från motståndare, kistor etc.).
3.”Inte ärlig” generering av föremål (fall i spel som köpts för riktiga pengar).
4.Situationer där hela spelet är bundet på de slumpmässiga elementen. (Spelkort, spel med en hexagonal kub)
5.Olika situationer som bör ske i slumpmässiga tider (till exempel att ändra vädret från soligt till regnigt).
Låt oss bo på varje markerat element mer detaljerat. (Om jag glömde att lägga till något i listan är jag nåd med kommentaren. Om det finns en riktigt intressant och konstruktiv kommentar kommer jag att komplettera bloggen).
Procedurgenerering
Naturligtvis betyder detta ord inte bara skapandet av ett landskap och miljö, detta inkluderar vistelseort av föremål på plats, karaktärer och mycket mer, men ändå är den mest populära användningsmetoden att generera slumpmässiga världar fortfarande kvarstår. Ett slående exempel är skapandet av världen i Minecraft, där det just är en procedurproduktion, Hon skapar absolut hela miljön runt spelaren (alla block, kistor, fiender, föremål, karaktärer etc.) och låt oss ta reda på hur det skapas. I själva verket har algoritmen förändrats mer än en gång, men idag fungerar den så här:
Visste du att världen i Incognito Casino Minecraft inte är oändlig? Det är 30 med 30 miljoner kvarter. När du genererar (inte bara i Minecraft, många spel också) använder den så kallade “Frö” – initialvärde.
För att skapa en unik värld är det den första betydelsen att skapa från slumpmässiga nummer och symboler. Nästan ingen metod fungerar inte utan den GPSCH (Pseudo -Labor Number Generator). Men sedan kan datorn inte skapa något slumpmässigt, Spelet tar för slumpmässiga nummer datum och tid på datorn. Om du försöker skapa två världar i spelet med samma datum och tid (till exempel 20.10.2020, 18:34), få sedan två exakt samma värld. Men skapandet av “frö” slutar inte, då konverteras detta initiala värde till ett 32-bitars nummer av flera formler. Därefter erhålls numret, som gäller för en annan metod – Buller.
Perlins brus har faktiskt inget att göra med ljudet, detta är i huvudsak en bild (ett exempel på bilden nedan) med många nyanser av grå, vita och svarta färger.Tala på ett mycket enkelt språk, ju mörkare pixeln i bilden av bruset från Perlin, desto högre (eller lägre) skapas landskapet.
Anta ett sådant exempel (mycket förenklat, i själva verket är allt mer komplicerat, det finns ett gäng “filter” av världens efterföljande “polering”). Det finns pixlar i bilden av brus bara tre färger (utan nyanser): Vit, grått och svart, då kan världen “minecraft” generera högst 3 kvarter med en höjdhöjd. White kommer att vara ett luftblock (i själva verket frånvaron av ett block), grå tjockleken på landskapet i 1 block och svart tjocklek i 2 kvarter. Men ett sådant brus av Perlin är vanligt att kalla två -dimensionellt.
Spelet använder huvudsakligen tre dimensionellt brus (3D) (men de två -dimensionella fungerar också för “polering”), Sedan när man bara använder två dimensionella (2D) skulle det vara omöjligt att skapa till exempel grottor och olika byggnader. Nedan kan du se 2D -brus. På den första bilden ser du själva bruset till vänster, och till höger resultatet av skapelsen (misslyckad jag hittade ett exempel, något 2D -spel skapas till höger). På den andra bilden ser du omedelbart resultatet av arbetet med bruset från Perlin redan i spelmotorn. Den tredje och fjärde bilden visar mer och mer tydlig.
Så här skapas alla procedurrefinerade världar, bruset från Perlin, tillsammans med algoritmerna för pseudostjänstnummer, förblir kanske de mest populära och enkla. Jag försökte beskriva så tydligt som möjligt, men jag medger att det fortfarande är för svårt för uppfattningen. Skriv i kommentarerna, om det inte är klart kommer jag att ändra bloggen. Vi kommer att gå vidare till nästa chanselement. I mer detaljerat och många gånger mer intressant om procedurproduktion kan du ta reda på från videon nedan:
“Ärlig” och “oärlig” generation av föremål.
Vad jag menar med ordet “ärlig”? Ärlig Jag kallar genereringen av objekt som inte beror på serverdata och sannolikheten för att falla ut sådana objekt genereras av en motor och inte av utvecklare eller förläggare.
Låt oss ge ett villkorat exempel: du har ett spel där det finns fyra typer av sällsynthet av något: vanlig, sällsynt, episk och legendarisk. Till exempel närmar du dig bröstet, där dessa saker kommer att falla ut till dig och systemet kommer att vara ärligt där slumpmässighetsalgoritmen inte förändras av utvecklarna efter utgivningen om så önskas. Det vill säga, om du till exempel har en legendarisk artikel, så är du “tur”, eftersom rätt nummer har fallit i algoritmen, om inte, kommer sannolikheten för förlusten av detta ämne inte att ändras baserat på det tidigare objektet som erhållits.
Förenklat detta system fungerar enligt följande: Låt sannolikheten för objekt för objekt är densamma – vanliga (70%), sällsynta (20%), episka (9%), legendariska (1%). Allt detta totalt ger 100% sannolikhet, och då kommer algoritmen att se så villkorad ut: om av misstag introduceras Det är beläget från 0 till 70, ett vanligt objekt kommer att falla ut, om från 71 till 90 kommer ett sällsynt objekt att falla ut om ett episkt objekt kommer att falla från 91 till 99, och om det introducerade nummer 100 faller ut det legendariska. Elementet i det slumpmässiga här är det mest introducerade numret. Var man får detta slumpmässiga nummer? Det finns faktiskt många sätt: från den tidigare nämnda Seeda (bara ta sina två sista siffror) innan du lyssnar på atmosfäriskt brus och ljudet från mikrofonen för dess efterföljande omvandling till en digital form (det är så den populära webbplatsen fungerar: Random.Org).
StopGame är emellertid en spelportal, så låt oss ta reda på hur sådana siffror genereras i två mest populära spelmotorer: Unity och Unreal Engine.
-I dessa motorer använder en av metoderna “Xorshift”, som tar datum och tid på datorn, sedan omvandlar det resulterande numret till ett binärt nummersystem, sammanfattar sedan detta nummer flera gånger med en övergång till höger och vänster, efter att det resulterande antalet har höjts i termer av den initiala längden och det visar ett pseudo -feliskt nummer. Tydligare och i detalj om denna metod beskrivs i videon nedan.
Låt oss nu prata om den “oärliga” generationen av föremål.
Denna metod är den mest utbredda i onlinespel: “Warface”, “Overwatch” och “CS: Go”. De använder också principen baserad på sannolikhet, som i den “ärliga” metoden, bara till skillnad från den den oärliga metoden ändrar dess sannolikhet beroende på de tidigare erhållna uppgifterna. Nu är språket enklare: om du har en “legendarisk” sak med en chans på 1%, kommer nästa “legendariska” sak redan att ha en chans att falla ut, till exempel 0.5%eller mindre, och de “vanliga” sakerna med en chans på 70%, tvärtom, kommer att höja sin chans att falla ut till 80%, så efter att flera försök att upptäcka de villkorade “fallen i CS: gå” kommer chansen att öka tills den når sitt maximalt 1%, och sannolikheten för att en “ordinarie” sak inte sjunker till 70%.
Naturligtvis behövs ett oärligt sätt, som regel, för att tjäna på spelarna, för spänning och det spöklika hoppas att “snart kommer legenden att falla, jag känner” och får spelarna att spendera pengar på den här typen av fall, roulette, satsningar och kasinon. Hela processen styrs av utvecklarna och de kan ändra sannolikhetsparametrarna när som helst, eftersom alla algoritmer finns på en fjärrserver. Låt oss prata om nästa element i det slumpmässiga nu.
Situationer där hela spelet är bundet på elementen i det slumpmässiga:
Jag pratar om de spel där din seger direkt beror på ursprungligen (eller i processen) av den resulterande slumpmässiga kombinationen av element. Det mest slående exemplet på detta i verkliga livet är att spela kort. En person blandar korten med händerna och distribuerar dem sedan till alla spelare. Men hur kan en datorblandningskort? I själva verket kan du använda en mycket konstig, men arbetsmetod: Spårar rörelsens rörelser.(Jag vet inte om den här metoden används specifikt i specifikt i kortspel, men i många projekt är den närvarande). Datorn spårar koordinaterna X och Y, på vilka musen nu är belägen och tar endast enligt det sista numret från varje koordinat. Anta att en pil av musen finns på koordinaterna x = 54 och y = 27. Algoritmen tar endast 4 (utifrån nummer 54) och 7 (ur nummer 27) för att skapa ett slumpmässigt nummer, då kan det finnas många funktioner, antalet kan läggas till, subtrahera, multipliceras, delas och erhållas av något annat nytt pseudo -nummer. Vidare är korten numrerade från 0 till 36, vi lägger till tidigare mottagna 4 och 7, vi får 11, så spelaren får en karta under nummer 11 från däcket och så tills spelarna får rätt antal kort. Naturligtvis övervakas alla musrörelser på en minut av tid, för om du tittar på den aktuella muskoordinat varje gång kommer det pseudo -formiabla numret alltid att vara detsamma om musen inte rör sig.
Jag hoppas verkligen att du förstod vad jag ville säga, jag försökte förklara tydligt, men mitt sätt att tala och berättelser “lämnar naturligtvis mycket att önska”.
Låt oss gå vidare till det sista elementet i slumpmässigt, som jag kunde formulera.
Olika situationer som bör ske i slumpmässiga tider.
I exemplet kan du få regn och åskväder från samma “Minecraft”. I själva verket finns det ingen olycka där, regnfrekvensen beror på samma “sjuka -faterade” frö, som skapades under världens generering. Med vissa Seedah förändras den regniga perioden tack vare beräkningarna enligt vissa formler (som “Mojang” inte visar). Grovt talat i samma värld, med ett fröregn, de äger rum en gång i spelet 5 dagar, i en annan värld, med ett annat frö, kommer frekvens redan att vara till exempel i spelet 7 dagar. Det finns inga element i slumpmässigt alls, allt händer naturligt och enligt formlerna.
Verkligen slumpmässiga situationer i spel används mycket sällan, men fortfarande närvarande. Låt oss analysera deras arbete.
Ta som ett exempel på vandrande köpmän i döende ljus. Jag kan inte noggrant försäkra att hela arbetaren är exakt som jag säger, eftersom vanliga användare inte har tillgång till källkoden “motorn”, men allt antyder denna metod.Köpmän visas i slumpmässiga tider (som bestäms genom GSPF) med slumpmässiga varor på en slumpmässig plats. Men här tyvärr finns det inget slumpmässigt element i nuet. Köpmän visas på speciellt förberedda platser som utvecklarna har valt för dem och säljer varor, som inte heller av misstag genereras (varorna skapas av speciellt förberedda uppsättningar av objekt, som utvecklarna också lyckades göra tidigare). Priserna för varor kan också förändras på en större eller mindre sida med bara en formel (minskande intresse för det ursprungliga priset på varor) och därmed lockar spelaren med en “tillfällig rabatt och begränsat erbjudande”, men allt detta är bara en illusion av bedrägeri.
Jag skulle vilja tro att du inte tänker på den slösande tiden som jag har använt genom att läsa den här bloggen, jag försökte göra tydligt och intressant, men det visade sig “som alltid” dåligt. Jag säger inte adjö, vi kommer att se dig i stopgame -enorma.ru