Qual è un buon gioco Open Source da cui imparare? [chiuso]


15

Voglio scaricare il codice sorgente di un gioco Open Source, così posso familiarizzare con l'architettura del gioco. Qualcuno sa di un gioco con codice sorgente che è leggibile e facilmente comprensibile?

Modifica: dopo aver pensato, vorrei creare un gioco che può essere giocato sul desktop o su un telefono Andriod con grafica 2D.


7
La maggior parte dei giochi che sono open source sono grandi progetti vecchi che non sono sempre facilmente comprensibili, progetti commerciali che sono stati open source per vari motivi o giochi incompiuti che non sono realmente in uno stato giocabile. Inoltre, l'architettura un po 'per tipo di gioco e linguaggio utilizzato. Da che tipo di gioco vuoi imparare e quali lingue conosci? (i tutorial onestamente potrebbero essere un'opzione migliore qui)
thedaian

@thedaian Conosco java, C ++, C, javascript e python
jumpnett,


Concordo con il thedaian, almeno per me ha funzionato meglio. Ci sono molti ottimi articoli, libri e tutorial là fuori. Dovrai prenderti del tempo per scegliere quelli giusti, ma ti farà risparmiare tempo in seguito perché saprai già perché codificano come fanno e saranno in grado di riconoscere la qualità delle fonti (che spesso puzza). Se vuoi la portabilità, sceglierei C / C ++, ma per quelle piattaforme potresti andare bene con Java.
Pablo Ariel,

1
Wiki della comunità?
Jari Komppa,

Risposte:


2

Non sono sicuro del tipo di gioco che stai chiedendo, ma esiste un gioco opensource chiamato OpenTTD scritto in c ++. Penso che potresti usarlo come un buon campione.

alcune caratteristiche che rendono questo gioco unico:

  • È un gioco di strategia.
  • Ha il supporto multiplayer su Internet e rete locale.
  • Supporta la traduzione in altre lingue attraverso il file di configurazione (che viene generato da file di testo non elaborati)
  • È compilato su quasi tutte le piattaforme che conosco.
  • Il suo progetto è ancora vivo!
  • Ha il supporto AI integrato.
  • I dati grafici e musicali sono completamente personalizzabili tramite patch.
  • Supporta linguaggi di scripting per sviluppare AI personalizzati. così puoi anche leggere altre IA scritte per questo gioco.
  • È un progetto relativamente grande mentre è facile da leggere e comprendere il suo codice.
  • È basato su SDL e da quel momento hanno sviluppato tutto da zero.

--Modificare--

Proprio oggi ho iniziato a leggere il loro codice dall'inizio. Per capire cosa hanno scritto devi essere un discreto programmatore C e C ++ (anche se il loro codice è ben commentato)! Voglio dire che devi essere un maestro di entrambe le lingue poiché usano entrambe le strutture! quindi se non sei abbastanza sicuro delle tue capacità di programmazione, non avvicinarti nemmeno a quel codice! questo è il codice più sporco che abbia mai visto! (e io stesso sono un programmatore sporco ma sono qualcos'altro!)

Penso che ora posso suggerirti di controllare il codice supertux . è un gioco platform (proprio come super mario) e finora il loro codice sembra davvero pulito (ho verificato il traguardo 1.3). hanno alcuni commenti in quel codice ma solo per luoghi che potresti confondere.


Mentre OpenTTD è un gioco fantastico, non credo sia un buon progetto di apprendimento. La maggior parte è stata progettata in senso inverso rispetto all'assemblaggio, e ci sono ancora sezioni di codice che lo riflettono. Inoltre, è semplicemente un grande progetto ed è probabilmente troppo per un progetto iniziale "impara l'architettura di gioco".
thedaian,

@thedaian potresti dirlo, ma ogni tanto ho bisogno di fare qualcosa di nuovo, ho appena letto ciò che è scritto nel loro codice. finora penso che sia il gioco open source più leggibile che valga la pena leggere!
Ali1S232,

inoltre non sono sicuro quando è stata l'ultima volta che hai controllato il loro codice ma lo hanno pulito dalla versione 1.0.0
Ali1S232

2

Penso che forse un buon approccio sia scegliere un gioco che ti piace e dare un'occhiata a tutti i giochi open source come quello. L' elenco dei cloni di giochi Open source potrebbe aiutare molto con l'ultimo passaggio, molto.


1

