Git og GitHub for spillutviklere

"Jeg er sikker på at Git er flott, men det ser komplisert ut - jeg holder fast med min nåværende arbeidsflyt" er som å si "Jeg er sikker på at IDEer som FlashDevelop og Sublime Text er flotte, men de ser kompliserte ut - jeg holder fast med Notisblokk". Ja, det er litt av en læringskurve, og du kan leve uten det, men det er tåpelig å. I denne artikkelen vil jeg forklare hvorfor Git (og GitHub) er så flott, og viser deg hvordan du raskt og enkelt kan komme i gang.

Merk: Mye av det jeg sier her gjelder for andre versjonskontrollsystemer, som Subversion, så vel, men Git er så populært at hvis du har et fritt valg, anbefaler jeg det er det du går med.


Hva Git kan gjøre for deg

Git har fordeler for alle spillutviklere, enten de jobber alene eller i et lag. La oss gå gjennom de store:

Git gjør at du kan angre eventuelle endringer du gjør

Kanskje hovedpunktet til Git er at det kan ta et "øyeblikksbilde" av hele spillets arbeidskatalog når du spør, og du kan når som helst gå tilbake til noen av disse stillbildene.

Dette er et mye bedre system enn å lage en kopi av hele mappen din når du får en fungerende versjon av spillet, eller sender koden til deg selv med en beskrivelse slik at du ikke mister den.

I tillegg er du ikke begrenset til en rett linje med undos og redos; Du kan dele prosjektet ditt i en egen gren av øyeblikksbilder og bytte mellom grenene etter ønske. Dette betyr at du kan legge til nye funksjoner i versjon 1.1, deretter bytte tilbake til v1.0 og bruke en feilretting; eller jobbe med en eksperimentell funksjon og skrap den hvis den ikke trer ut; eller hold mobil- og nettbrettversjonene dine skilt fra hverandre.

Git Lar deg kommentere arbeidet ditt, ikke bare koden din

Faktisk gjør Git ikke bare la Du legger til kommentarer - det oppfordrer deg til, selv krever at du. I utgangspunktet, når du lagrer et øyeblikksbilde, skriver du en kommentar som beskriver endringene du har gjort siden siste øyeblikksbilde.

Her er noen eksempler på kommentarer fra Tiled, et flott nivåredaktør som vi har dekket før:




Foruten å gjøre det lettere å finne et bestemt punkt i et prosjekts historie (som ofte er nyttig for å spore opp årsaken til en feil), bidrar dette også til å bygge gode utviklingsvaner: du vil finne deg selv å bryte arbeidet ned i mindre oppgaver, slik at hver del kan beskrives fullt ut i en kort kommentar, i stedet for å arbeide med åtte forskjellige ting samtidig.

Git gir deg bedre tilgang til andre prosjekter

Så langt har jeg snakket om Git, som bare er et programvareverktøy som Zip eller e-post eller FTP. GitHub, derimot er et nettsted som kan være vert for Git øyeblikksbilder (og dermed hele prosjektet).

Det finnes andre Git hosting nettsteder, og det er også mulig å være vert for Git-prosjektene selv på egen server, men GitHub er langt den mest fremtredende. Tenk på det som Gmail: Det er ikke den eneste nettbaserte e-postappen, men for mange kan det også være.

Mange spill og gamedev-verktøy er offentlig tilgjengelige på GitHub, som Tiled (som jeg nevnte ovenfor) og Starling Framework (som vi også dekket tidligere). Dette betyr at i stedet for bare å laste ned den nåværende versjonen av Starling Framework som en zip-fil og trekke den ut på prosjektet, kan du importere hele mappen til prosjektet og holde den oppdatert automatisk når det er en endring.

Du kan også foreslå nye funksjoner eller rapportere feil via problemene tracker:


Du kan til og med lage en lokal kopi (en "gaffel") av prosjektet, legge til den nye funksjonen eller fikse feilen selv og sende øyeblikksbildet tilbake til eiere av prosjektet for å vurdere å slå sammen med hovedversjonen.

(Du har kanskje lagt merke til at vi har startet å hoste flere av kildefilene våre på GitHub over Tuts + - dette er i stor grad hvorfor!)

Git gjør det enklere å jobbe med andre utviklere

Alle grunnene ovenfor gjør Git veldig verdifullt for solo-utviklere. Men mange av disse fordelene er iboende også nyttige når du arbeider i et lag:

  • Å forplikte seg til et teamprosjekt via Git (enten gjennom GitHubs premium private planer eller en annen hosting metode) er mye enklere enn å dele alt via e-postvedlegg eller Dropbox.
  • Siden hvert øyeblikksbilde lagt til prosjektet er merket med en kommentar og forfatter, er det lett å spore hvem som gjorde hva.
  • Hvert lagmedlem kan jobbe på egen kode hver for seg, og bare forplikte det til masterprosjektet når det er klart (dermed unngår å bryte noe).

