GIT i Github - Tworzenie gier
W ostatnim artykule omówiliśmy sobie o co chodzi z systemami kontroli wersji - na przykład Git. Dzisiaj omówimy (przynajmniej mniej więcej) jak je zaadaptować w swoim projekcie [przynajmniej po części].
Tekst jest jednocześnie łatwy i trudny. Tzw. Tekst Schrödingera. Skontaktujcie się najpierw z lekarzem lub farmaceutą. Znajomość tekstu nie jest bardzo ważna w tworzeniu gier, ale wysoce zalecana.
Github
Ogólnie swoje projekty możemy trzymać u siebie, np. na oddzielnym serwerze lub gdzieś "w chmurze". Zazwyczaj jest to popularny serwis "Github", który daje radę. Ma swoje ograniczenia, które konkurencja nie ma, ale prawdopodobnie dobry "look&feel" (czyli wygląd) działa na tyle dobrze, że ludzie wybierają ich usługi. Nam to dużo nie zmienia, który weźmiemy, bo ograniczenia Githuba nas nie dotykają.
Kwestie rejestracji i tworzenia projektu pominę, bo to proste i myślę, że każdy da radę. Gorzej z integracją Gita z Github, ale nawet ja się na tym wykładam i staram się tego nie robić :P Jest ona dość dziwna, chociaż do zrobienia. Dodaję link, który chyba to wyjaśnia - ale jak mówię, sam to robię bardzo rzadko, gdyż to dość problematyczne? Link do poradnika. Patrząc jednak na ten link to powinno być proste ;)
Podstawowe komendy
Enigma-Dev nie ma obsługi Gita (być może będzie miała wraz z nowym interfejsem graficznym), więc musimy to robić z konsoli. Postaram się przedstawić najważniejsze komendy do zarządzania projektem.
Klonowanie repozytorium
Zacznijmy od pobrania repozytorium, na przykład Summoned Monsters
git clone https://github.com/fervi/openygo
Polecenie to pobierze całe repozytorium gry na dysk twardy. Oczywiście można to zrobić z poziomu github, ale nie pobierze on plików delta z projektu. Ogólnie tak jak wspomniałem Git działa jak układanie klocków - jeśli dostaniemy gotowiec zamiast klocków, a chcemy działać na Git poprawnie - to nie zadziała to wcale. Dlatego warto "klonować" repozytorium.
Przejście do konkretnej wersji kodu / zmiana branch.
Możemy chcieć cofnąć się w czasie w projekcie. Ale jak tego dokonać? Musimy wiedzieć gdzie się musimy cofnąć, a tu pomoże Github.
Na czerwono zaznaczony jest przycisk, który kopiuje do schowka sumę kontrolną (SHA). Potem wydajemy polecenie na pobranym repozytorium (musimy być w środku)
git checkout <SUMA>
Na przykład
git checkout 2316c60543c69ed5efa8d1eb702ee381c8084b23
Oczywiście ta suma jest unikatowa dla projektów, więc kopiując ode mnie nie zadziała. Ale macie przykład. Wtedy wszystkie pliki wewnątrz na dysku zostaną zmienione na wersję odpowiednią i możemy np. testować czy błędy występowały kiedyś.
Dodawanie własnych zmian
Ja to raczej traktuję jako 3 komendy w 1 :)
git add .
git commit
git push origin master
Zacznijmy od git add . - Jeśli wprowadziliśmy zmiany i będziemy chcieli je wysłać używamy tej komendy. Sprawdza ona co się zmieniło i przygotowuje te zmiany "do wysłania".
Git commit to ustalenie przez człowieka co wrzucamy. Jak zauważyliście być może każdy "klocek" ma własną nazwę - coś dodano, coś naprawiono. To właśnie wpisujemy w git commit - wyskoczy nam edytor tekstu, uzupełniamy dane i tyle.
Git push origin to wysłanie zmian na serwer. Najczęściej raczej będziemy używać master (główna "strona" projektu), ale jak mamy inne branche to możemy do nich dorzucać.
Czy coś jeszcze?
To są naturalnie podstawy podstaw. One pozwolą Wam nie umrzeć za bardzo przy okazji tego typu systemów. Niestety ciężko mi opisać łatwo taki program, gdyż o ile jest ważny - nie jest konieczny. Po prostu bardzo ułatwia pracę, przez utrudnienie pracy ;)
Warto wspomnieć, że jeśli nauczycie się obsługiwać gita to możecie startować z projektami do Utopiana. Co prawda są szanse, że odrzucą (chociaż właśnie przechodzą zmiany i może znowu będą serwisem dla ludzi), ale jak się uda to zawsze ileś tam dolarów do przodu ;)
Możliwe, że będziecie musieli się z innego źródła dowiedzieć tego, bo ja jakoś "egzystuję", ale sam przez długi czas nie rozumiałem po co jest CVS, SVN czy ostatecznie Git - uważałem tylko za problem, ale jak się zrozumie o co chodzi to jest bardzo dobrze.
A ja nie jestem botem. Dobra robota fervi :D
Ale my jesteśmy :>
Ok
This was something i didn't know
Another cool thing.
Dla tych szczęśliwców, ktorzy korzystają z porządnego systemu (linux :-P) jest cała masa GUIowych nakładek na gita. Oczywiście warto znać najważniejsze polecenia z linii komend, ale czasem przydaje się jakiś interfejs graficzny. I przyznaję to jako zatwardziały użytkownik konsoli :-). W okienkach można łatwiej ogarnąć jesli się ma dużo zmian w wielu plikach, albo gdy się chce popatrzeć na historię branchy. Wszystkich nazw nie pamiętam, ale na pewno korzystam z
gitg
igit-cola
i ich przyjaciół.