Git e GitHub per Game Developers

"Sono sicuro che Git è fantastico, ma sembra complicato - continuerò con il mio flusso di lavoro corrente" è come dire "Sono sicuro che gli IDE come FlashDevelop e Sublime Text sono fantastici, ma sembrano complicati - rimarrò con Bloc notes". Sì, certo, c'è un po 'di una curva di apprendimento, e puoi vivere senza di essa, ma è una follia. In questo articolo, spiegherò perché Git (e GitHub) è così eccezionale e ti mostrerò come iniziare in modo rapido e semplice.

Nota: Molto di quello che dico qui si applica anche ad altri sistemi di controllo delle versioni, come Subversion, ma Git è così popolare che se hai una scelta libera ti consiglio che è quello che vai con.


Cosa può fare Git per te

Git offre vantaggi a tutti gli sviluppatori di giochi, sia che lavorino da soli o in gruppo. Passiamo attraverso i grandi:

Git ti consente di annullare tutte le modifiche apportate

Probabilmente il punto principale di Git è che può richiedere una "istantanea" della directory di lavoro dell'intero gioco ogni volta che lo chiedi, e puoi tornare a qualsiasi di quelle istantanee in qualsiasi momento.

Questo è un sistema molto migliore rispetto a fare una copia dell'intera cartella ogni volta che ottieni una versione funzionante del gioco, o inviare via email il codice a te stesso con una descrizione in modo da non perderlo.

Inoltre, non sei limitato a una linea retta di annullamenti e redos; puoi dividere il tuo progetto in un separato ramo di istantanee e scambio tra i rami a volontà. Ciò significa che è possibile aggiungere nuove funzionalità alla versione 1.1, quindi tornare alla v1.0 e applicare una correzione; oppure lavorare su una funzione sperimentale e scartarla se non funziona; o mantenere separate le versioni mobile e tablet ancora insieme.

Git ti consente di commentare il tuo lavoro, non solo il tuo codice

In realtà, Git non solo permettere aggiungi commenti - ti incoraggia a, anche se lo richiedi. Fondamentalmente, ogni volta che si salva un'istantanea, si scrive un commento che descrive le modifiche apportate dall'ultima istantanea.

Ecco alcuni commenti di esempio di Tiled, un editor di alto livello che abbiamo trattato in precedenza:




Oltre a rendere più facile trovare un punto particolare nella storia di un progetto (che è spesso utile per rintracciare la causa di un bug), questo aiuta anche a costruire buone abitudini di sviluppo: ti troverai a rompere il lavoro in compiti più piccoli in modo che ogni parte può essere completamente descritta in un breve commento, piuttosto che lavorare su otto cose diverse contemporaneamente.

Git ti dà un migliore accesso ad altri progetti

Finora, ho parlato di Git, che è solo uno strumento software come Zip o e-mail o FTP. Idiotamozzo, al contrario, è un sito web in grado di ospitare le tue istantanee Git (e quindi il tuo intero progetto).

Ci sono altri siti di hosting Git, ed è anche possibile ospitare i tuoi progetti Git sul tuo server, ma GitHub è di gran lunga il più importante. Pensa ad esso come a Gmail: non è l'unica app per la posta elettronica basata sul Web, ma per molte persone potrebbe anche esserlo.

Molti giochi e strumenti di gioco sono pubblicamente disponibili su GitHub, come Tiled (che ho menzionato sopra) e lo Starling Framework (che abbiamo anche trattato in precedenza). Ciò significa che, anziché scaricare semplicemente la versione corrente di Starling Framework come file zip ed estrarla nel progetto, è possibile importare l'intera cartella nel progetto e tenerla aggiornata automaticamente ogni volta che c'è un cambiamento.

Puoi anche suggerire nuove funzionalità o segnalare bug tramite il tracker dei problemi:


Puoi persino creare una copia locale (una "forchetta") del progetto, aggiungere la nuova funzione o correggere il bug e inviare lo snapshot ai proprietari del progetto per considerare l'unione con la versione principale.

(Potresti aver notato che abbiamo iniziato a ospitare più dei nostri file sorgente su GitHub su Tuts + - questo è ampiamente il motivo!)

Git rende più facile lavorare con altri sviluppatori

