Zębatki do gier

Game Sprockets to zbiór interfejsów programowania aplikacji (API) obsługujących gry w klasycznym systemie Mac OS . Składał się z czterech głównych części, DrawSprocket, InputSprocket, SoundSprocket i NetSprocket, z których każda zapewnia bibliotekę gotowych procedur do typowych zadań w grach. SpeechSprocket była zmienioną wersją Menedżera rozpoznawania mowy, która zapewniała rozpoznawania mowy , a QuickDraw 3D RAVE zapewniał sprzętową akcelerację 3D.

Game Sprockets został wydany po raz pierwszy w 1996 roku i był używany tylko w niewielkim stopniu, zanim rozwój został anulowany w 1997 roku. OS X zawierał wiele takich samych funkcji we wbudowanych bibliotekach, podczas gdy OpenGL zastąpił RAVE jako warstwę akceleracji 3D. NetSprocket żyje jako OpenPlay , chociaż adopcja jest ograniczona.

Historia

Tło

Na początku swojej historii komputer Macintosh był silną platformą do gier ze względu na ekran o wysokiej rozdzielczości, cyfrowy sprzęt dźwiękowy oraz fakt, że każdy Mac był wyposażony w rozsądny kontroler do gier, mysz . Jednak gry nigdy nie były silnie wspierane przez Apple, aw niektórych przypadkach aktywnie odradzane. Do lat 90. platforma Mac znacznie wzrosła pod względem złożoności dzięki mnóstwu modeli o różnych funkcjach. Obsługa gry w całej ofercie wymagała od programisty poznania zawiłości różnych modeli w czasie, gdy nawet ustalenie, na której maszynie zainstalowano program, nie miało standardowego rozwiązania.

W połowie lat 90. gry komputerowe przekształciły się we własny, potężny rynek, jeden z czynników napędzających zakupy nowych komputerów. Podczas przejścia z systemu MS-DOS na system Microsoft Windows kilku pracowników firmy Microsoft zauważyło, że twórcy gier generalnie ignorowali system Windows ze względu na lepszą wydajność dostępną w systemie DOS. Zdecydowali, że system Windows musi obsługiwać gry najwyższej klasy i postanowili zapewnić, że Windows stanie się w przyszłości preferowaną platformą do gier. Rezultatem było wprowadzenie DirectX , które znacznie zmniejszyły złożoność i rozwiązały wiele problemów związanych z wydajnością. Gdy gry 3D stały się powszechne, biblioteka Direct3D stała się decydującą zaletą, a DirectX stał się niemal uniwersalny w grach komputerowych.

W połowie lat 90. granie na komputerze Mac było w dużej mierze martwe. [ potrzebne źródło ] Połączenie wysokich cen, stagnacji sprzedaży, słabej wydajności i braku systemu podobnego do DirectX spowodowało, że twórcy gier masowo odeszli z pola Mac. Podobnie jak w Microsoft, kilku pracowników Apple podjęło się rozwiązania tego problemu, na czele z Chrisem DeSalvo. Rezultatem był dwutorowy wysiłek; po jednej stronie znajdowały się biblioteki Game Sprockets (wraz z RAVE), a po drugiej pojedyncza docelowa platforma do gier, Pippin .

Krótkie życie

Gra Sprockets została wydana 29 marca 1996 roku, tuż przed tegorocznym WWDC .

Game Sprockets była jedną z wielu technologii Apple, których rozwój zakończył się po powrocie Steve'a Jobsa na stanowisko CEO w Apple. Jego śmierć została ogłoszona w komunikacie prasowym z marca 1997 r., Jako część szerokiej serii zwolnień i restrukturyzacji, gdy firma przeniosła się do przyszłości opartej na systemie Mac OS X. DeSalvo napisał dość długi list otwarty na ten temat, zauważając, że Sprockets może ponownie ożyć w przyszłości.

Opis

GameSprockets zawierało cztery główne biblioteki i dwie powiązane, omówione kolejno poniżej.

DrawSprocket

W przeciwieństwie do systemów PC starszych niż Windows, wyświetlanie kolorowych obrazów o wysokiej rozdzielczości na komputerach Mac zawsze było łatwe. Jednak uzyskanie szczegółowych informacji na temat rozdzielczości i głębi kolorów maszyny, na której działali, wymagało kilku „sztuczek”. Ponadto typowe zadania związane z grami, takie jak przełączanie rozdzielczości lub przejście do czerni , miały zawiłości, które wymagały od programisty dostosowania się do różnic w głębi kolorów, które większość ignorowała.

