¿Cuáles son algunos buenos enfoques para aprender el Half-Life 2 SDK?

StackOverflow https://stackoverflow.com/questions/803391

  •  03-07-2019
  •  | 
  •  

Pregunta

He sido un amante de Half-Life durante años. Tengo un BS en CS y he estado programando informalmente desde la escuela secundaria. Cuando aún estaba en la universidad, traté de convertirme en un programador de mod para divertirme ... usando el primer motor de Half-Life ... no funcionó tan bien. Así que después de todo mi gran aprendizaje universitario, pensé :-) Tendría más información sobre cómo abordar este problema y finalmente podría hacerlo. Así que aquí estoy ... finalmente en el mundo de los negocios, en Java ... así que descargué el SDK HL2 y comencé a revisar la estructura de clases. Siento que lo hice la última vez que intenté esto ... aturdido y confundido. Lo siento por todo el fondo.

Entonces, ¿cuál es la mejor manera de aprender sistemáticamente la estructura del código? Sé java y sé c ++ ... simplemente no sé qué hace ninguna de las clases ... los comentarios son escasos y la documentación parece escasa. ¿Alguna buena idea? No quiero iniciar mi propio mod. Solo quiero ser un programador de mod de tiempo libre en algún MOD genial algún día ... para mantener la diversión en la programación de aprendizaje junto con el lado comercial.

¿Fue útil?

Solución

  

los comentarios son pocos y distantes entre sí   Y la documentación parece escasa.   ¿Alguna buena idea?

Bienvenido a la maravilla que es Source SDK. No, no está documentado. Experimente, corte, coloque puntos de interrupción y vea qué sucede si cambia los bits de código.

Hay un wiki que puede ser útil en algunos casos, pero está lleno por la comunidad, y no por Valve, lo que significa que no encontrará ninguna documentación real allí, solo explicaciones de cómo los modders anteriores han pirateado el motor.

Honestamente, apesta. La única forma de evitarlo es sumergirse. Intenta lograr varios cambios en el juego y no tengas miedo de separar el código existente. No será bonito, pero si funciona, ¿quién se va a quejar? Su código es bastante horrible, y lo más probable es que el tuyo también lo sea.

Otros consejos

Puede comenzar en Wiki de Valve Developer .

Creo que la mejor manera es revisar el código fuente de uno de los pocos mods de código abierto, Open Source Jail Break . Le ayudará al menos a familiarizarse con el código.

Más allá de eso, es solo recursos para desarrolladores y foros.

Editar: Plan de ataque también es genial.

También: Esta es una gran lista, que incluye temas generales y específicos.

Haría lo que hago con cualquier otro sistema vago ... establecería muchos puntos de interrupción y sentiría la estructura observándola funcionar. Añade tus propios comentarios / documentación a medida que avanzas. Pruebe su comprensión haciendo pequeños cambios y vea si obtiene los resultados esperados.

He trabajado con Source SDK por poco y he realizado algunas modificaciones. Realmente tienes que tener una buena comprensión de C y C ++. El Source SDK no es C ++ moderno y es mucho más parecido a C con clases que cualquier OOP real.

El SDK está diseñado simplemente porque la mayoría del código está compuesto por entidades, de las cuales muchas puedes ignorar.

También debes saber que el SDK usa la herencia en gran medida, así que busca en las clases base la funcionalidad que desees.

Yo diría que haga una lista de archivos y clases importantes que puedan ser relevantes para lo que quiera hacer con el SDK. Luego, comience a ordenar estos archivos utilizando carpetas virtuales en VS (o carpetas reales en el sistema de archivos) y use la opción buscar en archivos (o grep) para encontrar su camino.

Algunos archivos de muestra: eiface.h - Interfaces del motor gameinterface.cpp / .h - Un montón de interfaces de dlls externos para el servidor cdll_client_int.cpp / .h - Muchas interfaces de dlls externos para el cliente * _gamerules.cpp / .h - Gamerules (determina la lógica del juego) world.cpp - Entidad que determina las propiedades del mapa y carga las reglas de juego y otras entidades

También intente usar Source SDK Base en lugar de HL2MP Base para un mod. El primero es mucho más limpio y más fácil de construir.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top