Na jakiej platformie opracowano stare gry telewizyjne? [Zamknięte]

13

Bardzo chcę wiedzieć, w jaki sposób opracowano gry telewizyjne (w które wszyscy graliśmy w dzieciństwie) i na jakiej platformie.

Wiem, jak tworzone są gry na urządzenia mobilne, komputery PC z systemem Windows i Mac, ale nie rozumiem, jak (w tamtych czasach) Contra, Duck Hunt i wszystkie te gry zostały opracowane. Ponieważ mają wysoką grafikę i dużą liczbę etapów. Jak udało im się opracować gry w tak małym środowisku i na niższej platformie konfiguracyjnej?

Mihir Palkhiwala
źródło
3
Jordan Mechner opublikował kilka źródeł Prince of Persia dla Apple II kilka miesięcy temu: sprawdź tutaj, jeśli jesteś zainteresowany.
Laurent Couvidou

Odpowiedzi:

17

Naprawdę stare gry - napisane dla NES, Game Boy, SNES, a nawet starszych systemów, takich jak rodzina Atari - były zwykle pisane w języku asemblera . Było to konieczne, ponieważ ówczesne kompilatory C albo nie istniały, albo nie wystarczały do ​​wygenerowania wystarczająco wydajnego kodu.

Byli w stanie wycisnąć wszystkie te rzeczy na małe kartridże - w przypadku NES nawet 256 KB było dużą ilością danych (choć istniały większe gry) - ponieważ używali sprytnych sztuczek, takich jak grafika kafelkowa i niska kolorystyka, umożliwiając wiele danych do przechowywania na bardzo małej przestrzeni. Dodatkowo specjalistyczne układy wideo i audio umożliwiły wydajniejszą obsługę tych rzeczy bez konieczności robienia wszystkiego w oprogramowaniu.

Z czasem kompilatory C stały się bardziej wydajne, a urządzenia stały się bardziej wydajne - domyślnie wszystkie urządzenia N64, GBA i nowsze używały C, a nawet C ++ - a montaż był zarezerwowany dla małych fragmentów kodu, w których konieczna była dodatkowa optymalizacja, aby konsekwentnie spełniać wymagania 60 FPS cel (lub dowolną liczbę klatek na sekundę w grze).

Michael Madsen
źródło
4
@Mihir stare gry nie były w żaden sposób bezbłędne. Ale częściowo wydaje się, że działają lepiej niż niektóre najnowsze gry, ponieważ są one znacznie, znacznie mniej złożone niż ich współczesne odpowiedniki.
chaosTechnician
1
@AndroidCoader to, czego szukasz, nazywa się emulatorem. Istnieją na wielu platformach, emulując funkcję starych systemów na nowoczesnych maszynach, ale często istnieje wiele problemów prawnych / szarej strefy związanych z używaniem ich do grania w gry.
chaosTechnician
Uważam, że „Gran Turismo”, kiedy po raz pierwszy ukazało się na PS, zawierało duże ilości kodu napisanego w asemblerze z powodu związanej z tym fizyki.
casperOne
3

Pamiętam, jak pisałem proste gry dla Commodore 64 / Vic20 na początku lat 80-tych. Niektóre BASIC (wierzcie lub nie - niektóre gry były całkowicie zakodowane w języku BASIC - BASIC znajdował się w pamięci ROM komputera, więc był darmowy) - ale głównie asembler. Asembler też nie był konsekwentny - większość maszyn miała kilka komercyjnych asemblerów (choć jak większość wtedy pisałem własne). Grafika na C64 była bardzo zaawansowana jak na razie ze sprajtami rastrowymi (tylko 8 ekranów było dozwolone na raz - ale można je było powielać w oprogramowaniu z pewnymi sztuczkami, dając setki, ale tylko 8 odmian na ekranie na raz). Miały 16 kolorów (paleta - które można zmieniać w czasie wykonywania, podobnie jak duszek). Duszki były oczywiście 2D.

Pierwszym „komputerem domowym”, na którym grałem (ignorując wcześniejsze maszyny naukowe i biznesowe), był ZX81 (moja szkoła miała ZX80 - ale był zamknięty w szklanej skrzynce jak eksponat muzealny - nikt nie wiedział, jak z niego korzystać!). Wyobraź sobie pisanie gry w 1/4 K (to 256 bajtów!) - teraz to umiejętność!

Wolf5370
źródło
3

Systemy gier wideo lub konsole pierwszej generacji (wcześniej zwane konsolami) z późnych lat 70. i do dziś są rozwijane podobnie jak każdy wbudowany system komputerowy .

Komputer wbudowany to komputer (tj. Mikrokontroler lub mikroprocesor) w systemie elektronicznym, który nie przypomina komputera osobistego lub większego systemu komputerowego z wieloma użytkownikami (np. System podziału czasu, minikomputery i komputery mainframe); jedną z głównych różnic jest to, że zazwyczaj brakuje im teraz standardowego wejścia / wyjścia przez terminal wideo i klawiaturę.

Opracowywanie odbywa się na innym komputerze, obecnie jest to zazwyczaj komputer programistyczny lub stacja robocza z wykorzystaniem wieloplatformowego środowiska programistycznego, które wytwarza pliki wykonywalne dla systemu docelowego - w tym kontekście system gier wideo, który często jest inną architekturą mikroprocesorową niż programistyczna własny procesor (lub host ) systemu.

Dwa przykłady obecnych systemach do gier wideo są dla Sony Playstation 3, która jest oparta na Sony, Toshiba i IBM „s procesor komórkowych i urządzeń mobilnych (smartfonów, tabletów), które są często ARM mikroprocesory oparte.

Jak Michael Madsen wskazano, większość programowania została wykonana w asemblerze, a nie w języku kompilowanym na wysokim poziomie, takim jak C lub Pascal. Było to konieczne, aby zmieścić całą zawartość gry w ramach bardzo ograniczonego systemu (bardzo mało pamięci RAM i ograniczona pojemność pamięci ROM wkładu), a także aby uzyskać dostęp do koprocesorów, takich jak TIA Atari 2600.

Mctylr
źródło