Spel Sprockets

Game Sprockets är en samling av applikationsprogrammeringsgränssnitt (API) som stöder spel på det klassiska Mac OS . Den bestod av fyra huvuddelar, DrawSprocket, InputSprocket, SoundSprocket och NetSprocket, som var och en tillhandahåller ett bibliotek med förrullade rutiner för vanliga speluppgifter. SpeechSprocket var en ommärkt version av Speech Recognition Manager som gav för taligenkänning , och QuickDraw 3D RAVE gav 3D-hårdvaruacceleration.

Game Sprockets släpptes först 1996 och användes endast i mindre omfattning innan utvecklingen avbröts 1997. OS X inkluderade många av samma funktioner i de inbyggda biblioteken, medan OpenGL ersatte RAVE som 3D-accelerationsskikt. NetSprocket lever vidare som OpenPlay , även om användningen är begränsad.

Historia

Bakgrund

Tidigt i sin historia var Macintosh-datorn en stark spelplattform på grund av sin högupplösta skärm, digitala ljudhårdvara och det faktum att varje Mac var utrustad med en rimlig spelkontroll, musen . Spelande stöddes dock aldrig på något starkt sätt inom Apple, och avskräcktes i vissa fall aktivt. På 1990-talet hade Mac-plattformen ökat avsevärt i komplexitet genom ett överflöd av modeller med olika funktioner. Att stödja ett spel över hela sortimentet krävde att programmeraren lärde sig krångligheterna hos olika modeller vid en tidpunkt då det inte ens fanns någon standardlösning för att ta reda på vilken maskin programmet installerades på.

I mitten av 90-talet hade PC-spel utvecklats till en kraftfull egen marknad, en av drivkrafterna för nya datorköp. Under övergången från MS-DOS till Microsoft Windows märkte flera Microsoft- anställda att spelutvecklare i allmänhet ignorerade Windows på grund av den bättre prestanda som finns tillgänglig under DOS. De beslutade att Windows behövde stödja förstklassigt spel, och satte igång att se till att Windows skulle bli den föredragna spelplattformen i framtiden. Resultatet blev introduktionen av DirectX- biblioteken, vilket avsevärt minskade komplexiteten och åtgärdade många av prestandaproblemen. När 3D-spel blev utbredda blev bibliotekets Direct3D en avgörande fördel, och DirectX växte till att bli nästan universellt för PC-spel.

I mitten av 90-talet var spelandet på Mac i stort sett dött. [ citat behövs ] Kombinationen av höga priser, stagnerande försäljning, dålig prestanda och avsaknad av ett DirectX-liknande system resulterade i att spelutvecklarna lämnade Mac-fältet i massor. Som det var i Microsoft tog flera Apple-anställda på sig att åtgärda detta problem, ledd av Chris DeSalvo. Resultatet blev en tvådelad insats; på ena sidan fanns Game Sprockets-biblioteken (tillsammans med RAVE), och på den andra var en enda målspelplattform, Pippin .

Kort liv

Game Sprockets släpptes den 29 mars 1996, strax före det årets WWDC .

Steve Jobs återvände till VD-posten hos Apple. Dess död tillkännagavs i ett pressmeddelande i mars 1997, som en del av en lång rad uppsägningar och omstruktureringar när företaget flyttade till en Mac OS X-baserad framtid. DeSalvo skrev ett ganska långt öppet brev om ämnet och noterade att Sprockets kan komma till liv igen i framtiden.

Beskrivning

GameSprockets inkluderade fyra huvudbibliotek och två associerade, diskuterade i tur och ordning nedan.

DrawSprocket

Till skillnad från pre-Windows PC-systemet hade det alltid varit enkelt att visa högupplösta färgbilder på Mac. Men att få detaljer om upplösningen och färgdjupet på maskinen de körde på krävde ett antal "tricks". Dessutom hade vanliga speluppgifter, som att byta upplösning eller tona till svart , krångligheter som krävde att programmeraren justerade för skillnader i färgdjup som de flesta ignorerade.

DrawSprocket var ett bibliotek med verktyg för att hjälpa programmeraren att ta itu med dessa vanliga problem. Bland dess många separata funktioner var anrop för att låta användaren välja en "huvudskärm" för spelet, (eftersom konfigurationer med flera skärmar var relativt vanliga) rent uppräknade tillgängliga upplösningar och växla mellan dem, olika rutiner för att tona från en bild till en annan (istället för bara "till svart"), visar bakgrundsbilder och olika liknande verktyg.

