Quiero descargar el código fuente de un juego de código abierto, para familiarizarme con la arquitectura del juego. ¿Alguien sabe de un juego con código fuente que sea legible y fácilmente comprensible?
Editar: después de pensarlo un poco, me gustaría hacer un juego que se pueda jugar en el escritorio o en un teléfono Andriod con gráficos 2D.
architecture
open-source
source-code
jumpnett
fuente
fuente
Respuestas:
No estoy seguro de qué tipo de juego está solicitando, pero hay un juego de código abierto llamado OpenTTD escrito en c ++. Creo que podrías usarlo como una buena muestra.
Algunas características que hacen que este juego sea único:
--Editar--
Justo hoy comencé a leer su código desde el principio. Para entender lo que han escrito, debes ser un programador decente de C y C ++ (¡aunque su código está bien comentado!) ¡Quiero decir que tienes que ser un maestro de ambos idiomas ya que están usando estructuras de ambos! así que si no estás lo suficientemente seguro sobre tus habilidades de programación, ¡ni siquiera te acerques a ese código! ¡Ese es el código más sucio que he visto! (¡y yo mismo soy un codificador sucio pero son otra cosa!)
Creo que ahora puedo sugerirle que verifique el código de supertux . es un juego de plataformas (al igual que Super Mario) y hasta ahora su código parece realmente limpio (he comprobado el hito 1.3). tienen algunos comentarios en ese código, pero solo para lugares en los que puede confundirse.
fuente
Creo que quizás un buen enfoque es elegir un juego que te guste y ver cualquier juego de código abierto como ese. La lista de clones de juegos de código abierto posiblemente podría ayudar mucho con el último paso.
fuente
Hay pilares como Quake 3 o si quieres algo un poco más simple (y en 2D) mira el juego independiente Gish . Ambos usan OpenGL y también son multiplataforma.
Sin embargo, Gish está un poco desordenado.
fuente
Te recomiendo que primero centres tu atención en el tipo de arquitectura de juego que te interesa aprender: canalización 3D, física, IA, etc.
Con una solicitud genérica de un buen ejemplo de programación de juegos, creo que Space Invaders Gl es difícil de superar, ya que tiene un código limpio y una interfaz de juego abierta, mientras que las cosas son bastante simples.
salud
fuente
Aunque leer el código puede ser útil, si eres un principiante en el dominio, no aprenderás nada. Especialmente si nos fijamos en el código de grandes proyectos como Q3A u OpenTTD. Estos fueron realizados por un equipo completo, con cada persona teniendo diferentes prácticas de codificación, diferentes ideas sobre cómo hacer las cosas. Solo obtendrá una visión general, no los pequeños detalles que hacen que todo se mantenga unido.
Desarrolle, falle, intente nuevamente hasta que encuentre algo que parece ser bueno, vuelva a fallar, enjuague y repita hasta que tenga algo bueno. Desarrolladores diferentes significan ideas diferentes sobre cómo implementar cosas. El hecho de que haya sido codificado por Carmack / cualquier desarrollador famoso que haya hecho un buen juego no significa que sea lo mejor desde el pan rebanado, y una implementación diferente podría ser más clara y rápida.
fuente
Creo que una de las cosas más importantes que puedes hacer es elegir un juego que disfrutes jugar. Esto ayudará a mantenerlo interesado en él y lo familiarizará con la forma en que el código se traduce en la perspectiva de los jugadores.
Una vez que hayas elegido ese juego, independientemente de cuán grande sea, no tienes que tratar de descubrir cómo funciona cada línea de código. Elige un pedazo y mira eso. Por ejemplo, intente descubrir cómo se almacenan los datos del jugador o cómo se dibuja un elemento del menú, etc.
Lo siguiente que puede hacer, que va junto con mi parte anterior, es intentar cambiar algo. No es algo enorme (al principio), solo algo simple y notable en el juego. Incluso algo tan simple como el texto de un botón en un menú o agregar un elemento de menú o cambiar los cálculos de daños. Tal vez piense que deberían haber hecho algo diferente, intente cambiarlo usted mismo.
Cuando me interesé por primera vez en el desarrollo de juegos, estaba realmente interesado en los juegos de rol 2D en línea. Así que encontré la fuente de uno en línea y comencé a desarrollarlo. Agregar mis propias características y ajustar cosas, corregir errores, etc. Eso fue en VB6 hace unos años y ahora estoy usando C # y XNA y escribiendo mi propio juego desde cero. Debido a que disfruté los juegos, me motivó a querer trabajar en ello, para mejorarlo. Casualmente, esta es también la forma en que aprendí muchas de las técnicas de programación, depuración y resolución de problemas que uso hoy en mi trabajo diario no relacionado con gamedev.
También es muy útil si el juego tiene una comunidad de modders a la que puedes hacer preguntas y obtener ayuda y ejemplos. Pero, de nuevo, incluso si eso no existe, usted ya está aquí y estamos listos para ayudarlo.
fuente
El destacado juego de plataforma de Android 2D de código abierto es Replica Island .
La fuente está en Google Code y el desarrollo fue registrado en el blog de desarrollo del autor .
Aquí hay una lista de 15 juegos de código abierto para Android que también podrían ser útiles para ver.
fuente
Echa un vistazo a la penumbra . Parece un gran lugar para aprender.
fuente
El Scrolling Game Development Kit 2 te permite crear juegos 2D y jugarlos usando una GUI sin escribir código. Pero también te permite ver y editar el código que está incrustado en el proyecto que representa el marco / motor detrás del juego. La mayor parte del código se expone a través de la GUI, aunque una pequeña parte del código generado se basa en dónde coloca los sprites y qué mapas crea. Sin embargo, incluso este código es visible si genera el proyecto y luego abre los archivos resultantes en Visual C # Express. Todo el programa (IDE) en sí también es de código abierto. Está construido en la biblioteca OpenTK (que utiliza para interactuar con OpenGL desde C #), que también es de código abierto.
fuente