Git en GitHub voor game-ontwikkelaars

"Ik weet zeker dat Git geweldig is, maar het ziet er ingewikkeld uit - ik blijf bij mijn huidige workflow" is als zeggen: "Ik weet zeker dat IDE's zoals FlashDevelop en Sublime Text geweldig zijn, maar ze zien er ingewikkeld uit - ik blijf bij notepad". Ja, natuurlijk, er is een beetje een leercurve en je kunt er zonder leven, maar het is dwaas om te doen. In dit artikel zal ik uitleggen waarom Git (en GitHub) zo geweldig is, en je laten zien hoe je snel en gemakkelijk aan de slag kunt.

Notitie: Veel van wat ik hier zeg, is ook van toepassing op andere versiecontrolesystemen, zoals Subversion, maar Git is zo populair dat als je een vrije keuze hebt, ik aanbeveel dat is waar je naar toe gaat.


Wat Git voor u kan doen

Git heeft voordelen voor alle game-ontwikkelaars, of ze nu solo werken of in een team werken. Laten we door de groten gaan:

Met Git kun je alle wijzigingen ongedaan maken die je maakt

Wellicht het belangrijkste punt van Git is dat het een "momentopname" van de werkmap van je hele spel kan maken wanneer je erom vraagt, en je kunt op elk moment teruggaan naar een van die snapshots.

Dit is een veel beter systeem dan het maken van een kopie van je hele map wanneer je een werkende versie van de game krijgt, of je e-mailt de code naar jezelf met een beschrijving zodat je deze niet verliest.

Bovendien ben je niet beperkt tot een rechte lijn van undos en redos; je kunt je project in een aparte splitsen tak van snapshots en wissel naar believen tussen de takken. Dit betekent dat u nieuwe functies kunt toevoegen aan versie 1.1, vervolgens kunt overschakelen naar v1.0 en een bugfix kunt toepassen; of werk aan een experimentele functie en schrap het als het niet lukt; of houd uw mobiele en tabletversies nog gescheiden van elkaar.

Git laat je commentaar geven op je werk, niet alleen op je code

Eigenlijk doet Git dat niet alleen laat je voegt opmerkingen toe - het moedigt je aan, vereist zelfs dat je dat doet. Kortom, wanneer u een momentopname opslaat, schrijft u een opmerking over de wijzigingen die u hebt aangebracht sinds de laatste momentopname.

Hier zijn enkele voorbeeldopmerkingen van Tiled, een geweldige niveau-editor die we eerder hebben behandeld:




Naast het gemakkelijker maken om een ​​bepaald punt in de geschiedenis van een project te vinden (wat vaak handig is om de oorzaak van een bug op te sporen), helpt dit ook om goede ontwikkelingsgewoonten te ontwikkelen: je zult merken dat je het werk opsplitst in kleinere taken zodat elk onderdeel kan volledig worden beschreven in een korte opmerking, in plaats van acht verschillende dingen tegelijk te doen.

Git geeft je betere toegang tot andere projecten

Tot nu toe heb ik het gehad over Git, dat slechts een softwaretool is zoals Zip of e-mail of FTP. Gitnaaf, daarentegen is een website die je Git snapshots (en dus je hele project) kan hosten.

Er zijn andere Git-hosting-sites en het is ook mogelijk om uw Git-projecten zelf op uw eigen server te hosten, maar GitHub is veruit de meest prominente. Zie het als Gmail: dat is niet de enige webgebaseerde e-mail-app, maar voor veel mensen kan het net zo goed zijn.

Veel games en gamedev-tools zijn openbaar beschikbaar op GitHub, zoals Tiled (die ik hierboven noemde) en het Starling Framework (dat we eerder ook behandelden). Dit betekent dat, in plaats van alleen de huidige versie van Starling Framework te downloaden als een zip-bestand en het uit te pakken naar uw project, u de hele map in uw project kunt importeren en het automatisch kunt bijwerken wanneer er een wijziging is.

Je kunt ook nieuwe functies voorstellen of bugs melden via de issue-tracker:


U kunt zelfs een lokale kopie (een "fork") van het project maken, de nieuwe functie toevoegen of de bug zelf repareren en de snapshot terugsturen naar de eigenaars van het project om te overwegen in te voegen bij de hoofdversie.

(Je hebt misschien gemerkt dat we meer van onze bronbestanden op GitHub hebben gehost via Tuts + - dit is grotendeels waarom!)

Git maakt het eenvoudiger om met andere ontwikkelaars samen te werken

