Programmeringsspråk – Hvor lenge og hvilken type kompleksitet ville vært involvert i Chris Sawyer som skrev det meste av Rollercoaster Tycoon i Assembler? Software Engineering Stack Exchange, Rollercoaster Tycoon: Det best-optimaliserte spillet gjennom tidene? | Pcgamesn

Rollercoaster Tycoon: Det best-optimaliserte spillet gjennom tidene

Montering blir komplisert når du gjør alle de gale optimaliseringene (vektoriseringsoperasjoner, bruker spesielle instruksjonssett (SSE, osv.) Bit Twiddling osv.) Som du rett og slett ikke kan gjøre fra C. Hvis du gjør de tingene, er tiden faktisk i “fele denne biten, monter, måle. fikle denne biten, monter, måle. “Loop og ikke i selve kodingen. Med en god makroforsamling og en dyktig programmerer, er det ikke en å skrive montering enorm Trinn ned fra å skrive C -kode.

Hvor lenge og hvilken type kompleksitet ville vært involvert i Chris Sawyer som skrev det meste av Rollercoaster Tycoon i Assembler?

Kunne han ha startet med å skrive det i C, og deretter endre deler av det til Assembler etter behov for ytelse?

Ha, ha, ha, dette er som et spørsmål fra noen som har lest mine gamle kommentarer.

3 Svar 3

Fra å lese hans grove bio ser det ut som to år (tidlig 1997 til slutten av 1998). Gitt at han ser ut til å være et “ett prosjekt om gangen” person og verktøysettet og tidsrammen er ikke bra for “teamutvikling”, vil jeg anta en rett 24 programmerer-months.

På det tidspunktet hadde han vært en profesjonell spillprogrammer som jobbet i montering siden 1983, så jeg ville ikke likestille “to Chris Years” til “Two Me Years” med arbeid.

Med tanke på at de fleste profesjonelle spill tar rundt 25-manns år for et lag å utvikle seg, er to-manns år for et bransjeledende spill en fantastisk bragd, og gir trosbekjennelse til ordtakene:

  • En flott programmerer er 10 ganger mer produktiv enn en god programmerer
  • Programmereren er viktigere enn språket for produktivitet

Så i dette tilfellet hvor mye raskere ville berg -og -dalbanen skrevet, hadde Chris brukt C eller Java eller JavaScript eller . Sannsynligvis hadde det ikke hatt noe annet enn det faktum at han kan ha vært litt tregere ved å bruke et språk på høyere nivå som han ikke hadde 14 års erfaring med.

Besvart 18. november 2010 kl 23:02
2,331 2 2 gullmerker 18 18 Sølvmerker 17 17 Bronze merker
flotte poeng, jeg tanker på en måte som kan være tilfelle.

Hvis du tenker på C som lite mer enn en “høyt nivå” -monter, og vi antar at Chris ikke var å gjøre gal optimaliseringer til hans monteringskode i hver Rutine, da kan jeg forestille meg når det gjelder % tid lenger, da er det kanskje ikke så mye mer for en dyktig forsamlingsprogrammerer.

Montering blir komplisert når du gjør alle de gale optimaliseringene (vektoriseringsoperasjoner, bruker spesielle instruksjonssett (SSE, osv.) Bit Twiddling osv.) Som du rett og slett ikke kan gjøre fra C. Hvis du gjør de tingene, er tiden faktisk i “fele denne biten, monter, måle. fikle denne biten, monter, måle. “Loop og ikke i selve kodingen. Med en god makroforsamling og en dyktig programmerer, er det ikke en å skrive montering enorm Trinn ned fra å skrive C -kode.

Likevel ville jeg ikke ha vært i stand til det! Jeg gyser til å tenke på å prøve å initialisere DirectX direkte i forsamlingen! (Redigere: Wikipedia forteller meg at han skrev noen deler i C for å “grensesnitt mot Windows -operativsystemet”, så jeg antar at han ikke initialiserte DirectX i montering da. Puh!)

Rollercoaster Tycoon: Det best-optimaliserte spillet gjennom tidene?

På en tidlig søndag morgen i april 1999 ble spilldesigner Chris Sawyer plassert i sitt Living Room Command Center, en samling av ‘90 -tallsteknologi, nettlesing fora online. I slutten av mars hadde den første berg -og -dalbane -tycoon landet på hyller i Nord -Amerika som dryppet med Sawyers smittsomme kjærlighet til temaparker, og noe så ut til å ha gått alvorlig galt.

I forumene sa spillerne at spillet på en eller annen måte hadde mistet fremgangen og sendt dem tilbake til kvadratet en i spillets scenarier, som avanserer sekvensielt som nivåer. Etter mange års forsiktig arbeid, så spillet ut til å ha selvdestruert av mystiske grunner. Men Sawyer hadde en huk.

Kanskje det var mer enn en tilfeldighet. I løpet av et par timer hadde han avdekket forbindelsen. De justerte tidsstemplene på lagringsspillfilene, der for å ivareta mot tukling eller korrupsjon, samsvarte ikke med. “Pinlig, det var en åpenlyst feil fra min side,” sier Sawyer. “Eller var det?”

Systemanropet han brukte skal ha gitt tiden i UTC, uendret av dagslysbesparelser, noe som ikke skapte noe problem. “Bare av en eller annen grunn,” sier han, “det Gjorde endring!”Han kodet raskt en oppdatering og senere et verktøy for å fikse lagringsfilene.

