Ce qui suit est une traduction de l'article "Spark Engine Questions and Answers #1", paru sur le blog d'UWE, le 2 Février 2010. L'article original est disponible ici : Lien: 
Nous avons souvent eu des questions à propos des technologies que nous construisons pour Natural Selection 2. C'est pour cela que j'ai écrit ici la première partie d'une des nombreuses parts des posts pour répondre à quelques unes des plus fréquentes. Mon premier appel aux questions en à générer un certain nombre, questions auxquelles je m'intéresserait plus en profondeur, mais pour commencer j'ai pris deux des questions les plus générales.
Andreas demande : Qu'est ce que le moteur "Spark"? Est-ce le moteur du jeu ou juste une partie graphique?
C'est une bonne question pour commencer. Spark est le moteur du jeu en lui-même et l' outil que nous utilisons pour développer Natural Slection 2. Cela inclus les parties tels les graphismes, le son, le réseau, la physique, les scripts, la recherche de chemins et les effets. Cela inclus aussi des outils tels que l'éditeur, le builder, le viewer et l'éditeur de cinématique.
Quand Charlie et moi avons commencé à travailler sur Natural Selection 2, Nous n'avions pas prévu de créer un moteur.
Créer une technologie c'est beaucoup de travail et c'est aussi un grand challenge de créer un jeu - aussi bien en terme de gameplay et d'artwork - quand le moteur n'est pas fini. Quand nous avons finalement décidé que nous allions créer notre propre moteur, nous voulions être sûr que cette technologie soit flexible autant ne pas devoir tout recommencer de zéro pour le jeu suivant. Nous voulions aussi être sûr que d'autres personnes puissent utiliser notre moteur pour faire leur propre jeu. Pour finir, cette technologie est faite pour être totalement indépendante du jeu. Spark est codé en C++ et fourni les fonctions principales pour gérer un monde virtuel. Mais Natural Selection 2, qui est entièrement programmer en LUA, ajoute les éléments commun des FPS (Joueurs, armes, score, etc.) et les spécificités de Natural Sélection comme le mode commander, les arbres technologiques, le "Wall Walking", etc.
La division du travail pour le codage a toujours été très direct - Charlie a écrit le code de Natural Sélection et j'ai écrit celui du moteur et des outils. Plusieurs mois avant, Kurt Miller, un grand programmeur et un bon ami à moi, s'est joint à Unknown Worlds pour travailler sur le code du moteur et les outils.
Pendant les 2 derniers mois nous avons sortis quotidiennement des patchs pour l'éditeur. Certaines personnes interprètent ces updates spécifiques à l'éditeur comme si nous ne travaillions pas sur l'évolution du jeu. En fait, même quand nous étions en train de faire le plus dur de l'éditeur - juste avant la première sortie - Charlie restait entièrement concentré sur le codage du jeu. Ces temps-ci, Kurt et moi utilisons la plupart de notre temps à l'amélioration du moteur, avec Kurt qui utilise un peu de son temps pour implémenter les nouvelles fonctions et la corrections des bugs de l'éditeur.
Beat Wolf demande : Quelles sont les plateformes qu'il pourra supporter? (Linux, OS X, XBox, etc..) La page web mentionne encore Linux et OS X comme des plateformes ciblées, mais il y a eu quelques doutes avec l'inclusion de Steamworks et parce que la question semble avoir été évitée depuis quelques temps maintenant.
Bien, ne la laissons pas être évitée plus longtemps! Actuellement notre moteur et nos outils ne fonctionnent que sous Windows, et ce sera la seule plateforme sur laquelle Natural Selection 2 sera disponible à la sortie. Cependant, la majorité du moteur n'est pas pour une seule plateforme. La grande partie spécifique à Windows est le code de rendu de bas niveau qui est construit sur Direct3D. Dans l'intérêt d'avoir notre moteur tournant sous Linux et OS X un jour, ce code de bas niveau est enveloppé et donc est globalement séparé du reste du moteur. Avec une petite dose d'huile de coude, nous pouvons échanger cette pièce avec l'implémentation d'OpenGL qui marchera sur Linux et OS X. Tous nos outils sont construits en utilisant les librairies de wxWidgets multi-plateformes, donc une fois que le moteur fonctionnera sur une autre plateforme, lui ajouter les outils actuels ne posera pas de problèmes.
Maintenant que je vous ai convaincus que nous avons fait en sorte que notre moteur puisse aller sur d'autres plateformes, vous pourriez vous demander pourquoi nous n'avons pas pris les devants et le faire. La réponse est simple: Nous n'avons pas le temps de le faire maintenant. Comme alternative à le faire nous-même, nous avons pensé a l'"open-source" ou bien à publier les APIs de bas niveaux pour les parties qui sont spécifiques à Windows et d'inviter les membres de la communauté de faire leur propre implémentation. Si vous aimez l'idée faites le moi savoir par le biais des commentaires.
Maintenant la question de Steamworks. Pour ceux qui ne connaissent pas, Steamworks est le cœur de la technologie de Steam, comme la liste d'amis, la recherche de serveurs et la conversation vocale. Nous avons intégré Steamworks dans Natural Selection 2 car cela nous épargne l'effort d'implémentation de ces choses, et nous permet de sortir le jeu plus rapidement. Malheureusement, Steamworks ( Qui est essentiellement le client Steam) ne fonctionne que sous Windows. Nous avons configuré Natural Selection 2 pour qu'il puisse fonctionner sans Steamworks, mais vous perdrez les services qu'il prodigue. Par exemple, à la place de pouvoir rechercher un serveur vous devrez rentrer l'adresse de celui-ci dans la console pour vous connecter dessus. Pour un client OS X ou Linux, nous devrions créer des substituts afin de combler le service perdu. Il n'est pas hors de question qu'une mise à jour soit appliquée au jeu après sa sortie, mais ce n'est pas quelque chose qui retarderait la sortie pour Windows.
Je voudrais ajouter, que tout cela ne s'applique pas aux serveurs dédiés sous Linux. Les serveurs dédiés ne demandent pas de graphismes, apports ou autres choses de spécifiques aux autres plateformes. Et une des meilleure chose dans l'écriture du code du jeu, intégralement en Lua, est qu'il est connus des autres plateformes. Les supports des serveurs dédiés Linux seront dans la sortie initiale.
Si vous avez d'autres question auxquelles vous voudriez que je réponde, n'hésitez pas à m'envoyer un Email à cette adresse: Mail: . Le plus précis possible serait le mieux!
|