Hero (WIP)

Beh, ci sono ripartito su questo platform game solo per 128k* (o superiore), ispirato alla grafica del nostro @TITAN e alla trama fatta di bravate nell’Antica Grecia. L’ho implementato usando l’eccellente CPCTeleraNext del carissimo @Arnaud6128.

Ho rinunciato a cercare di far funzionare uno scrolling a tutto schermo fluido e basato su CRTC/memoria che fosse come volevo io su una macchina non-Plus — sia analizzando i tempi manualmente, sia lasciando campo libero a un LLM —, quindi sono passato al Flick Screen. In questo modo posso finalmente finire questa maledetta cosa e farla uscire.

Però questo significa che posso concentrarmi invece nel rendere i movimenti dello sprite del giocatore il più vicini possibile a quelli dei giochi per console come SMB ecc. E sì, sto scippando la fisica e il modello di movimento/controllo di Mario perché, beh, perché no:

Ecco alcuni screenshot, e sì, la demo del menu/intro è in overscan. Al momento ci sono TRE brani distinti per gentile concessione del nostro @Targhan, e ci sarà il supporto per più lingue (per ora ho in programma inglese/spagnolo/francese/tedesco e ovviamente il greco per il Gran Kahuna del nostro forum).

I prossimi passi saranno il movimento sulle scale, la gestione della morte su spuntoni o sostanze vischiose, e i nemici.

Il tileset e la grafica arrivano tutti da qui: AmstradMuseum TITAN : Devilry III

Sto usando Tiled per i livelli. E sì, sto usando un LLM (ChatGPT) come consulente di programmazione e assistente per scrivere strumenti, ottimizzare il codice, fare il lavoro sporco e così via. Perché faccio il programmatore di professione da una trentina d’anni e sono mortalmente stanco di reinventare la ruota con i computer. Detto questo, scrivo in C a intermittenza dal 1997, quindi sì, so quello che sto facendo.

Siete pregati di indirizzare tutte le lamentele al grande thread sull’IA. Ma tutta la grafica e la musica sono fatte da esseri umani!

Userò questo thread per tenervi aggiornati sui progressi.

* No, non girerà su 64K, vi servirà un 128K (almeno) e un lettore di dischetti. Sì, è voluto. All’epoca ero bloccato con un 464 non espanso, e il 6128 è ancora la macchina dei miei sogni.

9 Mi Piace

Sembra incredibile! Il salto del personaggio sembra un po’… esagerato… al momento forse, ma adoro la grafica, l’ambientazione e le altre schermate!

1 Mi Piace

Non vedevo l’ora, e in effetti ha un aspetto davvero fantastico.

1 Mi Piace

Il movimento orizzontale dello sprite è per singolo pixel o per byte? È difficile dirlo senza giocarci, ovviamente, ma guardando il video sembra che potesse giovare di un po’ di slancio orizzontale, e immagino di una precisione delle coordinate a 2 byte ad esso abbinata, se si voleva davvero ricreare la sensazione di Mario.

1 Mi Piace

Sì, è un movimento orizzontale per byte. Non oso nemmeno pensare a un movimento basato sui pixel, anche se so che in realtà si può fare.

I valori di gravità/caduta/accelerazione del PC sono quelli che ho inserito all’inizio quando mi stavo ispirando alle varie analisi dettagliate del sistema di controllo di SMB che si trovano online, ma ovviamente, con la schermata fissa (flick screen) dell’CPC, sono un po’ troppo scattosi, come evidenziato nei commenti sopra.

A essere sincero ero già felicissimo di essere riuscito a far muovere quel maledetto coso in modo vagamente simile a un gioco per console. Ciò che non aiuta, al momento, è che i livelli sono creati a mano. Ho abbastanza memoria libera per far sì che ogni livello (ne viene caricato uno alla volta) sia largo solo 8 schermate, persino con 128k! E quindi, con le impostazioni di movimento attuali, potrebbero sembrare un po’ troppo stretti.

Potrei passare a livelli costruiti con blocchi molto più grandi. O magari alla generazione procedurale. Ho visto un video fantastico su YouTube che spiegava nei dettagli come è stato fatto per un gioco del BBC:

Ma il problema con questo genere di cose è che i livelli finiscono per somigliarsi tutti. D’altra parte, potrei fare come ho fatto con Reginald, ovvero tenere ogni schermata compressa finché non serve, e memorizzare solo gli sprite dei nemici persistenti. In questo modo si memorizza solo la schermata corrente (40 x 22 tile). Ed è facile da fare con la schermata fissa rispetto al vecchio sistema di scrolling che usavo prima.

Onestamente sono davvero indeciso su tutto. Uno dei motivi per cui ho scritto qui era proprio per sentire cosa ne pensate di tutte queste idee.

Il piano attuale è questo: non appena avrò un livello giocabile, lo rilascerò in una versione direttamente fruibile, cioè senza menu o intro ecc., per raccogliere feedback sui comandi e sul gameplay, sperando di poter fare miglioramenti continui.

E naturalmente, tutto il mio codice sarà rilasciato su GitHub con licenza GPL2 una volta finito.

2 Mi Piace

I tuoi (bellissimi) schermi sono costruiti a partire da tile?

