Jaka jest dobra gra Open Source do nauki? [Zamknięte]


15

Chcę pobrać kod źródłowy gry Open Source, aby móc zapoznać się z architekturą gry. Czy ktoś wie o grze z kodem źródłowym, który jest czytelny i łatwo zrozumiały?

Edycja: Po zastanowieniu chciałbym stworzyć grę, w którą można grać na komputerze stacjonarnym lub telefonie Andriod z grafiką 2D.


7
Większość gier typu open source to duże, stare projekty, które nie zawsze są łatwo zrozumiałe, projekty komercyjne, które zostały otwarte z różnych powodów, lub niedokończone gry, które tak naprawdę nie są w stanie do gry. Dodatkowo architektura nieco zależy od rodzaju gry i używanego języka. Z jakiej gry chcesz się uczyć i jakie znasz języki? (tutoriale mogą być lepszym rozwiązaniem tutaj)
thedaian

@thedaian Wiem java, C ++, C, javascript i python
jumpnett


Zgadzam się z thedaianem, przynajmniej to działało dla mnie lepiej. Istnieje wiele bardzo dobrych artykułów, książek i samouczków. Będziesz musiał poświęcić trochę czasu na wybranie odpowiednich, ale zaoszczędzi to czasu później, ponieważ będziesz już wiedział, dlaczego kodują tak jak oni, i będziesz w stanie rozpoznać jakość źródeł (które często pachną). Jeśli chcesz mieć przenośność, wybrałbym C / C ++, ale na tych platformach możesz sobie poradzić z Javą.
Pablo Ariel,

1
Wiki społeczności?
Jari Komppa,

Odpowiedzi:


2

Nie jestem pewien, o którą grę prosisz, ale istnieje gra typu open source o nazwie OpenTTD napisana w c ++. Myślę, że możesz użyć go jako dobrej próbki.

niektóre cechy, które czynią tę grę wyjątkową:

  • To gra strategiczna.
  • Ma wsparcie dla wielu graczy przez Internet i sieć lokalną.
  • Obsługuje tłumaczenie na inne języki za pomocą pliku konfiguracyjnego (który jest generowany z nieprzetworzonych plików tekstowych)
  • Jest kompilowany na prawie każdej platformie, którą znam.
  • Jego projekt wciąż żyje!
  • Ma wbudowane wsparcie AI.
  • Dane graficzne i muzyczne można w pełni dostosowywać za pomocą łatek.
  • Obsługuje języki skryptowe do tworzenia niestandardowej sztucznej inteligencji. dzięki czemu możesz także przeczytać inne AI napisane dla tej gry.
  • To stosunkowo duży projekt, a jednocześnie łatwy do odczytania i zrozumienia jego kodu.
  • Opiera się na SDL i od tego momentu opracowali wszystko od zera.

--Edytować--

Właśnie dzisiaj zacząłem czytać ich kod od samego początku. Aby zrozumieć, co napisali, musisz być porządnym programistą C i C ++ (chociaż ich kod jest dobrze skomentowany)! Mam na myśli, że musisz być mistrzem obu języków, ponieważ używają struktur z obu! więc jeśli nie jesteś wystarczająco pewny swoich umiejętności programistycznych, nie zbliżaj się nawet do tego kodu! to najbrudniejszy kod, jaki kiedykolwiek widziałem! (i sam jestem brudnym programistą, ale to coś innego!)

Myślę, że teraz mogę zasugerować sprawdzenie kodu supertuxu . jest to gra platformowa (podobnie jak Super Mario) i do tej pory ich kod wydaje się bardzo czysty (sprawdziłem kamień milowy 1.3). mają w tym kodzie kilka komentarzy, ale tylko w miejscach, w których możesz się pomylić.


Chociaż OpenTTD jest niesamowitą grą, nie sądzę, aby był to dobry projekt edukacyjny. Większość z nich została poddana inżynierii wstecznej od złożenia, a nadal istnieją sekcje kodu, które to odzwierciedlają. Co więcej, jest to po prostu ogromny projekt i prawdopodobnie to za dużo na początek projektu „ucz się architektury gry”.
thedaian

@thedaian możesz tak powiedzieć, ale od czasu do czasu muszę zrobić coś nowego, po prostu czytam, co jest napisane w ich kodzie. jak dotąd myślę, że jest to najbardziej czytelna gra typu open source, którą warto przeczytać!
Ali1S232,

też nie jestem pewien, kiedy ostatni raz sprawdzałeś ich kod, ale wyczyścili go od wersji 1.0.0
Ali1S232,

2

Myślę, że dobrym pomysłem jest wybranie gry, która ci się podoba i sprawdzenie takich gier typu open source. Klony gry open source lista mogłaby pomóc w ostatnim etapie, dużo.


1