Alle bovenstaande redenen maken Git erg waardevol voor solo-ontwikkelaars. Maar veel van deze voordelen zijn inherent ook handig wanneer je in een team werkt:

  • Vastleggen op een teamproject via Git (via GitHub's premium privéplannen of een andere hostingmethode) is een stuk eenvoudiger dan alles delen via e-mailbijlagen of Dropbox.
  • Omdat elke momentopname die aan het project is toegevoegd, is gemarkeerd met een opmerking en een auteur, is het eenvoudig om bij te houden wie wat heeft gedaan.
  • Elk teamlid kan individueel aan zijn eigen code werken en het alleen aan het masterproject toewijden wanneer het klaar is (om zo te voorkomen dat iets kapot gaat).

Git heeft ook functies voor het "samenvoegen" van verschillende stukjes code, dwingt je om met eventuele botsingen om te gaan in plaats van het blind overschrijven van delen van het project.


Git instellen

Git installeren en instellen was vroeger een ingewikkelde aangelegenheid waarbij de opdrachtregel werd gebruikt om "SSH-sleutels" te genereren en ugh. Maar nu is het heel simpel: u hoeft alleen maar GitHub voor Windows of GitHub voor Mac te downloaden en te installeren,.

Ja, ja, ik weet het, ik zei dat GitHub een website is voor het hosten van Git snapshots, maar hier zeg ik je om GitHub te installeren om Git te gebruiken. Het is verwarrend: GitHub-the-app is software die Git installeert en geeft je een aangename interface ervoor, terwijl je ook de mogelijkheid hebt om je snapshots te hosten op GitHub-the-website.

Maak je geen zorgen. Download de versie voor uw besturingssysteem en installeer deze. Eh, tenzij je Linux gebruikt, in welk geval ik bang ben voor jou do moet de ingewikkelde route gaan.


Aan de slag met Git

Ik zal je begeleiden bij het instellen van Git voor elk spel of project waaraan je momenteel werkt, dus je kunt het echt gaan gebruiken in plaats van als een nepoefening. Ik gebruik GitHub voor Windows, maar de stappen zullen erg vergelijkbaar zijn in GitHub voor Mac. Ik doe ook alsof bfxr mijn project is waar ik aan werk, wat het helemaal niet is.

Open GitHub voor Windows en klik op creëren om een ​​nieuwe "repo" te maken (een afkorting voor "repository" - eigenlijk de plaats waar al je snapshots voor deze game of dit project zijn opgeslagen). Voer een naam en een beschrijving in voor uw project en laat de directory als standaard (u hoeft niet te zorgen dat deze overeenkomt met de bestaande map van uw project). Zorg ervoor dat Push to github is niet aangevinkt.


Dubbelklik op uw nieuw gemaakte repo om deze in de app te openen:


U zult zien dat het u vertelt dat er twee "commit" -bestanden moeten zijn (dat wil zeggen dat deze als een momentopname aan de repo moeten worden toegevoegd); dit zijn normale Git setup-bestanden, dus typ een flauwe opmerking in de Commit Message vak en druk op plegen:


Klik nu gereedschappen> open in verkenner om Git's werkdirectory voor het project te openen. Het zal leeg zijn afgezien van de twee setup-bestanden (en een verborgen .git map, die u mogelijk wel of niet kunt zien):


Kopieer uw hele project naar deze map. (Ja, dit is rommelig, maar je kunt er op deze manier zeker van zijn dat je een back-up hebt als er iets misgaat.)


Ga terug naar GitHub voor Windows - het zal merken dat deze nieuwe bestanden net zijn verschenen:


Verbind deze bestanden ook en je bent helemaal klaar met je eerste basisrep!

Breng nu een wijziging aan in uw project. U zou een nieuw bestand kunnen toevoegen of een bestaand bestand kunnen wijzigen:


Ga terug naar GitHub voor Windows en het zal dit ook hebben gedetecteerd. Verbind deze wijziging en selecteer deze vervolgens in de niet-gesynchroniseerde commits lijst en druk op Zet commit terug. Je hebt nu een nieuwe commit die de vorige commit terugdraait - dit lijkt een beetje verwarrend, maar het betekent dat je alles wat je doet bijhoudt!


Controleer uw werkelijke projectbestanden:


Uw nieuwe bestand (of de wijziging die u in het andere bestand hebt aangebracht) is inderdaad verdwenen. Je kunt de revert terugdraaien, als je wilt, door nog een andere commit aan je lijst toe te voegen, of terugrollen de commit om het volledig uit de lijst te verwijderen.


Conclusie

Dat is het? Yep. Maar ook, nee. Ik heb dit hele artikel zelf op GitHub gezet, zodat je kunt experimenteren met de site door 'verbeteringen' aan te vragen (suggesties voor wat je graag zou willen zien toegevoegd) en 'bugs' te loggen (problemen met het artikel).

Als je je echt avontuurlijk voelt, probeer dan het artikel op je computer te 'zoeken', de toevoegingen zelf te maken en vervolgens een pull-aanvraag in te dienen om het op de site te laten toevoegen ... als niets van dat voor jou zinvol is, maak je geen zorgen ; een latere revisie bevat meer details!