Le code source du moteur source est-il disponible?

Réponses:

35

Non, ça ne l'est pas. Vous pouvez obtenir une licence source auprès de Valve, mais Source elle-même n'est pas open-source.


De plus, il est généralement très dangereux d'utiliser des moteurs existants entiers comme matériel d'apprentissage sans les conseils d'une personne fortement impliquée dans le développement de ce moteur.

Le code source à lui seul ne vous dit que le comment de décisions de conception particulières, pas le pourquoi derrière la plupart de ces décisions, ce qui est souvent extrêmement important étant donné que tant de choix en génie logiciel sont parmi des options généralement tout aussi valables. Vous avez besoin de contexte pour comprendre pourquoi un choix est bon, et si vous regardez simplement la source de certains moteurs et de leurs techniques et idiomes, vous apprenez à peine quelque chose d'utile.

De plus, ce n'est pas parce que le code a livré un jeu que ce code est bon (la source en particulier est sujette à beaucoup de décisions de conception désormais très dépassées en ce qui concerne C ++ et OO, par exemple). Il y a beaucoup d'histoires d'horreur dans les bases de code moteur des titres AAA les plus réussis. Et en tant que néophyte impressionnable, comment allez-vous pouvoir distinguer le bon du mauvais?

Soyez très prudent en utilisant le code source comme ressource d'apprentissage et assurez-vous de le coupler avec autant d'informations supplémentaires que possible.


la source
3
"Le code source à lui seul ne vous dit que comment des décisions de conception particulières, pas le pourquoi derrière la plupart de ces décisions qui est souvent extrêmement important étant donné que tant de choix en génie logiciel sont parmi des options généralement tout aussi valides." Je pense que c'est mon réponse.
Sad CRUD Developer
@BDillan en effet, certaines personnes apprennent que la manière difficile .. bien que les entreprises vous embaucheront pour travailler avec d'énormes piles de code moteur que vous ne comprenez pas et que vous n'avez pas le temps et finissez simplement par déboguer.
teodron
Notez que les logiciels d'identification ont mis à disposition plusieurs de leurs moteurs: github.com/id-Software
pjc50
1
Comme une légère tangente, regarder le code d'un moteur commercial peut être très éducatif si vous avez un pro pour expliquer la différence entre "ce code est bon" et "ce code est un vilain hack qui était nécessaire dans l'ancien journées"; par exemple -> fabiensanglard.net
Shish
5

tl; dr: Apprendre à créer un moteur est souvent aussi utile à la création de jeux que d'apprendre à construire son propre ordinateur et système d'exploitation à partir de zéro. Si vous n'êtes pas un expert dans le domaine, vous ne voulez probablement pas faire de moteur. Faites un jeu à la place, la partie moteur existe déjà. Plus tard, si aucun des moteurs auxquels vous avez accès ne répond aux critères de conception de votre jeu, vous pouvez vous concentrer sur la construction de cet aspect spécifique et l'enfer pourrait également être utile aux autres puisque vous créez quelque chose de nouveau et ne ressassez pas une version moins robuste de quelque chose dans lequel les gens ont déjà investi des milliers d'heures.

Version longue: si vous voulez vraiment apprendre à écrire un moteur, ne regardez pas encore un moteur existant. Apprenez à la place des parties (algorithmes) qui font un moteur, que ce soit le rendu, la physique ou la recherche de chemin, etc. Une fois que vous aurez acquis une compréhension approfondie d'un aspect spécifique, vous voudrez peut-être vérifier la source.

Normalement, vous ne souhaitez pas apprendre directement à partir de la source, sauf s'il n'y a pas d'alternative supérieure. Même les programmeurs expérimentés ne regarderaient normalement pas la source d'un moteur entier pour en tirer des leçons (s'ils peuvent l'aider), ils en inspecteraient très probablement une partie spécifique ou en modifieraient une certaine partie. Essayer de regarder la source à des fins d'apprentissage pur n'exposerait pas la procédure et le processus de réflexion derrière le code moteur; Ce serait comme déchirer un bâtiment en morceaux pour essayer d'en voir l'intérieur afin d'apprendre à en construire un. Bien que je sois d'accord avec la réponse de Josh, je vais aller encore plus loin, vous n'apprenez même pas le "Comment" dans de nombreux sens (à moins que vous ne soyez familier avec le domaine); par exemple, quelle méthodologie a été utilisée par l'équipe de programmation? Sur quels principes s'appuyaient-ils pour implémenter un code de travail? Quels outils et techniques ont-ils utilisés pour le débogage? Toutes ces questions sont parfois plus importantes que le code lui-même (à des fins d'apprentissage).

Si vous souhaitez apprendre de la source, recherchez une source bien documentée et dotée d'une solide communauté autour d'elle. La lecture de code (moteur), même si vous l'avez écrit vous-même, est souvent source de confusion.

AturSams
la source