¿Está disponible el código fuente del motor de origen?

Respuestas:

35

No, no es. Puede obtener una licencia de fuente de Valve, pero la Fuente en sí no es de código abierto.


Además, generalmente es un enfoque muy peligroso usar motores existentes completos como material de aprendizaje sin la guía de alguien que estuvo muy involucrado en el desarrollo de ese motor.

El código fuente solo solo le dice cómo tomar decisiones particulares de diseño, no el por qué detrás de la mayoría de esas decisiones, que a menudo es extremadamente importante dado que muchas opciones en ingeniería de software se encuentran entre opciones generalmente igualmente válidas. Necesitas contexto para entender por qué una elección es buena, y si solo miras la fuente de algún motor y repites sus técnicas y expresiones idiomáticas, difícilmente estás aprendiendo algo útil.

Además, solo porque el código enviado a un juego no hace que ese código sea bueno (Source en particular es propenso a muchas decisiones de diseño ahora muy anticuadas con respecto a C ++ y OO, por ejemplo). Hay muchas historias de terror que habitan en las bases de códigos del motor, incluso de los títulos AAA más exitosos. Y como un neófito impresionable, ¿cómo vas a poder distinguir el código bueno del malo?

Tenga mucho cuidado al usar el código fuente como recurso de aprendizaje y asegúrese de vincularlo con la mayor cantidad de información adicional que pueda.


fuente
3
"El código fuente solo solo le dice cómo tomar decisiones particulares de diseño, no el por qué detrás de la mayoría de esas decisiones, que a menudo es extremadamente importante dado que muchas opciones en ingeniería de software se encuentran entre opciones generalmente igualmente válidas". Creo que esta es mi responder.
Sad CRUD Developer
@BDillan, de hecho, algunas personas lo aprenden de la manera más difícil ... aunque las empresas lo contratarán para trabajar con grandes cantidades de código de motor que no comprende y no tiene tiempo para terminar simplemente depurando.
teodron
Tenga en cuenta que el software de identificación ha puesto a disposición varios de sus motores: github.com/id-Software
pjc50
1
Como una ligera tangente, mirar el código de un motor comercial puede ser muy educativo si tienes un profesional a mano para explicar la diferencia entre "este código es bueno" y "este código es un truco feo que era necesario en la antigüedad dias"; por ejemplo -> fabiensanglard.net
Shish
5

tl; dr: Aprender a hacer un motor suele ser tan útil para la creación de juegos como aprender a construir su propia computadora y sistema operativo desde cero. Si no eres un experto en el campo, probablemente no quieras hacer un motor. Haz un juego, la parte del motor ya existe. Más adelante, si ninguno de los motores a los que tiene acceso cumple con los criterios para el diseño de su juego, podría enfocarse en construir ese aspecto específico y demonios podría ser útil para otros también, ya que está creando algo nuevo y no está volviendo a contar una versión menos robusta de algo en lo que la gente ya invirtió miles de horas.

Versión larga: si realmente quieres aprender a escribir un motor, no mires un motor existente todavía. Aprenda en lugar de las partes (algoritmos) que forman un motor, ya sea renderizado, física o búsqueda de rutas, etc. Una vez que obtenga una comprensión profunda de un aspecto específico, es posible que desee verificar la fuente.

Normalmente no desea aprender directamente de la fuente a menos que no haya una alternativa superior. Incluso los programadores experimentados normalmente no mirarían la fuente de un motor completo para aprender de él (si pueden ayudarlo), lo más probable es que inspeccionen una parte específica o modifiquen una determinada parte. Intentar mirar la fuente con fines de aprendizaje puro no expondría el procedimiento y el proceso de pensamiento detrás del código del motor; Eso sería como desgarrar un edificio en pedazos en un intento de ver su interior para aprender a construir uno. Si bien estoy de acuerdo con la respuesta de Josh, lo llevaré un paso más allá, ni siquiera aprendes el "Cómo" en muchos sentidos (a menos que estés familiarizado con el campo); por ejemplo, ¿Qué metodología utilizó el equipo de programación? ¿En qué principios se basaron para implementar el código de trabajo? ¿Qué herramientas y técnicas utilizaron para la depuración? Todas estas preguntas son a veces más importantes que el propio código (para fines de aprendizaje).

Si desea aprender de la fuente, busque una fuente que esté bien documentada y que tenga una comunidad sólida a su alrededor. Leer el código (del motor), incluso si lo ha escrito usted mismo, a menudo es confuso.

AturSams
fuente