Sembra esserci un grande riutilizzo dei tile, ed è un’ottima cosa, perché significa che gli schermi possono essere definiti da una quantità di dati molto ridotta.

Ancora meglio, puoi definire oggetti più grandi (“supertile”), come le colonne.

La definizione del tuo schermo può includere dati che dicono “nella posizione (x,y) c’è una colonna”, cosa che si può fare in soli 3 byte. Il codice che compone lo schermo può quindi riconoscere che c’è una colonna da disegnare e consultare una tabella separata che contiene le informazioni sui tile della colonna.

Mettiamo che una colonna sia composta da un tile superiore, una serie di tile centrali identici e un tile inferiore.
La definizione della colonna può essere strutturata in diversi modi.

Potrebbe essere semplicemente un elenco di numeri di tile, oppure un numero di tile seguito dal numero di volte in cui viene utilizzato. E poi avresti bisogno di un sistema per determinare se i tile sono memorizzati in ordine verticale o da sinistra a destra e dall’alto verso il basso, e così via.

1 Mi Piace

Al momento sono realizzate a mano, tessera per tessera, ed è una faticaccia pazzesca crearle!

Seguo il gioco fin dall’inizio ed è un progetto davvero fantastico; è il classico titolo che sarebbe potuto uscire durante l’epoca d’oro del CPC, annunciato sotto Natale con una copertina favolosa sulla rivista che compravo sempre in edicola — nel mio caso Micromanía — e che avrei acquistato a colpo sicuro.

1 Mi Piace

Bel lavoro finora. Guardando la grafica di gioco, vi consiglierei di ripensare i contorni neri che rendono più o meno qualsiasi oggetto rigido e squadrato, soprattutto visto che avete scelto un background più luminoso rispetto al primo piano.

Inoltre, chi è il tipo del primo screenshot rispetto a quello dell’ultimo?

1 Mi Piace

Intendi Zeus che si scopa qualsiasi cosa si muova?

Sembra fantastico!

Comunque lo sposto nella categoria Giochi.

2 Mi Piace

Ecco il nostro eroe, Helios. Che è stato un po’ monello e viene punito dagli Dei, essendo costretto a fare il Fattorino Divino.

Per quanto riguarda la grafica, non sono per niente un artista, quindi cedo la parola al mio Onorevole Amico @TITAN@Titan. Io cerco solo di far andare i pixel a tutta velocità.

Credimi, puoi collegare la sua storia al sesso in qualunque modo ti venga in mente. Magari adocchiava qualche povera ragazza mortale, così Zeus lo ha condannato a diventare una tartaruga o qualcosa del genere, ma Era è intervenuta e lo ha trasformato prima che Zeus potesse trovarlo, rendendolo irriconoscibile, e poi l’ha pure preso sotto la sua ala, e ora lui vive tra l’Olimpo e il mondo normale facendo commissioni.

Tanto per dire.

1 Mi Piace

Beh, vedendo quanto Helios appaia completamente diverso tra le due immagini (nella prima non indossa nemmeno lontanamente un’armatura greca, e l’arte dell’antica Grecia è stata parte dei miei studi), sospetto che quelle immagini siano state probabilmente “prese in prestito” da altre fonti e convertite/ricolorate per il CPC. In effetti, lo stile di quella nella schermata del titolo sembra fin troppo familiare, ma non riesco a ricordare dove ho già visto un’illustrazione simile.

Il motivo per cui in questo caso non sospetto l’uso dell’IA è che, al giorno d’oggi, puoi chiedere all’IA di ridisegnare la stessa cosa in posizioni diverse e fa un ottimo lavoro senza allucinare troppo.

Quando commento la grafica, ho un atteggiamento un po’ negativo nei confronti delle immagini che sono copie senza menzionare gli autori originali, e Titan ha firmato con la sua sigla molte immagini che non sono sue. Quindi, suppongo che la soluzione più semplice sarebbe farsi coraggio, dichiararlo apertamente e andare avanti. Non è un peccato prendere in prestito cose o usare l’IA, purché si sia onesti al riguardo; molte persone lo hanno fatto sul CPC (ma allo stesso tempo altre no, persino alcune molto famose, il che è vergognoso e allo stesso tempo non etico).

Io sono solo il programmatore, capo. Lascio questo tipo di discussioni a voi tipi artistici. :joy:

Che tipo di livelli vorresti vedere in Hero?
  • Livelli più piccoli realizzati a mano
  • Livelli più grandi a blocchi di costruzione
  • Livelli enormi generati proceduralmente
0 voters

Non trovo che «guv’nor» sia adatto, ma puoi chiamarmi Dio se vuoi.

Sì, mio Gran Cerimoniere

1 Mi Piace

Meglio. Continua così.

1 Mi Piace

Un bel gioco rapido da morire, per favore. Magari con i salvataggi dei progressi, se possibile.

1 Mi Piace

Sì. L’idea è di avere, sul secondo lato del FSK, una versione che ti lancia direttamente nel gioco: niente menu, niente intro, niente schermata del titolo, niente di niente. Solo il gioco vero e proprio.

E ho intenzione di usare dei codici di accesso per permettere di salvare i progressi, per così dire.

2 Mi Piace