"Commodore 64 Mon Amour" by Andrea Ferlito.
Cosa succede se dopo 30 anni riprendi in mano un vecchio listato assembly? E' quello che racconterò in questo speech. Utilizzando come esempio un piccolo platform a livelli capiremo come si progettava e si scriveva un videogioco negi anni 80 e quali possono essere gli strumenti che oggi ci permettono di farlo ancora semplificandoci, e non poco, la vita. Un minimo di conoscenza del linguaggio assembly del 6510 sarebbe opportuno.
12. COSA SERVE PER FARE UN GIOCO
BUONA IDEA: DESIGN e quindi GAMEPLAY
ASSET: grafica, musica, testi
TUNING: variabili per tarare il gameplay
CODICE: loop, funzioni di servizio, effetti speciali
13. GAMEPLAY
• Arrivare in cima e raccogliere picnic
• Si muove solo a dx
• Salta in alto e in diagonale dx
• Nemici: buche, serpenti, masso, marea, nuvola e
gabbiani (in base al livello): perdita vita
• Punteggio: camminando, saltando, raccogliendo
picnic
• Finendo un livello si vince una vita
• Finendo il quarto livello si ricomincia più veloce
14. TUNING
• Numero di Livelli: quali nemici in quale livello
• Numero di vite iniziali
• Velocità del gioco
15. ASSET
• Schermata titoli
• Musica
• Testo istruzioni
• Generazione scogliera
• Udg
• Sprite
• Sfx
BYTE DA SPARARE NELLA RAM
16.
17.
18.
19. lda ($FB),y
Indirizzamento indicizzato indiretto (in pagina 0)
• Carico A col contenuto della locazione contenuta in
$FC$FB visti come indirizzo a 16 bit
• $FC$FB contengono $4100
• $4100 contiene 147 che è il primo byte della tabella di
title_screen
• Quindi in A ci va a finire 147
• Se Y fosse !=0 allora il reale valore in A sarebbe 147 + Y
PUNTATORI A 16 BIT
26. Thanks!
ROME 18-19 MARCH 2016
andrea.ferlito@codemotion.it
@andreaferlito
All pictures belong
to their respective authors
Editor's Notes
Curo l’area game dev e gli eventi a tema: GGJ Roma
Concorso casual connect di singapore
Come potete evincere dal titolo, questo talk parla di una storia d’amore.
La storia che ho vissuto durante la mia adolescenza, con…
Il biscottone
Questo :D
E siccome è vero che il primo amore non si scorda mai, alla veneranda età di 44 anni ho iniziato a ripensarci.
Forse perché mia moglie non mi dà più attenzioni :D
Allora da dove inizio sarà facilissimo, un sacco di risorse in rete, daje
Hello world e poi ti mollano
Dust Layer
Georg strumento + tutorial super complicato (passo1 ,2,3….>100)
Mi sono ricordato di INPUT
Nell’ultimo volume c’è un gioco in assembly: Cliff Hanger
CPU
VIC SID CIA sono tutti memory mapped
CHIP CUSTOM MEMORY MAPPED
CHIP CUSTOM MEMORY MAPPED
La Color RAM è organizzata come memoria 1024*4bit (nibble).
VIC indirizza max 16k.
La Color RAM la vede sepre allo stesso punto indipendentemente dal banco
Vediamo il GIOCO e poi estraiamo dei concetti…
In tutti i casi si tratta di pompare byte dentro la ram.
Torniamo al futuro e usiamo gli strumenti moderni.
Peccato che il codice di Input fosse del 1982 e quindi per sparare i byte nella RAM ho dovuto usare i sistemi dell’epoca.
Questa è la cosa che ha richiesto più tempo in assoluto
Title screen
Title Screen
Stampo a video i 1000 caratteri 25righe x 40 colonne che compongono la schermata.
Ogni carattere è una matrice (di pixel) 8x8 bit per cui abbiamo 320x200 pixel
Istruzioni
Vai al codice
Scogliera
Programmino BASIC da Snapshot
Domande esistenziali: da giovane ci si interroga sulle finalità dell’esistenza umana per capire qual è la strada da percorrere
Da vecchio ti chiedi perché hai intrapreso proprio quella strada, tenti di ricordarti, insomma ti chiedi chi te l’ha fatto fare
Una delle prime scelte: quanto sarà grande il codice macchina, capire dove andarlo a infilare