Де я можу знайти хороші (добре організовані) приклади ігрового коду? [зачинено]


42

Де я можу знайти хороші (добре організовані) приклади ігрового коду? Я сподіваюся, що зможу підібрати кілька організаційних порад. Більшість прикладів у книгах занадто короткі і залишають безліч деталей заради стислості. Мене особливо цікавить, як згрупувати свої змінні та методи, щоб інший програміст знав, де шукати код. Наприклад, ініціалізатори вгорі, потім методи, які приймають дані, а потім методи, що оновлюють представлення даних.

Мені не байдуже до певної мови, якщо її OOP. Я переглянув джерела Quake 2 і 3, але вони прямі на C і не дуже допомагають отримувати поради щодо організації ваших об'єктів.

Отже, ви бачили якесь хороше джерело? Будь-які вказівки на код, які змушують вас сказати "вау, це добре організовано" було б чудово.


1
Це насправді не пряма відповідь, тому я просто залишу це як коментар. Рекомендую ознайомитись із книгою «Розробка програмного забезпечення великого масштабу C ++» Джона Лакоса. Це було для мене дуже освітянським.
BRaffle

Відповіді:


19

У кількох комерційних іграх було випущено вихідний код. Деякі ігри перераховані тут . Немає гарантії, що код у них добре організований, але, переглянувши якийсь вихідний код із комерційно успішних ігор, ви можете добре зрозуміти, що працює на практиці.

Крім того, не граючи , гра OpenSceneGraph має багато компонентів гри та добре архітектурована на C ++, використовуючи різні шаблони дизайну, плагіни тощо. Це досить велика база коду і існує досить довго, щоб ви могли дізнатися багато з цього.


1
Спасибі, список Вікіпедій був корисним. Весна справді добре організована - всі методи групуються за загальною функцією (завантаження / збереження, малювання тощо) github.com/spring/spring/blob/master/rts/Game/Game.h Aquaria змусив мене почувати себе краще організація коду: hg.icculus.org/icculus/aquaria/file/f08b7288f92c/Aquaria/… Я, однак, не повинен критикувати справжніх артистів.
смайлик

Я б додав Ogre як хороший посилання на OpenSceneGraph ...
Klaim

6

Битва за Веснот - це:

Безкоштовна покрокова тактична стратегічна гра з великою темою фентезі, що включає як однокористувацький, так і багатокористувацький бойовий онлайн / hotseat

Безкоштовно, як у відкритих джерелах, під GPL. Я щойно знайшов / завантажив його, тому не можу сказати, як виглядає геймплей, але отримав чудові відгуки. Я також не знаю, чи їх код "добре організований" :) Але ей, це відкритий код .


Дійсно смішно :): p
Qchmqs


4

Якщо ви шукаєте хороший OOP - мені дуже сподобалась об’єктна модель Doom3 SDK .
Ogre3D - це важкий дизайн OOP, але я підкреслюю важкий, оскільки я думаю, що він досить роздутий безліччю прикладів та плагінів.

Дайте мені знати, що ви думаєте.



0

Прототип, переможець одного з змагань «Шмуп-Дев»:

http://xout.blacwered-interactive.com/ProtoType/Prototype.html

І вихідний код:

http://xout.blacwered-interactive.com/dump/new/ProtoType_src.zip

Оскільки я початківець з кодом, я не можу сказати багато про якість, але просто скупившись над цим, я дав мені деяку інформацію. Весело.


0

У мене є джерело простого, яке ми використовуємо для змагань з кодової війни на Windward Wrocks . Я думаю, що це добре організовано і це досить просто. Але певні частини були створені швидко, не дуже добре. З урахуванням сказаного, навіть у найбільших командах з розробки ігор є частини, написані швидко, не дуже добре.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.