Git har også funksjoner for å "slå sammen" forskjellige biter av kode sammen, og tvinge deg til å håndtere eventuelle sammenstøt i stedet for bare å blinde overskrive deler av prosjektet.


Sette opp Git

Installere Git og sette opp det pleide å være en innviklet sak som involverer bruk av kommandolinjen for å generere "SSH-nøkler" og ugh. Men nå er det veldig enkelt: alt du trenger å gjøre er å laste ned og installere GitHub for Windows eller GitHub for Mac, etter behov.

Ja, ja, jeg vet at jeg sa GitHub er et nettsted for hosting Git-snapshots, men her forteller jeg at du installerer GitHub for å bruke Git. Det er forvirrende: GitHub-the-app er programvare som installerer Git og gir deg et hyggelig grensesnitt for det, samtidig som du gir muligheten til å være vert for øyeblikksbilder på GitHub-nettstedet.

Ikke bekymre deg for det. Bare last ned versjonen for ditt operativsystem og installer det. Er, med mindre du bruker Linux, i så fall er jeg redd for deg gjøre må gå på den innfylte ruten.


Komme i gang med Git

Jeg går deg gjennom å sette opp Git for hva som helst spill eller prosjekt du jobber for, så du kan begynne å bruke den til ekte, i stedet for som en falsk øvelse. Jeg bruker GitHub for Windows, men trinnene vil være svært like i GitHub for Mac. Jeg lurer også på at bfxr er prosjektet mitt jeg jobber med, som det ikke er helt.

Åpne GitHub for Windows og klikk skape å begynne å lage en ny "repo" (kort for "repository" - i utgangspunktet stedet hvor alle dine øyeblikksbilder for dette spillet eller prosjektet er lagret). Skriv inn et navn og en beskrivelse for prosjektet ditt, og la katalogen være standard (du trenger ikke å gjøre denne kampen til prosjektets eksisterende katalog). Forsikre Trykk til github er ikke krysset.


Dobbeltklikk på din nylig opprettede repo for å åpne den i appen:


Du får se at det forteller deg at det er to filer å være "forpliktet" (det vil si å bli lagt til repoen som et øyeblikksbilde); Dette er vanlige Git-oppsettfiler, så skriv en blid kommentar i Meldingsbudskap boks og klikk Begå:


Klikk nå verktøy> åpent i explorer å åpne Gits arbeidsregister for prosjektet. Det vil være tomt bortsett fra de to oppsettfilene (og en skjult .git mappe, som du kanskje eller ikke kan se):


Kopier hele prosjektet til denne mappen. (Ja, dette er rotete, men i det minste kan du være trygg på at du har en sikkerhetskopi hvis noe går galt.)


Gå tilbake til GitHub for Windows - det vil legge merke til at disse nye filene bare dukket opp:


Forbind disse filene også, og du er helt sett med din grunnleggende første repo!

Gjør nå en endring i prosjektet ditt. Du kan legge til en ny fil eller endre en eksisterende:


Gå tilbake til GitHub for Windows, og det vil også ha oppdaget dette. Forbind denne endringen, velg den fra usynkroniserte forpliktelser liste og klikk tilbakestill commit. Du har nå en ny forpliktelse som gjengir forrige forpliktelse - dette virker litt forvirrende, men det betyr at du holder styr på alt du gjør!


Sjekk dine faktiske prosjektfiler:


Din nye fil (eller endringen du har laget til den andre filen) er faktisk borte. Du kan tilbakestille tilbakestillingen, hvis du vil, legge til enda et nytt tilsagn til listen din, eller rulle tilbake Forplikte seg til å fjerne den fra listen helt.


Konklusjon

Det er det? Jepp. Men også, nei. Jeg har lagt hele denne artikkelen på GitHub, slik at du kan eksperimentere med nettstedet ved å be om "forbedringer" (forslag til hva du vil se lagt til) og logging av "bugs" (problemer med artikkelen).

Hvis du føler deg virkelig eventyrlystne, kan du prøve å forkaste artikkelen til datamaskinen din, gjøre tilleggene selv, og deretter sende inn en trekkforespørsel for å få den lagt til på nettstedet ... hvis ikke noe av det var fornuftig for deg, ikke bekymre deg ; en senere revisjon vil inneholde flere detaljer!