Ci sono pilastri come Quake 3 o se vuoi qualcosa di un po 'più semplice (e in 2D) guarda il gioco indipendente Gish . Entrambi usano OpenGL e sono anche multipiattaforma.

Gish è un po 'disordinato, però.


1

Ti consiglio di restringere la tua attenzione su quale tipo di architettura di gioco ti interessa conoscere-- pipeline 3d, fisica, intelligenza artificiale, ecc.

Con una richiesta generica per un buon esempio di programmazione di gioco, penso che gli invasori spaziali gl sia difficile da battere poiché ha un codice pulito, un gioco e un'interfaccia di gioco gl aperti, pur mantenendo le cose abbastanza semplici.

Saluti


Gli invasori spaziali sono solo gl windows? Al momento non ho Windows installato sul mio PC. Non che non abbia accesso ad esso, solo che non è così conveniente.
jumpnett,

1

Anche se leggere il codice può essere utile, se sei un principiante nel dominio, non imparerai nulla. Soprattutto se guardi il codice di grandi progetti come Q3A o OpenTTD. Questi sono stati realizzati da un intero team, con ogni persona che ha pratiche di codifica diverse, idee diverse su come realizzare le cose. Otterrai solo il quadro generale, non i piccoli dettagli che fanno sì che tutto si attacchi.

Sviluppa, fallisci, riprova finché non trovi qualcosa che sembra essere buono, fallisci di nuovo, risciacqua e ripeti fino a quando non hai qualcosa di buono. Sviluppatori diversi significano idee diverse su come implementare le cose. Solo perché è stato codificato da Carmack / Qualsiasi sviluppatore famoso che ha fatto un buon gioco non significa che sia la cosa migliore da quando è stato tagliato il pane e un'implementazione diversa potrebbe essere più chiara e veloce.


1

Penso che una delle cose più importanti che puoi fare sia scegliere un gioco che ti piace giocare. Questo ti aiuterà a interessarti e ti farà conoscere meglio come il codice stesso si traduce nella prospettiva dei giocatori.

Una volta scelto quel gioco, indipendentemente da quanto sia grande, non devi cercare di capire come funziona ogni riga di codice. Scegli un pezzo e guardalo. Ad esempio, prova a capire come vengono archiviati i dati del giocatore o come viene disegnata una voce di menu, ecc.

La prossima cosa che puoi fare, che va di pari passo con il mio pezzo precedente, è provare a cambiare qualcosa. Non qualcosa di enorme (all'inizio), solo qualcosa di semplice e evidente nel gioco. Anche qualcosa di semplice come il testo di un pulsante in un menu o l'aggiunta di una voce di menu o la modifica dei calcoli dei danni. Forse pensi che avrebbero dovuto fare qualcosa di diverso, prova a cambiarlo da solo.

Quando mi sono interessato per la prima volta allo sviluppo di giochi, ero davvero interessato ai giochi di ruolo online 2D. Così ho trovato la fonte per uno online e ho iniziato a costruirci sopra. Aggiungendo le mie funzionalità e modificando le cose, correggendo i bug, ecc. Era in VB6 alcuni anni fa e ora sto usando C # e XNA e scrivendo il mio gioco da zero. Perché mi sono piaciuti i giochi, mi ha motivato a voler lavorarci su, per renderlo migliore. Per coincidenza, questo è anche il modo in cui ho imparato molte delle tecniche di programmazione, debug e risoluzione dei problemi che uso oggi nel mio lavoro quotidiano non correlato a Gamingev.

È anche molto utile se il gioco ha una comunità di modder che puoi porre domande e ottenere aiuto ed esempi. Ma poi di nuovo, anche se non esiste, sei già qui e siamo pronti ad aiutare.




0

Il gioco a scorrimento Development Kit 2 permette di creare in realtà giochi 2D e giocare utilizzando una GUI senza scrivere codice. Ma ti permette anche di vedere e modificare il codice incorporato nel progetto che rappresenta il framework / motore dietro il gioco. La maggior parte del codice viene esposta tramite la GUI, sebbene una piccola parte di esso sia generata in base alla posizione degli sprite e alle mappe create. Tuttavia, anche questo codice è visibile se si genera il progetto e quindi si aprono i file risultanti in Visual C # Express. L'intero programma (IDE) è anch'esso open source. È basato sulla libreria OpenTK (che utilizza per l'interfaccia con OpenGL da C #), che è anche open source.


Lo darò un'occhiata, ma sono un programmatore, quindi scrivere codice non è un grosso problema.
jumpnett,
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.