Gdzie mogę znaleźć dobre (dobrze zorganizowane) przykłady kodu gry? [Zamknięte]

42

Gdzie mogę znaleźć dobre (dobrze zorganizowane) przykłady kodu gry? Mam nadzieję, że uda mi się zdobyć kilka wskazówek organizacyjnych. Większość przykładów w książkach jest zbyt krótka i nie zawiera wielu szczegółów ze względu na zwięzłość. Szczególnie interesuje mnie sposób grupowania zmiennych i metod, aby inny programista wiedział, gdzie szukać w kodzie. Na przykład inicjalizatory u góry, następnie metody pobierające dane wejściowe, a następnie metody aktualizujące widoki.

Nie dbam o konkretny język, o ile jest to OOP. Spojrzałem na źródła Quake 2 i 3, ale są one prostym C i niewiele pomagają w uzyskiwaniu wskazówek dotyczących organizowania obiektów.

Widziałeś jakieś dobre źródło? Wszelkie wskazówki do kodu, które powodują, że mówisz „wow, to dobrze zorganizowane” byłoby świetne.

smasher
źródło
1
To nie jest tak naprawdę bezpośrednia odpowiedź, więc zostawię to jako komentarz. Polecam sprawdzenie książki Large-Scale C ++ Software Design autorstwa Johna Lakosa. To było dla mnie bardzo pouczające.
BRaffle,

Odpowiedzi:

19

Kilka komercyjnych gier ma wydany kod źródłowy. Niektóre gry są wymienione tutaj . Nie ma gwarancji, że kod w nich jest dobrze zorganizowany, ale patrząc na kod źródłowy z gier, które odniosły komercyjny sukces, możesz dowiedzieć się, co działa w praktyce.

Ponadto, chociaż nie jest grą, OpenSceneGraph ma wiele składników gry i jest dobrze zaprojektowany w C ++, przy użyciu różnych wzorców projektowych, wtyczek itp. Jest to wystarczająco duża baza kodu i istnieje wystarczająco długo, aby można było się uczyć dużo z tego.

kevin42
źródło
1
Dzięki, lista Wikipedii była przydatna. Wiosna jest naprawdę dobrze zorganizowana - wszystkie metody są pogrupowane według ogólnej funkcji (ładowanie / zapisywanie, rysowanie itp.) Github.com/spring/spring/blob/master/rts/Game/Game.h Aquaria sprawiło, że poczułem się lepiej organizacja kodu: hg.icculus.org/icculus/aquaria/file/f08b7288f92c/Aquaria/... Nie powinienem jednak krytykować, wysyłają prawdziwi artyści.
rozbicie
Dodałbym Ogre jako dobrą referencję do OpenSceneGraph ...
Klaim
6

Bitwa o Wesnoth to:

Darmowa turowa taktyczna gra strategiczna o tematyce fantasy, z udziałem zarówno pojedynczego gracza, jak i online / hotseat

Bezpłatnie jak w open source, na licencji GPL. Ja po prostu znaleźć / Ściągnąłem go, więc nie można powiedzieć, co gra jest jak na razie, ale jest coraz świetne recenzje. Nie wiem też, czy ich kod jest „dobrze zorganizowany” :) Ale hej, to open source .

cyklop
źródło
Naprawdę śmieszne :): p
Qchmqs
4

Jeśli szukasz dobrego OOP - całkiem podobał mi się model obiektowy Doom3 SDK .
Ogre3D jest ciężkim projektem OOP, ale podkreślam, że jest ciężki, ponieważ wydaje mi się, że jest dość rozdęty z wieloma przykładami i wtyczkami.

Powiedz mi co myślisz.

Adam Naylor
źródło
2

Mam kod źródłowy do bibliotek i pełnych gier na mojej stronie Innego wczesnego ranka można również znaleźć projekty na mojej stronie GitHub . Nie wszystko to jest świetnym przykładem jakości, ale zdarza się to wtedy, gdy chcesz coś wysłać.

Alex Schearer
źródło
0

Mam źródło prostej, której używamy do zawodów wojny o kod w Windward Wrocks . Myślę, że jest dobrze zorganizowany i całkiem prosty. Ale niektóre części powstały szybko, niezbyt dobrze. To powiedziawszy, nawet w największych zespołach tworzących gry, są części, które są napisane szybko, niezbyt dobrze.

David Thielen
źródło