¿Dónde puedo encontrar buenos ejemplos (bien organizados) de código de juego? [cerrado]

42

¿Dónde puedo encontrar buenos ejemplos (bien organizados) de código de juego? Espero poder recoger algunos consejos organizativos. La mayoría de los ejemplos en los libros son demasiado cortos y dejan de lado muchos detalles en aras de la brevedad. Estoy particularmente interesado en cómo agrupar sus variables y métodos para que otro programador sepa dónde buscar en el código. Por ejemplo, inicializadores en la parte superior, luego métodos que toman datos, luego métodos que actualizan vistas.

No me importa un idioma en particular, siempre que sea POO. Miré las fuentes de Quake 2 y 3, pero son C directas y no son de mucha ayuda para obtener consejos sobre cómo organizar sus objetos.

Entonces, ¿has visto alguna buena fuente? Cualquier puntero al código que te haga decir "wow, eso está bien organizado" sería genial.

aplastante
fuente
1
Esto no es realmente una respuesta directa, así que lo dejaré como un comentario. Recomiendo consultar el libro Diseño de software C ++ a gran escala de John Lakos. Fue muy esclarecedor para mí.
Sorteo

Respuestas:

19

Varios juegos comerciales han publicado su código fuente. Algunos de los juegos se enumeran aquí . No hay garantía de que el código en estos esté bien organizado, pero al mirar algún código fuente de los juegos que tuvieron éxito comercialmente, puede tener una buena idea de lo que funciona en la práctica.

Además, aunque no es un juego, OpenSceneGraph tiene muchos de los componentes de un juego y está bien diseñado en C ++, utilizando diferentes patrones de diseño, complementos, etc. Es una base de código lo suficientemente grande y ha existido el tiempo suficiente para que pueda aprender mucho de eso.

kevin42
fuente
1
Gracias, la lista de Wikipedia fue útil. Spring está muy bien organizada: todos los métodos están agrupados por función general (cargar / guardar, dibujar, etc.) github.com/spring/spring/blob/master/rts/Game/Game.h Aquaria me hizo sentir mejor sobre mi propio organización del código: hg.icculus.org/icculus/aquaria/file/f08b7288f92c/Aquaria/… Sin embargo, no debería criticar, los verdaderos artistas envían.
aplastar
Añadiría Ogre como una buena referencia con OpenSceneGraph ...
Klaim
6

Battle for Wesnoth es un:

Juego de estrategia táctica por turnos gratuito con un tema de alta fantasía, con combate para un jugador y combate en línea / multijugador

Gratis como en código abierto, bajo GPL. Lo acabo de encontrar / descargué, así que aún no puedo decir cómo es el juego, pero ha recibido excelentes críticas. Tampoco sé si su código está "bien organizado" :) Pero bueno, es de código abierto .

Cíclope
fuente
Muy divertido :): p
Qchmqs
4

Si está buscando una buena POO, me gustó bastante el modelo de objetos del SDK de Doom3 .
Ogre3D es un diseño pesado de OOP pero enfatizo mucho, ya que creo que está bastante inflado con muchos ejemplos y complementos.

Déjame saber lo que piensas.

Adam Naylor
fuente
2

Tengo el código fuente de las bibliotecas y los juegos completos en mi sitio. Another Early Morning también puede encontrar algunos proyectos en mi página de GitHub . No todo es un brillante ejemplo de calidad, pero eso suele suceder cuando quieres enviar algo.

Alex Schearer
fuente
0

Tengo la fuente de una simple que estamos usando para una competencia de guerra de códigos en Windward Wrocks . Creo que está bien organizado y es bastante simple. Pero ciertas partes se crearon rápidamente, no bien. Dicho esto, incluso en los equipos de desarrollo de juegos más grandes, hay partes en las que se escriben rápidamente, no bien.

David Thielen
fuente