Den større ironien var at berg -og -dalbanen ellers sto som et monument for hva en enkelt person kan oppnå i programmering. Rollercoaster Tycoon og dens oppfølger ble skrevet nesten utelukkende i Assembly Code (som Sawyers forrige transporttyron), og simlet og spyrte prosessorene i tiden for å simulere ritt, økonomier og opptil tusenvis av besøkende og deres sinnstilstander. Å kaste seg gjennom så mange tall i sanntid uten å ha krevde en mager, kompromissløs tilnærming og ikke den saktere, mer brukervennlige C-språkfamilien. Og i ultra-lenen montering, der bokstaver står for en og nuller, snakker man direkte til prosessoren.

Det er et ekstremt vanskelig språk å lære og har gått ut av stilen siden utviklingen av Fortran på 1950 -tallet. I de første dagene ga Sawyer ut en håndfull Z80-kodede spill på midten av 1980-tallet og fortsatte med å bli en stalwart ved å konvertere Amiga-spill til DOS, inkludert den klassiske Elite II.

Kjekk og sprett, gikk han deretter i virksomhet for seg selv og skapte transportmycoon mens han holdt fast på sine rettigheter, en vane som har gitt ham en jevn inntektskilde. . Han har nå ridd mer enn 700 coasters. Hans favoritt, Taron på Phantasialand i Tyskland, ser ut som noe ut av et tycoon -spill.

Sawyer graviterte til x86-montering naturlig, og satte pris på den rene presentasjonen og lynrask kompilering, og da han satte seg ut for å lage berg-og-dalpocoon, rigget han to PC-er: en rask en for koding og en tregere for testing. (Spillets systemkrav ba senere om en Intel Pentium 90MHz med minst 16 megabyte RAM.) Også satt på toppen av kommandoposten hans var en prikkmatriksskriver (han tror), en faksmaskin, en lommeguide til x86 monteringskode og en 500-siders stasjonær referanse. Dette var nok for ham; Selv om de fulle manualene løper inn tusenvis av sider, hadde han husket det meste av det han trengte.

“Jeg hadde programmert i x86 så lenge at jeg sjelden trengte å slå opp ting,” sier han.

Det tidligste spillet lignet på transporttyrongen, men med berg- og dalbaner, og grafikeren Simon Foster skapte et mer fleksibelt og fotorealistisk system slik at underlaget ville se på delen. Mye av den første designprosessen var Freeform og inspirert av noen få åpenbare forgjengere: Will Wright, Peter Molyneux, Sid Meier. Men mest av alt måtte Sawyer prioritere ytelsen. Nye funksjoner betydde en større belastning på den langsomme, marsvin -PC -en, og mens noen av dem kunne bli lansert fra koden, måtte andre bli værende.

Pathfinding var en av disse, og det ble den største hodepinen. “Det er enkelt å programmere en rutesøkende algoritme som fungerer perfekt,” sier Sawyer, “men det er til ingen nytte hvis det stopper spillet i sekunder eller minutter på et tidspunkt hvor det trenger å ta en beslutning.”

Han fliset bort ved algoritmene, og strandet mange små menn og kvinner i buskene og nedover feil dekorative bane. “Jeg hadde besøkt ganske mange store temaparker i USA da og klarte å gå seg vill i noen av dem selv,” sier han. “Så jeg trodde det sannsynligvis var riktig at gjestene i berg -og -dalbanen også slet […] hvis parkoppsettet var dårlig designet.”

Når spillet hadde utviklet seg fra Ramshackle ønskeliste til et SVGA -tempel til temaparker, spredte Sawyer det rundt til venner, naboer og naboens barn, som svarte veldig positivt. Utgiver Hasbro sørget for profesjonelle bugjakt-spilltesters, og Sawyer gjorde sin egen uendelige sondering. Og til tross for dagslysbesparende tid Hiccup, fortsatte Rollercoaster Tycoon å være det mest solgte PC-spillet i 1999.

For oppfølgeren la Sawyer til den originale kodebasen, og nærmet seg sin ultimate visjon. “Jeg elsker fortsatt det spillet og alt om det,” sa han til Eurogamer i 2016. Sawyer fortsatte å gå med forsamlingen, og brukte den nesten utelukkende til å kode Chris Sawyers bevegelse i 2004, hans mest ambisiøse spill til dags dato og også hans siste store desktop -tittel. Han har siden gått tilbake fra spillutvikling og lisensierte rettighetene til de nye berg -og -dalbane -tycoon -spillene til Atari – innsats som aldri har kommet i nærheten av suksessen til de to første.

Sawyer kommer bare ikke sammen med bransjen som det er akkurat nå, selv om han setter pris på den nylige oppblomstringen i ledelsessims. Det er lite behov for en samlingskoder i disse dager (som han er enig), og det er vanskeligere å jobbe som en ensom ulv. “Jeg føler også at jeg nå har laget alle spillene jeg ønsket å lage,” sier han, inkludert mobile versjoner av de klassiske spillene hans, “og å jobbe med andres spilldesign bare ikke begeistrer meg.”

Matt Hrodey Matt Hrodey er en spillforfatter som har dekket berg -og -dalbanen Tycoon 2 for Pcgamesn.