En stor del av DrawSprocket tillhandahöll ett abstraktionslager för sidvändning. Vissa Mac-datorer inkluderade möjligheten att bläddra i hårdvara, medan andra inte gjorde det. DrawSprocket tillhandahöll ett enda API som fungerade på vilken maskin som helst, med hjälp av hårdvaran om den var tillgänglig, eller faller tillbaka till skräddarsydda mjukvarublitters om den inte gjorde det. Relaterad kod gjorde det möjligt för utvecklare att enkelt skapa flera rambuffertar att dra in i och sedan använda sidvändningsanropen för att snabbt visa dem.

InputSprocket

Macen hade alltid levererats med en inmatningsenhet lämplig för spel, musen. Även i fall där andra enheter var bättre lämpade för spel, som joysticks, var det relativt enkelt att få enheterna att emulera mus- eller tangentbordsinmatning. Den här modellen slutade dock att fungera bra eftersom joysticks med ökande komplexitet släpptes på 1990-talet. Nya modeller hade flera axlar styrda av potentiometrar med linjär ingång, och i dessa fall fungerade helt enkelt inte musemulering.

Lösningen var InputSprocket. InputSprocket tillät hårdvaruleverantören att tillhandahålla en drivrutin för alla möjliga indataenheter. Föraren hanterade inte bara kommunikationen med inmatningsenheten, utan presenterade också en lista över funktioner för InputSprocket-hanteraren. InputSprocket visade alla installerade drivrutiner i en enda, universell kontrollpanel. Spel som länkade till InputSprocket gav sedan en lista över de operationer de ville att användaren skulle kontrollera. Genom kontrollpanelen kunde användaren mappa vilken operation som helst till vilken ingång som helst. Apple levererade drivrutiner för möss och tangentbord.

InputSprocket var en av de mest använda av Game Sprockets, och drivrutiner levererades för många enheter som fungerade på Mac. Detta utökades kraftigt genom att kartlägga InputSprocket till det liknande Human Interface Device- systemet som är en del av USB -standarden. Detta innebar att nästan vilken USB-ingångsenhet som helst skulle fungera till åtminstone någon nivå med InputSprocket utan någon ansträngning från utvecklarens eller användarens sida.

SoundSprocket

Macintoshs Sound Manager stödde digitalt ljud från de tidigaste versionerna och stereo under mycket av sin utveckling. SoundSprocket lade till detta stöd genom att inkludera system för att simulera 3D-ljud. Programmerare kan lägga till SoundSprocket-stöd till sina program och länka objekt i spelet till ljud som verkar lokaliserat i rymden.

NetSprocket

NetSprocket tillhandahöll ett abstraktionslager som gjorde det enkelt för utvecklare att lägga till nätverksstöd till sina spel. NetSprocket stödde antingen AppleTalk eller TCP/IP och stödde namngivning av spel, spelare och tillhandahållande av lösenord. Den använde en klient/server-arkitektur och inkluderade ett alternativ för att tillåta en värd att köra bara nätverkskoden utan grafik. NetSprocket inkluderade också funktionalitet för att tilldela spelar-ID:n, lag och spelartyper (spelare, observatörer, etc.). NetSprocket tillhandahöll också kod för att skicka meddelanden, även om protokollet för dessa meddelanden lämnades till programmeraren.

NetSprocket var den ena delen av Game Sprockets som levde kvar efter att projektet som helhet minskades. Koden släpptes som öppen källkod av Apple och vidareutvecklades med ny funktionalitet och stöd för flera plattformar. De senaste versionerna stöder Mac OS, Windows och Linux.

SpeechSprocket

SpeechSprocket ingick i Game Sprockets, men bestod av inget annat än en ommärkt version av den befintliga taligenkänningshanteraren.

QuickDraw 3D RAVE

Precis som SpeechSprocket ansågs QuickDraw 3D RAVE vara en del av den övergripande Game Sprockets-teknologin, även om den utvecklades och stöddes separat. RAVE var ett tunt hårdvaruabstraktionslager liknande DirectX:s Direct3D .

Anteckningar

Bibliografi