Tutte le ragioni sopra riportate rendono Git molto prezioso per gli sviluppatori solisti. Ma molti di questi vantaggi sono intrinsecamente utili anche quando si lavora in una squadra:

  • L'invio a un progetto di squadra tramite Git (tramite i piani privati ​​premium di GitHub o qualche altro metodo di hosting) è molto più semplice della condivisione di tutto tramite allegati e-mail o Dropbox.
  • Poiché ogni istantanea aggiunta al progetto è contrassegnata da un commento e un autore, è facile tenere traccia di chi ha fatto cosa.
  • Ogni membro del team può lavorare singolarmente sul proprio codice e solo impegnarlo nel progetto principale quando è pronto (evitando così di interrompere qualsiasi cosa).

Git ha anche caratteristiche per "unire" diversi bit di codice insieme, costringendovi ad affrontare eventuali scontri piuttosto che solo ciecamente sovrascrivendo parti del progetto.


Impostazione Git

L'installazione di Git e la sua impostazione erano un problema contorto che comporta l'utilizzo della riga di comando per generare "chiavi SSH" e ugh. Ma ora è davvero semplice: tutto ciò che devi fare è scaricare e installare GitHub per Windows o GitHub per Mac, a seconda dei casi.

Sì, sì, lo so, ho detto che GitHub è un sito Web per l'hosting di istantanee Git, ma qui sto dicendo di installare GitHub per usare Git. È confuso: GitHub-the-app è un software che installa Git e ti offre un'interfaccia piacevole, mentre ti offre anche la possibilità di ospitare le tue istantanee su GitHub-the-website.

Non preoccuparti per questo Basta scaricare la versione per il tuo sistema operativo e installarla. Ehm, a meno che tu non usi Linux, nel qual caso ho paura di te fare bisogno di percorrere la strada contorta.


Iniziare con Git

Ti guiderò attraverso l'impostazione di Git per qualsiasi gioco o progetto a cui stai lavorando, in modo da poter iniziare a utilizzarlo per davvero, piuttosto che come un falso esercizio. Sto usando GitHub per Windows, ma i passaggi saranno molto simili in GitHub per Mac. Sto anche fingendo che bfxr sia il mio progetto su cui sto lavorando, cosa che non è assolutamente.

Apri GitHub per Windows e fai clic creare per iniziare a creare un nuovo "repo" (abbreviazione di "repository" - in pratica, il luogo in cui sono archiviate tutte le istantanee per questo gioco o progetto). Inserisci un nome e una descrizione per il tuo progetto e lascia la directory come predefinita (non devi fare in modo che corrisponda alla directory esistente del tuo progetto). Assicurarsi Premi su Github non è spuntato.


Fai doppio clic sul repository appena creato per aprirlo nell'app:


Vedrai che ti dice che ci sono due file da "impegnare" (cioè, da aggiungere al repository come un'istantanea); questi sono normali file di setup Git, quindi scrivi un blando commento nel Messaggio di commit scatola e colpisci Commettere:


Ora, fai clic strumenti> apri in explorer per aprire la directory di lavoro di Git per il progetto. Sarà vuoto a parte i due file di installazione (e uno nascosto .idiota cartella, che potresti o non potresti vedere):


Copia il tuo intero progetto in questa cartella. (Sì, questo è disordinato, ma almeno in questo modo puoi essere certo che hai un backup se qualcosa va storto.)


Torna a GitHub per Windows - noterà che questi nuovi file sono appena apparsi:


Applica anche questi file e tutto è pronto con il tuo primo repository di base!

Ora apporta una modifica al tuo progetto. Puoi aggiungere un nuovo file o modificarne uno esistente:


Torna a GitHub per Windows e anche questo lo ha rilevato. Configura questo cambiamento, quindi selezionalo dal commit non sincronizzato lista e colpisci ripristina commit. Ora avrai un nuovo commit che ripristina il commit precedente - questo sembra un po 'confuso, ma significa che stai tenendo traccia di tutto ciò che stai facendo!


Controlla i tuoi file di progetto attuali:


Il tuo nuovo file (o la modifica che hai apportato all'altro file) è effettivamente sparito. Puoi annullare il ripristino, se lo desideri, aggiungendo un altro commit alla tua lista, o tornare indietro il commit di rimuoverlo completamente dalla lista.


Conclusione

Questo è tutto? Sì. Ma anche, no. Ho inserito questo intero articolo su GitHub, quindi puoi sperimentare il sito richiedendo "miglioramenti" (suggerimenti per ciò che vorresti vedere aggiunto) e registrando "bug" (problemi con l'articolo).

Se ti senti davvero avventuroso, prova a "biforcare" l'articolo sul tuo computer, a fare le aggiunte da te stesso e poi a inviare una richiesta di pull per ottenerlo aggiunto sul sito ... se non ha senso per te, non preoccuparti ; una revisione successiva includerà maggiori dettagli!