Verktygsassisterad speedrun (förkortad som TAS [1] ) - snabba igenom spelet med hjälp av emulatorns inbyggda verktyg , såsom spara och skriva över, sakta ner och ruta för bildruta inmatning, visa innehållet i minnet och analysera den körbara koden . Tanken bakom TAS är att överskrida gränserna för mänsklig reaktion och spelarens förmåga för att nå de teoretiska gränserna för spelet, det vill säga gränserna för spelmotorns faktiska kapacitet . Huvudmålet med att arbeta med TAS är att skapa underhållande videor som visar hela passagen av det valda spelet.
Demofilmen som spelats in med emulatorn är inte en videofil. Detta är bara en sekvens av knapptryckningar som registrerats i tid ( ingångslogg ) . Om det visas på samma (eller kompatibla) versioner av emulatorn och ROM som det spelades in på, kommer spelets svar på spelarinmatning alltid att vara detsamma, inklusive spelets AI- åtgärder och generering av pseudo- slumptal . På grund av spelmotorernas determinism ger tangenttryckningar från samma tid samma resultat.
Målet med varje TAS-era (skaparen av en TAS-passage) är att hitta den optimala sekvensen av klick som leder till önskat resultat med ett minimum av tid. För detta används följande metoder.
Emuleringshastigheten kan ökas eller minskas. Ease används för att mer exakt övervaka spelhändelser under TAS-inspelning. Således kan spelaren noggrant tänka igenom varje åtgärd och abstrahera från hastigheten på hans reaktion.
Frame advance -funktionens utseende i moderna emulatorer , det vill säga frame-by-frame [5] framsteg av spelet, gjorde det möjligt att förtrycka de nödvändiga tangenterna för varje enskild bildruta. Genom att spela in TAS i det här läget kan du gå in i spelet med en sekvens av klick, justerad till inom en ram (den minsta odelbara enheten för speltid).
Omskrivning av ineffektivt avslutade delar av spelet utförs på basis av omedelbara besparingar - möjligheten att spara och ladda spelet var som helst. Endast den sista versionen av passagen kommer in i den slutliga demofilmen. Således kan TAS-er upprepade gånger spela om vilken del av spelet som helst, optimera taktik eller experimentera med spelmotorn. Till exempel beror priset som faller från en dödad fiende i vissa spel på vid vilken tidpunkt fienden dödades. Den här funktionen är baserad på den så kallade luckmanipulationen , det vill säga indirekt kontroll av värdena på minnesceller som är ansvariga för ett visst spelelement.
Minnesskanning behövs för att få korrekt information om olika delar av spelet, såsom karaktärernas hälsa/status, deras koordinater och hastighet till närmaste bråkdelpixel . Sådan information underlättar avsevärt analysen och antagandet av optimala beslut av spelaren.
För att övervaka dessa värden måste du känna till adresserna till motsvarande celler i set-top-boxens minne . De är olika i varje spel. Cellen av intresse kan hittas genom progressiv filtrering. Vidare läggs denna cell till i listan över adresser som ständigt visas av spelaren.
Minnesgranskning, kombinerat med avmattning och överskrivning, gör att du kan kontrollera spelarens karaktär, och därför händelseförloppet i hela spelet, med extrem precision.
Moderna TAS-are använder de rika funktionerna i skriptspråket Lua [6] för att göra processen att passera enklare och bekvämare. Kända användningsfall för Lua:
Bildräknaren hjälper dig att hålla reda på hur många bilder en handling varar, för att objektivt jämföra olika spelstrategier och utvärdera dem i termer av tid. Fördröjningsräknaren låter dig identifiera mönster av oönskad avmattning i spelet och utveckla en optimal strategi för att minimera den tid som går förlorad på grund av fördröjning.
Genom att titta på knapptryckningar kan varje tittare av TAS-filmer få en uppfattning om de manipulationer som utförs och ofta upprepa tricken utan att gå in på deras kärna [7] .
Att demontera spelkoden öppnar för åtkomst till dolda mönster. Att arbeta med debuggern inbyggd i emulatorn kräver som regel speciell kunskap, men det låter dig ta isär spelets logik, förstå principerna för driften av enskilda mekanismer (till exempel algoritmen för att generera pseudoslumptal för att manipulera lyckan utan att tillgripa trial and error ), upptäck eventuella buggar och sårbarheter i spelmotorer.
Demonteringen av konsolspel är nära besläktad med romhacking .
Specialdesignade botprogram som spelar spelet istället för en människa kan bara användas under korta tidsperioder, eftersom antalet möjliga klick ökar exponentiellt för varje nästa bildruta i filmen. Dessutom, för att skapa ett riktigt underhållande videomaterial, är en persons direkta deltagande i inspelningen nödvändigt, så programmeringsrobotar för TAS används endast i speciella fall av manipulation.
Passager skiljer sig åt i de uppsatta målen och de metoder som används för att uppnå dem. Här är några av dem [8] :
Målet är att nå finalen så snabbt som möjligt. Huvudtaggen för de flesta playthroughs. För tidens skull missar spelaren ofta priser, eftersom beräkningen av bonuspoäng tar extra tid, missar motståndarnas slag, undvikande som tar flera bilder och förstörelsen av motståndare ofta sker på det mest oväntade sättet [9] .
Flera olika spel spelas samtidigt, det vill säga en indatafil skrivs som fungerar i alla. Vid omkodning till en videofil placeras alla passager på en skärm [10] .
Längs vägen hoppar författaren över vissa nivåer med offentliga trick, som hemliga passager och bonusteleporter . Ibland är det möjligt att hoppa genom flera nivåer på grund av ett misstag i koden eller designen på kartan. Tillsammans med sådana körningar läggs vanligtvis en genomgång av spelet utan överhopp på sajten - No warps .
När mängden energi upphör att bero på slump eller misstag, kan en person kontrollera dess nivå beroende på uppgiften. I nästan alla spel finns det avsnitt som tar längre tid att slutföra om du sparar energi. TAS-er byter ut en reserv av energi mot tid och beräknar noggrant var den kan sparas och var den kan användas med större nytta.
Bokstavligen - manipulation av tur. En ganska komplex teknik, som innebär en förståelse för spelets logik. Eftersom varje värde i varje minnescell är strikt deterministiskt, är det möjligt att kontrollera vad en normal spelare anser vara ett slumpmässigt element. I sig är det inte så svårt att hantera dessa element som att hitta den faktor som påverkar dem.
För att påskynda passagen av TAS-are använder de ofta utvecklarnas misstag ( obalans i spelet, tillsyn av testare, buggar hos programmerare). Sådana fel uppstår på grund av konsolens allvarliga begränsningar.
Med hjälp av NES- plattformen som ett exempel , för att ladda ner minne, förenklar utvecklarna kontrollerna som görs av spelet. Om karaktären börjar gå in i väggen kommer väggen att trycka bort honom från sig själv, vilket hindrar honom från att komma in. Men om han redan är i den här väggen kommer det att börja trycka honom i motsatt rörelseriktning. Och du kan komma in i det om du inte går in i det, utan till exempel hoppar sittande [11] .
Ibland kan sådana filmer förvåna tittaren med en extravaganza av obegripliga händelser. Vissa speedruns balanserar bokstavligen på gränsen till att frysa spelet. Denna klass av genomgångar innebär att en person kontrollerar en glitch , beräknar vilket onormalt beteende i spelet som är mer fördelaktigt för honom: möjligheterna för karaktärens beteende för varje bildruta och spelmotorns svar på detta beteende är markerade [12] .
I vissa spel kastas inte karaktären tillbaka till början av nivån när den dör. Dessutom, efter döden i många spel, ges hjälten osårbarhet under en kort tid [13] .
En person kontrollerar två karaktärer samtidigt (ibland fler - upp till fyra). Det finns två sätt att implementera denna idé, var och en på sitt sätt. Antingen förse huvudkaraktärerna med samarbete , samtidigt som du håller ner tangenterna för båda, eller använd multitrack.lua-skriptet, som låter dig registrera kontroll för varje karaktär separat i cirka några sekunder: den ena står still, den andra rör sig och skriptet "kommer ihåg" inmatningen, sedan spolas spelet tillbaka och kontrollen ordineras för en stående karaktär. Svårigheten är att medan den andra spelaren står, är fiendernas beteende en sak, och när han också rör sig är det annorlunda; du måste korrigera rörelserna för den första igen. [fjorton]
För att intressera publiken mer väljer filmens författare den maximala svårighetsgraden. Detta gäller endast i de spel som blir objektivt svårare i det här fallet. Om komplikationen bara ökar fiendernas energi, eller minskar tiden som tilldelats hjälten, kommer den inte att användas.
System/konsol | Emulatorer |
---|---|
NES | FCEUX , BizHawk, FCE Ultra |
super nintendo | Snes9x, BizHawk, lsnes |
Virtuell pojke | VBjin |
Nintendo 64 | BizHawk, mupen64 |
Game Boy , Game Boy Color , Game Boy Advance | BizHawk, VisualBoyAdvance |
nintendo ds | DeSmuME |
Playstation | BizHawk, PSXjin, PCSX |
Master System | BizHawk |
Sega Mega Drive | BizHawk, Gens |
Saturnus | BizHawk, Yabause |
Arcade , Neo Geo | Final Burn Alpha ominspelning |
PC-motor | BizHawk, PCEjin, Mednafen |
DOS | JPC-rr |
MSX | OpenMSX |
Windows | Timglas |
linux | libTAS |