Są takie ostrzeżenia jak Quake 3 lub jeśli chcesz czegoś nieco prostszego (i 2D), spójrz na niezależną grę Gish . Oba używają OpenGL i są również wieloplatformowe.

Gish jest jednak trochę zaniedbany.


1

Polecam najpierw skupić się na tym, jaki rodzaj architektury gry chcesz poznać - potok 3D, fizyka, sztuczna inteligencja itp.

Z ogólną prośbą o dobry przykład programowania gier, myślę, że najeźdźcy kosmiczni gl są trudni do pokonania, ponieważ mają czysty kod oraz otwartą grę i interfejs gl, utrzymując przy tym dość prostą rzecz.

Twoje zdrowie


Czy najeźdźcy kosmiczni mają tylko okna gl? Obecnie nie mam zainstalowanego systemu Windows na komputerze. Nie dlatego, że nie mam do niego dostępu, tylko, że nie jest to tak wygodne.
jumpnett

1

Chociaż czytanie kodu może być przydatne, jeśli jesteś początkującym w domenie, niczego się nie nauczysz. Zwłaszcza jeśli spojrzysz na kod dużych projektów, takich jak Q3A lub OpenTTD. Zostały one wykonane przez cały zespół, przy czym każda osoba ma inne praktyki kodowania, różne pomysły na to, jak to zrobić. Dostaniesz tylko duży obraz, a nie drobne szczegóły, które sprawiają, że wszystko się łączy.

Rozwijaj się, nie udawaj, spróbuj ponownie, aż znajdziesz coś, co wydaje się być dobre, ponawiaj porażkę, płucz i powtarzaj, aż uzyskasz coś dobrego. Różni programiści oznaczają różne pomysły na implementację rzeczy. Tylko dlatego, że został zakodowany przez Carmacka / Znanego programistę, który stworzył dobrą grę, nie oznacza, że ​​jest to najlepsza rzecz od czasu krojonego chleba, a inna implementacja może być wyraźniejsza i szybsza.


1

Myślę, że jedną z najważniejszych rzeczy, które możesz zrobić, jest wybór gry, w którą lubisz grać. Pomoże ci to zainteresować i sprawi, że zapoznasz się z tym, jak sam kod przekłada się na perspektywę graczy.

Po wybraniu tej gry, niezależnie od jej wielkości, nie musisz próbować wymyślić, jak działa każda linia kodu. Wybierz kawałek i spójrz na to. Na przykład spróbuj dowiedzieć się, jak przechowywane są dane odtwarzacza lub jak rysowany jest element menu itp.

Następną rzeczą, którą możesz zrobić, podobnie jak mój poprzedni bit, jest próba zmiany czegoś. Nie jest to coś wielkiego (na początku), tylko coś prostego i zauważalnego w grze. Nawet coś tak prostego, jak tekst na przycisku w menu lub dodanie pozycji menu lub zmiana obliczeń obrażeń. Może uważasz, że powinni byli zrobić coś inaczej, spróbuj to zmienić samemu.

Kiedy po raz pierwszy zainteresowałem się tworzeniem gier, naprawdę interesowałem się grami RPG 2D. Znalazłem więc źródło jednego z nich online i zacząłem na nim budować. Dodawanie własnych funkcji i poprawianie, naprawianie błędów itp. To było w VB6 kilka lat temu, a teraz używam C # i XNA i piszę własną grę od podstaw. Ponieważ podobały mi się gry, motywowało mnie to do pracy nad tym, aby było lepiej. Nawiasem mówiąc, w ten sposób nauczyłem się wielu technik programowania, debugowania i rozwiązywania problemów, których używam dzisiaj w mojej pracy niezwiązanej z grą.

Jest to również bardzo pomocne, jeśli gra ma społeczność modderów, z której można zadawać pytania oraz uzyskać pomoc i przykłady. Ale z drugiej strony, nawet jeśli to nie istnieje, jesteś już tutaj i jesteśmy gotowi pomóc.




0

Przewijanie Gra Development Kit 2 pozwala rzeczywiście stworzyć 2D gry i odtwarzać je za pomocą graficznego interfejsu użytkownika bez konieczności pisania kodu. Ale pozwala także zobaczyć i edytować kod osadzony w projekcie, który reprezentuje platformę / silnik gry. Większość kodu jest ujawniana za pomocą GUI, chociaż niewielka jego część generowana jest na podstawie tego, gdzie umieszczasz duszki i jakie mapy tworzysz. Jednak nawet ten kod jest widoczny, jeśli wygenerujesz projekt, a następnie otworzysz pliki wynikowe w Visual C # Express. Cały program (IDE) również jest open source. Jest zbudowany na bibliotece OpenTK (której używa do współpracy z OpenGL od C #), która jest również open source.


Rzucę na to okiem, ale jestem programistą, więc pisanie kodu nie jest wielkim problemem.
jumpnett 30.09.11
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.