Su quale piattaforma sono stati sviluppati i vecchi videogiochi TV? [chiuso]


13

Sono molto ansioso di sapere come sono stati sviluppati i videogiochi TV (a cui tutti giocavamo durante la nostra infanzia) e su quale piattaforma.

So come vengono sviluppati i giochi per dispositivi mobili, PC Windows e Mac, ma non capisco come (a quei tempi) furono sviluppati Contra, Duck Hunt e tutti quei giochi. Poiché hanno una grafica elevata e un gran numero di fasi. Quindi, come sono riusciti a sviluppare giochi in un ambiente di dimensioni così ridotte e con una piattaforma di configurazione inferiore?


3
Jordan Mechner ha rilasciato le fonti di Prince of Persia per Apple II qualche mese fa: dai un'occhiata qui se sei interessato.
Laurent Couvidou,

Risposte:


17

I giochi davvero vecchi - scritti per NES, Game Boy, SNES e persino sistemi più vecchi come la famiglia Atari - erano di solito scritti in linguaggio assembly . Ciò era necessario perché i compilatori C dell'epoca erano inesistenti o non erano in grado di generare codice sufficientemente efficiente.

Sono stati in grado di spremere tutte quelle cose in piccole cartucce - per NES, anche 256 KB erano molti dati (anche se esistevano giochi più grandi) - perché hanno usato trucchi intelligenti, come la grafica a tessere e la grafica a basso colore, consentendo molto di dati da archiviare in pochissimo spazio. Inoltre, i chip specializzati per video e audio hanno permesso di gestire queste cose in modo più efficiente, senza dover fare tutto nel software.

Nel tempo, i compilatori C sono diventati più efficienti e i dispositivi sono diventati più potenti - N64, GBA e dispositivi successivi hanno usato tutti C o persino C ++ per impostazione predefinita - e l'assemblaggio è stato riservato per piccoli pezzi di codice in cui era necessaria un'ulteriore ottimizzazione per soddisfare costantemente i 60FPS bersaglio (o qualunque framerate il gioco esegua).


4
I vecchi giochi @Mihir non erano assolutamente perfetti. Ma parte del motivo per cui sembrano funzionare meglio di alcuni giochi recenti è perché sono anche molto, molto meno complessi delle loro controparti moderne.
chaosTechnician,

1
@AndroidCoader, quello che stai cercando si chiama emulatore. Esistono per molte piattaforme, emulando la funzione di vecchi sistemi su macchine moderne, ma spesso ci sono molti problemi legali / aree grigie associati all'uso di loro per giocare.
chaosTechnician,

Credo che "Gran Turismo", quando è uscito per la prima volta su PS, aveva una grande quantità di codice scritto in assemblea a causa della fisica coinvolta.
casper:

3

Ricordo di aver scritto semplici giochi per Commodore 64 / Vic20 nei primi anni '80. Alcuni BASIC (che ci crediate o no - alcuni giochi erano completamente codificati BASIC - BASIC era sulla ROM della macchina, quindi era un omaggio) - ma principalmente assemblatore. Anche l'assemblatore non era coerente: la maggior parte delle macchine aveva a disposizione diversi assemblatori commerciali (anche se come la maggior parte di allora, ho scritto il mio). La grafica sul C64 era molto avanzata per il momento con gli sprite hardware raster (solo 8 consentivano sullo schermo alla volta - ma questi potevano essere duplicati nel software con alcuni trucchi, dando centinaia ma solo 8 varietà sullo schermo alla volta). Erano 16 colori (tavolozza - che poteva essere cambiata in fase di esecuzione come lo sprite). Gli sprite erano in 2D ovviamente.

Il primo "home computer" con cui ho giocato (ignorando le precedenti macchine scientifiche e aziendali) era uno ZX81 (la mia scuola aveva uno ZX80 - ma era chiuso in una scatola di vetro come una mostra di un museo - nessuno sapeva come usarlo!). Immagina di scrivere un gioco in 1/4 di K (che è 256 byte!) - ora questa è abilità!


3

I sistemi di videogiochi o le console di prima generazione (prima che fossero chiamati console) dalla fine degli anni '70 e ancora oggi sono sviluppati in modo molto simile a qualsiasi sistema informatico incorporato .

Un computer incorporato è un computer (cioè un microcontrollore o un microprocessore) in un sistema elettronico che non assomiglia a un personal computer o un sistema di computer multiutente più grande (ad es. Sistema di condivisione del tempo, mini-computer e mainframe); una delle principali differenze è che in genere mancano degli input / output ora standard tramite un terminale video e una tastiera.

Lo sviluppo avviene su un altro computer, in questi giorni in genere un PC sviluppatore o una workstation che utilizza un ambiente di sviluppo multipiattaforma che produce eseguibili per il sistema di destinazione - il sistema di videogioco in questo contesto, che spesso è un'architettura a microprocessore diversa rispetto allo sviluppo CPU di sistema (o host ).

Due esempi di sistemi di videogiochi attuali sono per Sony Playstation 3, che si basa sul Sony, Toshiba e IBM s' processore Cell , e per i dispositivi mobili (telefoni intelligenti, compresse) che sono spesso braccio microprocessori basati.

Come Michael Madsen indicato, la maggior parte della programmazione è stata eseguita in assembly piuttosto che in un linguaggio compilato di alto livello, come C o Pascal. Ciò era necessario per adattare l'intero contenuto del gioco all'interno dei confini del sistema fortemente vincolato (pochissima RAM e capacità della cartuccia ROM limitata), nonché per accedere a coprocessori come il TIA dell'Atari 2600.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.