DrawSprocket była biblioteką narzędzi pomagających programiście rozwiązać te typowe problemy. Wśród wielu jego oddzielnych funkcji były wezwania umożliwiające użytkownikowi wybór „głównego monitora” do gry (ponieważ konfiguracje wieloekranowe były stosunkowo powszechne) czyste wyliczanie dostępnych rozdzielczości i przełączanie między nimi, różne procedury przechodzenia z jednego obrazu do drugiego (zamiast po prostu „na czarno”), wyświetlanie obrazów tła i różnych podobnych narzędzi.

Większa część DrawSprocket zapewniała warstwę abstrakcji do przewracania stron. Niektóre komputery Mac miały możliwość sprzętowego przewracania stron, podczas gdy inne nie. DrawSprocket dostarczył pojedynczy interfejs API, który działał na dowolnej maszynie, wykorzystując sprzęt, jeśli był dostępny, lub powracając do niestandardowych blitterów programowych, jeśli nie. Powiązany kod umożliwił programistom łatwe tworzenie wielu buforów ramki do rysowania, a następnie używanie wywołań przerzucania stron do szybkiego ich wyświetlania.

WejścieZębatka

Mac zawsze był dostarczany z urządzeniem wejściowym odpowiednim do gier, czyli myszą. Nawet w przypadkach, gdy inne urządzenia lepiej nadawały się do gier, takie jak joysticki, stosunkowo łatwo było zmusić urządzenia do emulacji myszy lub klawiatury. Jednak ten model przestał dobrze działać, gdy w latach 90. wypuszczono joysticki o coraz większej złożoności. Nowe modele miały kilka osi sterowanych potencjometrami z wejściem liniowym iw tych przypadkach emulacja myszy po prostu nie działała.

Rozwiązaniem był InputSprocket. InputSprocket umożliwił dostawcy sprzętu dostarczenie sterownika dla dowolnego możliwego urządzenia wejściowego. Sterownik nie tylko obsługiwał komunikację z urządzeniem wejściowym, ale także przedstawiał listę możliwości menedżerowi InputSprocket. InputSprocket wyświetlał wszystkie zainstalowane sterowniki w jednym, uniwersalnym panelu sterowania. Gry łączące się z InputSprocket dostarczyły następnie listę operacji, które użytkownik miał kontrolować. Za pośrednictwem panelu sterowania użytkownik mógł przypisać dowolną operację do dowolnego wejścia. Apple dostarczył sterowniki do myszy i klawiatur.

InputSprocket był jednym z najczęściej używanych Game Sprockets, a sterowniki zostały dostarczone dla wielu urządzeń, które działały na Macu. Zostało to znacznie rozszerzone przez mapowanie InputSprocket na podobny Human Interface Device , który jest częścią standardu USB . Oznaczało to, że prawie każde urządzenie wejściowe USB będzie działać przynajmniej w pewnym stopniu z InputSprocket bez żadnego wysiłku ze strony programisty lub użytkownika.

SoundSprocket

Menedżer dźwięku Macintosha obsługiwał dźwięk cyfrowy od najwcześniejszych wersji i dźwięk stereo przez większą część swojej ewolucji. SoundSprocket dodał do tej obsługi, włączając systemy do symulacji dźwięku 3D. Programiści mogliby dodać obsługę SoundSprocket do swoich programów i połączyć obiekty w grze z dźwiękami, które wydawałyby się zlokalizowane w przestrzeni.

NetSprocket

NetSprocket dostarczył warstwę abstrakcji, która ułatwiła programistom dodanie obsługi sieci do ich gier. NetSprocket obsługiwał AppleTalk lub TCP/IP oraz obsługiwał nazewnictwo gier, graczy i zapewnianie haseł. Wykorzystywał architekturę klient / serwer i zawierał opcję pozwalającą hostowi na uruchamianie tylko kodu sieciowego bez grafiki. NetSprocket zawierał również funkcję przypisywania identyfikatorów graczy, drużyn i typów graczy (gracze, obserwatorzy itp.). NetSprocket zapewniał również kod do przekazywania wiadomości, chociaż protokół tych wiadomości pozostawiono programiście.

NetSprocket był jedyną częścią Game Sprockets, która przetrwała po zmniejszeniu rozmiaru całego projektu. Kod został udostępniony jako open source przez Apple i dalej rozwijany o nowe funkcje i obsługę wielu platform. Najnowsze wersje obsługują Mac OS, Windows i Linux.

MowaSprocket

SpeechSprocket został dołączony do Game Sprockets, ale składał się jedynie ze zmienionej wersji istniejącego Menedżera rozpoznawania mowy.

QuickDraw 3D RAVE

Podobnie jak SpeechSprocket, QuickDraw 3D RAVE był uważany za część ogólnej technologii Game Sprockets, chociaż został opracowany i obsługiwany oddzielnie. RAVE był cienką warstwą abstrakcji sprzętowej , podobną do Direct3D DirectX .

Notatki

Bibliografia