- SCUMM je skriptni mehanizem in jezik z lastno obliko zapisa podatkov, ki jo je LucasArts uporabljal za svoje klasične grafične pustolovščine.
- ScummVM ponovno implementira motorje teh iger in neposredno zažene originalne datoteke, ne da bi posnemal celotne sisteme.
- Projekt, ki je brezplačen in večplatformski, podpira na desetine motorjev in na stotine iger na najrazličnejših napravah.
- Zahvaljujoč tej kombinaciji se lahko klasične point-and-click pustolovščine danes igrajo z večjo stabilnostjo, dodatnimi možnostmi in brez odvisnosti od stare strojne opreme.

Če imate radi klasične grafične pustolovščine, ste zagotovo že slišali za SCUMM, ScummVM in tiste legendarne LucasArtsove igre s kazalcem in klikom kot so Monkey Island, Day of the Tentacle ali Sam & Max. Ko pa vas nekdo vpraša, kaj točno je "format SCUMM", stvari niso več tako jasne: ali gre za vrsto datoteke, programski mehanizem, jezik, interpreter?
V tem članku bomo to mirno razložili: Kaj je SCUMM kot tehnologija, kako se ScummVM vklaplja vanjo, kakšen je njegov odnos do klasičnih iger in kako se je celoten ekosistem razvil? Tudi danes. Poleg tega boste videli, zakaj so desetletja pozneje še vedno tako pomembni in kako jih lahko uživate na sodobnih sistemih, ne da bi se preveč naveličali čudnih nastavitev.
Kaj točno je format SCUMM?
Ko govorimo o »formatu SCUMM«, se pravzaprav sklicujemo na nabor tehnologij in podatkovnih datotek, zasnovanih za pustolovski motor, ki ga je ustvaril LucasArtsne v preprosto izolirano vrsto datoteke, kot je .jpg ali .mp3.
SCUMM je kratica za Pripomoček za ustvarjanje scenarijev za Maniac Mansion, interno orodje, ki se je pojavilo leta 1987 za razvoj igre Maniac Mansion in se je sčasoma preoblikovalo v grafični pustolovski mehanizem, ki temelji na skriptih in lastnem formatu virov (scenariji, dialogi, zvoki, animacije, logika igre itd.).
Njegova najbolj značilna lastnost je bila, da Ločil je kodo igre od specifičnih izvedljivih datotek za vsako platformo.Z drugimi besedami, igra je bila opisana v skriptah in podatkih SCUMM, nato pa je obstajal poseben interpreter za PC, Amigo, FM-Towns, NES itd., ki je bral ta "format SCUMM" in ga poskrbel za delovanje na vsakem sistemu.
V praksi je ta oblika sestavljala binarne podatkovne datoteke, organizirane kot visokonivojski simbolni jeziks posebnimi navodili za pustolovščine s kazalcem in klikom: premikanje likov, upravljanje inventarja, predvajanje dialogov, prikazovanje besedila, vzporedno upravljanje skriptov itd. Ni bil odprt standard, ampak notranja tehnologija LucasArts.
Izvor in razvoj motorja SCUMM
Motor SCUMM je bil prvotno ustvarjen s strani Ron Gilbert leta 1987, z začetno pomočjo Chipa MorningstarjaKasneje sta Aric Wilmunder (znan kot »SCUMM Lord«) in Brad P. Taylor še naprej širila in izpopolnjevala sistem v različnih generacijah iger LucasArts.
SCUMM je bil od začetka zasnovan kot relativno enostaven skriptni jezik za oblikovalceda bi se lahko osredotočili na logiko pustolovščine, namesto da bi se spopadali s specifično strojno opremo vsakega računalnika. Wilmunder je menil, da je motor intuitiven, do te mere, da V zgodnjih letih je bilo slabo dokumentirano ker je domneval, da se bodo ljudje to naučili s primeri.
Z uspehom sistema je LucasArts ustvaril nekakšen interni program usposabljanja, imenovan "Univerza SCUMM"Novopečeni igralci so za en teden postali "besmisi": Prejeli so intenzivno usposabljanje za upravljanje motorja, raziskali so primere projektov in razširjene testne prizore.To je olajšalo ugotavljanje, kje se vsak posameznik najbolje ujema v ekipi.
Z vsakim novim naslovom je bil vključen motor Tehnične izboljšave in manjše spremembePravzaprav obstaja približno osem glavnih različic SCUMM-a, vsaka s svojimi posebnostmi, spremembami vedenja, razširitvami ukazov in celo vejami, prilagojenimi posebej za posamezno igro.
Različice SCUMM in igre, ki jih uporabljajo
Skozi leta je LucasArts prilagodil in razširil SCUMM, tako Vsaka generacija iger je povezana z različico motorja.Poleg tega se nekatere različice razlikujejo med platformami (Commodore 64, PC, Amiga, NES, FM-Towns itd.), kar še dodatno otežuje združljivost.
Shematsko si lahko razvoj ogledamo na naslednji način, povezan s posameznimi igrami in njihovimi platformami:
Najzgodnejše različice motorja so bile uporabljene v Dvorec Maniac y Zak McKracken in tujci Mindbenders v različicah za Commodore 64 in originalni PC. Kasnejše različice za PC in prilagoditve za Amigo Uvedli so razlike v formatu podatkov in notranji logiki.
Sledila je Indiana Jones in zadnja križarska vojna: grafična pustolovščina y Loom na Amigi, PC-ju (EGA/VGA) in FM-Towns. Vsaka od teh platform je zahtevala prilagodite motor in njegove vire: barve, zvok, shranjevanje na diskete, podpora za CD-ROM itd.
z Skrivnost opičjega otoka V različicah za Amigo in PC (diskete EGA/VGA in kasneje CD-ROM) je programski mehanizem začel stabilizirati številne grafične in vmesniške zmogljivosti. Hkrati so bile izdane izboljšane različice. Loom v VGA za PC in CD-ROM, kot tudi kompilacija Potni list za avanturo, ki je vključeval demo posnetke iger Skrivnost opičjega otoka, Loom in Indiana Jones in zadnji križarski pohod.
V naslednjem valu se je pojavil Monkey Island 2: LeChuckovo maščevanje y Indiana Jones in usoda Atlantide v različicah za PC in Amigo. Ta generacija motorja je vključevala eno najpomembnejših inovacij: iMUSE dinamična glasbena tehnologija, kar je omogočalo gladke prehode med glasbenimi temami in spremembe intenzivnosti glede na dogajanje.
Že v devetdesetih letih prejšnjega stoletja se je SCUMM še naprej razvijal z Manijak dvorec: Dan lovk y Sam in Max na cestiki je predstavil bolj izpopolnjene vmesnike, višjo ločljivost in bolj gladke animacije, čeprav vedno znotraj klasične paradigme "pokaži in klikni".
V zadnjem delu motošporta so prišli naslovi, kot so Polni plin y Izkopa, kjer je razvojna ekipa eksperimentirala z integracija SCUMM-a z animacijskim sistemom INSANE, ki je bil prej uporabljen v filmu Vojna zvezd: Napad upornikov. Ta združitev ni bila trivialna: čeprav je bila dosežena funkcionalna integracija za izdajo filma Polni plin, Stabilnost ni bila vedno popolna. In trajalo je nekaj časa, da je motor v INSANE-u gladko deloval.
Zadnji veliki predstavnik motorja je bil Prekletstvo opičjega otokaki je z visoko dodelanim risanim videzom premaknil meje zmogljivosti 2D-grafike in animacije. Od tu naprej, LucasArts je opustil SCUMM v korist GrimE motorja, ki je jezik Lua uporabljal za igre, kot sta Grim Fandango in Escape from Monkey Island.
Če pogledamo nazaj na časovnico izdaj, "era SCUMM" pri LucasArts vključuje vsaj te klasike:
- Dvorec Maniac (1987)
- Zak McKracken in tujci Mindbenders (1988)
- Indiana Jones in zadnja križarska vojna: grafična pustolovščina (1989)
- Loom (1990)
- Skrivnost opičjega otoka (1990)
- Monkey Island 2: LeChuckovo maščevanje (1991)
- Indiana Jones in usoda Atlantide (1992)
- Dan Popek (1993)
- Sam in Max na cesti (1993)
- Polni plin (1995)
- Izkopa (1995)
- Prekletstvo opičjega otoka (1997)
Kaj je ScummVM in kako je povezan s formatom SCUMM?
Desetletja po rojstvu SCUMM se zdi ScummVM (virtualni stroj Scumm)ScummVM, projekt brezplačne programske opreme, ki je popolnoma spremenil način ohranjanja teh grafičnih dogodivščin, ni igra niti zgolj emulator DOS-a: Gre za virtualni stroj, ki ponovno implementira igralne mehanizme, da lahko neposredno izvaja izvirne podatke..
ScummVM je bil ustvarjen leta 2001 s strani Ludvig Strigeus (Ludde)ki je sprva poskušal razviti lasten pustolovski motor. Da bi to dosegel, je začel raziskovati notranje delovanje SCUMM-a z uporabo razstavljalcev in pomožnih orodij. Med tem procesom je spoznal, da lahko Napišite interpreter, ki lahko poganja Monkey Island 2.In tam se je porodila ideja, ki bo sčasoma postala ScummVM.
Prva javna različica, ki je bila razširjena v skupnosti, je bila 0.0.1 zelo omejena, namenjena predvsem razvijalcem, ki jih navdušujejo grafične pustolovščineVendar je to služilo kot iskra: projektu se je pridružilo več programerjev in januarja 2002 je bila izdana prva resnično javna različica, ScummVM 0.1.0, ki je že imela osnovno podporo za več različic LucasArtsovega motorja SCUMM.
Od takrat se je ScummVM spektakularno razvil: Iz poskusa interpretacije za eno samo igro se je razvila v zrelo, prenosljivo in zelo popolno platformo., ki je sposoben izvajati ogromno število klasičnih grafičnih dogodivščin na sodobnih sistemih.
Razmerje s »formatom SCUMM« je neposredno: ScummVM prebere originalne datoteke igre (skripte, grafiko, zvoke itd.) in originalno izvedljivo datoteko nadomesti s svojim virtualnim strojem.Tako ni treba emulirati celotnega starega operacijskega sistema; potrebujete le podatke o igri in pustite, da ScummVM opravi ostalo.
Tehnične značilnosti ScummVM in arhitektura projekta
ScummVM je projekt brezplačne programske opreme, ki se distribuira pod Licenca GNU GPL (različica 2 ali novejša)To pomeni, da je izvorna koda na voljo, jo je mogoče preučevati, spreminjati in distribuirati, vedno ob spoštovanju iste licence.
Projekt se je v svojih začetkih začel z pisanjem v Jezik C z majhnim ovojem C++Ko pa je program rasel in so se mu pridružili novi razvijalci (kot je James Brown), je bila koda v celoti prenesena v C++. Glavni razlog je bil Izkoristite objektno usmerjeno programiranje za lažjo prenosljivost in integracijo novih motorjev in platform.
Poleg jezika C++ so bili med razvojem uporabljeni še naslednji jeziki: drugi brezplačni jeziki in projekti kot podpora. Perl je bil na primer uporabljen za izdelavo prototipov in hitro testiranje funkcionalnosti, nekateri zunanji pripomočki, napisani v Delphiju, pa so pomagali pri analizi notranjega delovanja SCUMM-a in izvajanju nalog obratnega inženiringa.
Kar zadeva odvisnosti, ScummVM uporablja več knjižnic drugih proizvajalcev, vključno z dobro znano Preprost sloj DirectMedia (SDL) Za obdelavo videa, zvoka in dogodkov se uporablja napredni algoritem skaliranja 2xSaI (Kreed's 2xSaI), kodek ogg vorbis in zvočno knjižnico MADVse to med drugim prispeva k ponuditi stiskanje zvoka in olajšati delovanje na napravah z omejenimi viri, kot so stari dlančniki ali mobilni telefoni.
Če pogledamo podatke za eno od različic projekta (na primer 0.8.2), vidimo, da ScummVM dosega precejšnjo velikost: skoraj 300.000 vrstic izvorne kodeAnaliza z uporabo modela COCOMO je ocenila, da bi razvoj programa takšnega obsega iz nič lahko stal približno 11 milijonov dolarjev, pri čemer bi bilo potrebnih skoraj 80 oseb-let in približno tri leta razvoja, pri čemer je bilo zaposlenih na ducate programerjev s polnim delovnim časom.
Glede porazdelitve po jezikih je bilo v istem posnetku projekta ugotovljeno, da C++ je predstavljal približno 90 % kode, sledil mu je C z nekaj več kot 8 %, medtem ko so assembler, shell in Perl zasedli preostale odstotke, namenjene specifičnim nalogam (skripti za gradnjo, nizkonivojske rutine itd.).
Modeli razvoja, skupnosti in notranje organizacije
ScummVM je bil vedno razvit z kultura, tesno povezana s prosto programsko opremo in meritokracijoTo pomeni, da je teža mnenja vsake osebe znotraj projekta tesno povezana z njenim prispevkom: tisti, ki pišejo knjižnice, vzdržujejo prenose na določene platforme ali so odgovorni za kompleksne mehanizme, imajo večji vpliv na odločitve.
Ni toge hierarhije ali "vrhovnega šefa" v korporativnem slogu. Namesto tega deluje nekakšna "decentralizirana dobrohotna diktatura" V okolju, podobnem bazarju: delo je razdeljeno na podskupine (motorji, vrata, infrastruktura itd.), ki se odločajo, kako stvari narediti, čeprav vodje projektov določajo nekatere splošne smernice in pregledujejo pomembne spremembe.
Prispevki k kodi se usmerjajo prek popravkov, ki so pregledani, da se zagotovi, da ustrezajo slogovnim in kakovostnim standardom projektaTo pomaga ohranjati doslednost kode kljub raznolikosti sodelavcev.
Kar zadeva komunikacijo, je bil glavni zgodovinski kanal IRC (#scummvm na irc.freenode.net)kjer se razpravlja o vsakodnevnem delu in se hitro rešujejo tehnična vprašanja. Za pomembnejše odločitve se posvetujejo poštne sezname, forume in wikijekjer se razvijajo bolj formalni predlogi. En primer je bil prehod sistema za nadzor različic, premik iz CVS na SVN po razpravi o prednostih in slabostih med razvijalci.
Poleg tega je projekt sodeloval v pobudah, kot so Google Summer Codeki so omogočile vključitev pomembnih novih funkcij, kot so izboljšave sistema besedilo v govor (TTS) ali v dodeljevalniku tipk za veliko število motorjev in iger.
Podprte platforme in prenosljivost
Eden glavnih ciljev ScummVM je bil vedno izjemna prenosljivostŽe od samega začetka je bil cilj, da bi bilo mogoče interpreter prevesti in zagnati na skoraj vsaki minimalno zmogljivi napravi, kar je privedlo do impresivnega seznama podprtih platform.
Poleg običajnih namiznih sistemov, kot so npr. Windows, macOS in LinuxScummVM ima različice za Android, iOS in druge mobilne platformePoleg tega obstajajo uradni ali skupnostni porti za manj pogoste ali neposredno retro sisteme: AmigaOS, BeOS, Haiku, FreeBSD, Solaris, OS/2, Nintendo DS, Nintendo 3DS, Wii, Dreamcast, Xbox, GP2X, GP2X Wiz, Tapwave Zodiac, naprave WinCE, Symbian, Bada in mnogi drugi.
Zahvaljujoč tej filozofiji je mogoče Igranje pustolovščin SCUMM in mnogih drugih iger na napravah, kjer prvotno niso bile nikoli namenjene, je zdaj mogoče.: konzole, stari PDA-ji, tablice, celo nekateri televizorji ali naprave tipa set-top box, odvisno od razpoložljivih vrat.
V novejših različicah je projekt dodal podporo za Prevajanje z SDL3, skaliranje senčilnikov za 3D igre in specifične izboljšave v ključnih portih, kot so Android, iOS in Atari, pri čemer se vedno osredotočamo na to, da bi bilo to za končnega uporabnika čim bolj enostavno.
Motorji in igre, ki jih podpira ScummVM
Čeprav se je ScummVM sprva osredotočal na LucasArtov mehanizem SCUMM, je projekt sčasoma Vgrajenih je bilo na desetine dodatnih motorjevMnogi od njih so popolnoma nepovezani s SCUMM-om, vendar se ujemajo z istim duhom: klasične grafične pustolovščine in pripovedne igre.
Na področju SCUMM-a ScummVM pokriva skoraj celotna družina pustolovščin LucasArts kdo je uporabljal ta motor:
- Dvorec Maniac
- Zak McKracken in tujci Mindbenders
- Indiana Jones in zadnja križarska vojna: grafična pustolovščina
- Loom
- Indiana Jones in usoda Atlantide
- Skrivnost opičjega otoka
- Monkey Island 2: LeChuckovo maščevanje
- Prekletstvo opičjega otoka
- Dan Popek
- Sam in Max na cesti
- Polni plin
- Izkopa
- Potni list za avanturo
Prav tako podpira številni naslovi založbe Humongous Entertainment, ki je za svoje izobraževalne in športne igre (Backyard Sports, otroške serije itd.) ponovno uporabil različico motorja SCUMM. Pomožni motor, posebej zasnovan za to družino, je bil temeljito predelan, da bi dosegel praktično popolno združljivost.
Poleg SCUMM-a ScummVM integrira motorje za številne druge klasične igre različnih podjetij. Mednje spadajo pustolovske igre, kot so Pod jeklenim nebom, Zlomljen meč 1 in 2, Beg amazonske kraljice, Vojne prihodnosti, Legenda o Kyrandiji (trilogija), naslovi kot Sedmi gost, Slabosti, Ween: Prerokba, Elvira 1, 2 in Voščene lutkekot tudi Simon Čarovnik 1 in 2, Vabljivost skušnjavke ali Podeduj Zemljo, med mnogimi drugimi.
Med najnovejšimi motorji izstopajo sistemi, kot so naslednji: BLAT in PLAČATi motorji ne omogočajo le zagona obstoječih iger, temveč so tudi sami po sebi orodja za ustvarjanje pustolovščin. Motorji so bili vključeni tudi v najrazličnejše naslove, kot so Temno seme, Bog groma, Pustolovščine Willyja Beamisha, Srce Kitajske, Nancy Drew (različne epizode), Ripleyjeva Verjeli ali ne!: Uganka mojstra Luja, Izven tega sveta (Drug svet), Penumbra: Uvertura, Tex Murphy: Marsovski memorandum, Zadnji ekspres in mnogi drugi.
Pomembno je poudariti, da zaradi težav z avtorskimi pravicami ScummVM ne vključuje podatkov o igriUporabnik mora imeti originalne kopije ali uporabljati naslove, ki so jih izdali njihovi ustvarjalci. Dober primer je Pod jekleno nebo, katerega kodo in podatke je Revolution Software zagotovil za brezplačno distribucijo s spletnega mesta ScummVM, ali Let amazonske kraljice, katerih lastniki so storili nekaj podobnega.
ScummVM v primerjavi z drugimi metodami za igranje klasičnih iger
Za tiste, ki želijo igrati klasične PC pustolovščine, obstaja več možnosti: emulirajte celoten operacijski sistem z orodji, kot je DOSBoxČe so na voljo, uporabite sodobne remasterirane različice ali pa se zatecite k posebnim interpreterjem, kot je ScummVM.
Ključna razlika je v tem, da ScummVM Ne posnema celotnega osebnega računalnika ali starega sistema DOS.temveč neposredno implementira igralne mehanizme. To se običajno prevede v manjša poraba virov, boljša stabilnost in bolj dodelana izkušnja (brez težav z IRQ-ji, razširjenim pomnilnikom, starinskimi nastavitvami zvoka itd.).
Poleg tega ScummVM ponuja Dodatne funkcije ki znatno izboljšajo udobje: filtri za skaliranje grafike (na primer Super2xSaI ali podobno), popravek razmerja stranic, da grafika ni videti stisnjena, enotno upravljanje shranjenih iger, možnost spreminjanja jezika podnapisov in govora glede na igro, preslikava tipk, podpora za pretvorbo besedila v govor na namiznih sistemih itd.
V mnogih primerih je uporaba ScummVM ne le učinkovitejša od uporabe emulatorja splošnega namena, ampak tudi bolj zvest prvotnemu namenuker so razvijalci vložili veliko truda v natančno posnemanje specifičnega vedenja vsake različice SCUMM-a in drugih motorjev.
Praktična uporaba ScummVM: osnovna namestitev in organizacija
Uporaba ScummVM je precej preprosta in ne zahteva obsežnega tehničnega znanja. Običajni pristop je Prenesite priporočeno različico za vaš operacijski sistem z uradne spletne strani. (Windows, macOS, Linux, Android, iOS itd.), ga namestite kot kateri koli drug program in od tam upravljajte svoje igre prek vmesnika. Preverite lahko tudi spletna mesta za prenos retro video iger če potrebujete vire za klasične igre.
Priporočljivo je, da naslove na trdem disku organizirate tako, da ustvarite glavna mapa za igre in znotraj nje podmapa za vsako igroz vsemi njenimi podatkovnimi datotekami (originalni namestitveni programi običajno niso potrebni; zadostuje preprosto kopiranje vsebine disket ali CD-ja). ScummVM poskrbi za "notranjo konfiguracijo" igre in ne zahteva tradicionalne namestitve.
Ko zaženete ScummVM, se bo prikazalo glavno okno s praznim seznamom iger. Če želite dodati eno, preprosto kliknite na »Dodaj igro« in se pomaknite do mape, kamor ste kopirali podatkeProgram bo samodejno zaznal, za katero igro gre, in jo dodal na seznam. V relativno novejših različicah obstaja tudi možnost »Dodaj več«, ki rekurzivno prečka mapo in hkrati poišče vse združljive naslove.
Ko je igra dodana, lahko prilagodite globalno konfiguracijo ScummVM ali konfiguracijo vsakega naslova posebejMed najpogostejšimi možnostmi so način zaslona (okenski ali celozaslonski), popravek razmerja stranic, grafični filter, ki ga je treba uporabiti, jezik podnapisov, glasnost glasbe in učinkov ali mapa s shranjenimi igrami.
Med igro so osnovne bližnjice na tipkovnici Skupno za številne igre: F5 za odpiranje menija za shranjevanje/nalaganje, Alt+Enter za preklapljanje med okenskim in celozaslonskim načinom, kombinacije, kot so Ctrl+Alt+1…8 za sproti spreminjanje grafičnega filtra in tipka Esc za preskok vmesnih prizorov, med drugim.
Občasno nekateri uporabniki ugotovijo, da Igre ne morejo shraniti zaradi napake pri pisanjuRešitev običajno vključuje odpiranje menija splošnih možnosti ScummVM, odpiranje razdelka Poti in Spremenite pot shranjevanja na mesto, kjer ima uporabnik dovoljenja za pisanje.
Na koncu je pomembno poudariti, da ekipa ScummVM Ne podpira piratstva ali nezakonite distribucije igerNamen tega projekta je ohraniti te naslove in jih narediti igralne na sodobnih sistemih, vendar je odgovornost za uporabo legitimnih kopij na vsakem uporabniku. Dejstvo je, da interpreter prezre nekatere ključne zaščite ali dovoljuje uporabo stisnjenih različic podatkov. Tega se ne sme razlagati kot odobravanje nezakonitih praks..
Danes, zahvaljujoč delu skupnosti in odprtosti nekaterih studiev, ki so si delili kodo in podatke, Motor SCUMM, njegov format podatkov in virtualni stroj ScummVM so postali primer ohranjanja in ponovne uporabe klasične tehnologije.Kar se je začelo kot notranji jezik za Maniac Mansion, se je na koncu izkazalo za vrata za nove generacije, da brez tehničnih zapletov odkrijejo eno najvplivnejših faz v zgodovini grafičnih pustolovščin.
Strasten pisec o svetu bajtov in tehnologije nasploh. Rad delim svoje znanje s pisanjem in to je tisto, kar bom počel v tem blogu, saj vam bom pokazal vse najbolj zanimive stvari o pripomočkih, programski opremi, strojni opremi, tehnoloških trendih in še več. Moj cilj je, da vam pomagam krmariti po digitalnem svetu na preprost in zabaven način.