Sto cercando tecniche di codifica generali. Preferibilmente agnostico, ma non importa. Se dai un'occhiata ai link di cui ho postato vedrai cosa intendo.
Il NES in particolare è molto vecchio, quindi non troverai troppo su questo. L'anno scorso alla Game Developers Conference c'erano diversi Postmortems di giochi classici, che suonano più come quello che stai cercando. Puoi trovarne molti liberamente nel GDC Vault.
http://www.gdcvault.com/free/gdc-11
Se vuoi qualcosa di più, il GameBoy è sopravvissuto per molto tempo (ho lavorato e spedito un gioco commerciale nel 2001 che vendeva ancora> 200.000 copie), in particolare il GameBoy Color aveva hardware grafico alla pari del NES originale (meglio effettivamente) . Per la maggior parte, molte vecchie console di gioco e vecchi computer avevano capacità simili. L'unica cosa che distingueva un Nintendo da un Commodore 64 era il supporto per un numero maggiore di sprite sullo schermo e registri per il controllo dello scorrimento orizzontale e verticale della mappa dei personaggi (sfondo). Tutto fino all'arrivo delle console con accelerazione 3D (N64, PS1) si basava su forme sempre più avanzate di sprite hardware e mappe di caratteri scorrevoli. L'hardware della mappa caratteri è stato originariamente progettato per la visualizzazione di caratteri di testo, ma poiché è possibile modificare i glifi dei caratteri,
Ho un link suggerito su un gioco NES, Grand Theiftendo, un gioco homebrew di un mio amico:
http://retrocityrampage.com/blog/2011/05/see-rcr-precursor-grand-theftendo-in-action/
Se ti piace quello che vedi, dovresti dare un'occhiata a Retro City Rampage, una versione commerciale notevolmente migliorata del gioco su cui sta lavorando.
Sopra c'è quanti sviluppatori di giochi classici hanno dovuto lavorare ... letteralmente, cablando e creando hardware personalizzato per interfacciarsi con dispositivi come NES. Se fossi uno sviluppatore Nintendo ufficiale, ti invierebbero una scatola ufficialmente pre-modificata su cui potresti invece provare (dal momento che non tutti hanno il know-how tecnico per collegare e memoria flash flash). E per quanto riguarda la programmazione, quasi tutto è stato fatto in Assembly (6502 o z80, a seconda del dispositivo). I compilatori C impiegarono molto tempo prima che diventassero pratici per i dispositivi embedded.
Nell'ultimo decennio, tuttavia, le cose sono state più snelle. I carrelli Flash sono diventati disponibili; Questi erano dispositivi che potevi collegare a un programmatore di carrelli (scrittore) e caricare un binario di gioco direttamente sul carrello. Quindi è possibile collegare il carrello direttamente, accendere il dispositivo e testare. Questo processo può essere piuttosto lento, quindi almeno su GameBoy Color, molti sviluppatori hanno familiarizzato con l'uso di emulatori per testare i giochi. Compila, esegui sull'emulatore. Anche se un emulatore non era preciso al 100%, spesso era abbastanza buono da testare inizialmente. È possibile eseguire il flashing di un carrello dopo aver verificato che qualcosa stava funzionando, quindi sedersi e provarlo come dovrebbe essere sperimentato (sul dispositivo).
Gli emulatori sono sempre stati buoni per simulare hardware molto vecchio, GameBoy e NES erano candidati ideali. Oggi però, ora che tutto è accelerato in 3D e spinge i poligoni, è molto più pratico scrivere codice multipiattaforma. La maggior parte dei dispositivi supporta OpenGL ES, che è un'API molto simile a OpenGL, infatti, puoi considerare GL ES come un sottoinsieme del normale OpenGL. Vale a dire Puoi scrivere giochi che girano su entrambi scrivendoli contro le specifiche OpenGL ES.
Questo è il mio brief sulle tecniche di gioco classiche e moderne. Spero che questo ti dia un'idea di dove scavare di più. Molte informazioni sono là fuori, devi solo sapere cosa stai cercando.