Question

Je suis un amoureux de la demi-vie depuis des années. J'ai un BS en CS et je programme de manière informelle depuis le lycée. Quand j'étais encore à la fac, j'ai essayé de devenir programmeur pour s'amuser ... en utilisant le premier moteur Half-Life ... ça n'a pas si bien fonctionné. Donc, je me suis dit qu'après toutes mes bonnes études universitaires :-) J'aurais plus de perspicacité sur la façon de résoudre ce problème et je pourrais enfin le faire. Donc, me voilà enfin dans le monde des affaires, en train de programmer Java ... alors j'ai téléchargé le SDK HL2 et commencé à regarder à travers la structure de classe. J'ai l'impression d'avoir fait cela la dernière fois que j'ai essayé cela ... étourdi et confus. Désolé pour tout l'arrière-plan.

Alors, quel est le meilleur moyen d’apprendre systématiquement la structure de code? Je sais que java et je connais c ++. Je ne sais tout simplement pas ce que font les classes. Les commentaires sont rares et la documentation semble maigre. Des bonnes approches? Je ne veux pas commencer mon propre mod ... Je veux juste peut-être être un programmeur de mods de temps libre sur un MOD cool un jour ... pour garder le plaisir d'apprendre la programmation avec le côté commercial.

Était-ce utile?

La solution

  

les commentaires sont rares   et la documentation semble maigre.   Des bonnes approches?

Bienvenue dans la merveille qu'est le SDK Source. Non, ce n'est pas documenté. Expérimentez, piratez, placez des points d'arrêt et voyez ce qu'il se passe si vous modifiez des morceaux de code.

Il existe un wiki utile dans certains cas, mais il est rempli par la communauté, et non par Valve, ce qui signifie que vous ne trouverez aucune documentation, mais des explications sur la façon dont les précédents modders ont piraté le moteur.

Honnêtement, ça craint. Le seul moyen de contourner le problème est d’y plonger. Essayez d’apporter divers changements au jeu et n’ayez pas peur de déchirer le code existant. Ce ne sera pas beau, mais si ça marche, qui va se plaindre? Leur code est assez horrible et très probablement aussi le vôtre.

Autres conseils

Vous pouvez commencer par le Wiki du développeur de vannes .

Je pense que le meilleur moyen est de vérifier le code source de l'un des peu mods open source disponibles, Jail Break Open Source . Cela vous aidera au moins à vous familiariser avec le code.

Par ailleurs, il ne s'agit que de ressources de développement et de forums.

Modifier: le plan d'attaque semble également excellent.

Voir aussi: Cette est une excellente liste, comprenant des sujets généraux et spécifiques.

Je ferais ce que je ferais avec n'importe quel autre système vague ... établirais beaucoup de points d'arrêt et aurais une idée de la structure en la regardant fonctionner. Ajoutez vos propres commentaires / documentation au fur et à mesure. Testez votre compréhension en apportant de petits changements et voyez si vous obtenez les résultats escomptés.

J'ai un peu travaillé avec le SDK Source et apporté quelques modifications. Vraiment, vous devez avoir une bonne compréhension de C et C ++. Le Kit de développement logiciel (SDK) source n’est pas le C ++ moderne et ressemble beaucoup plus au C aux classes qu’à une véritable POO.

Le Kit de développement logiciel (SDK) est simplement conçu de manière à ce que la majeure partie du code se compose d’entités, dont vous pouvez ignorer plusieurs.

Sachez également que le SDK utilise très fréquemment l'héritage. Consultez donc les classes de base pour connaître les fonctionnalités souhaitées.

Je vous conseillerais de dresser une liste de fichiers et de classes importants pouvant être utiles à ce que vous voulez faire avec le SDK. Ensuite, commencez à trier ces fichiers en utilisant des dossiers virtuels dans VS (ou de vrais dossiers sur le système de fichiers) et utilisez l’option de recherche dans les fichiers (ou grep) pour vous repérer.

Quelques exemples de fichiers: eiface.h - Interfaces moteur gameinterface.cpp / .h - Un grand nombre d'interfaces à partir de dll externes pour le serveur cdll_client_int.cpp / .h - Un grand nombre d'interfaces à partir de dll externes pour le client * _gamerules.cpp / .h - Gamerules (détermine la logique du jeu) world.cpp - Entité qui détermine les propriétés de la carte et charge les règles de jeu et autres entités

Essayez également d’utiliser la base du SDK source au lieu de la base HL2MP pour un mod. Le premier est beaucoup plus propre et facile à construire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top