Rouages confidentiel : Curio, Directeur Ingénieur du Spiral Knights

Cher chevalier :
C'est le temps pour un autre Rouages confidentiel !
Pour le 4ième Rouages confidentiel, notre interviewé est Mark « Curio » Johnson, directeur ingénieur du Spiral Knights.
Mark est le responsable pour la fondation des systèmes et des outils que les dessinateurs et artistes de SK utilisent pour créer le jeu. Il a aussi travaillé sur le système de Mission, et en plus les systèmes de fabrication et de magasinage.
Des questions pour Mark ? Postez-les ici !
Les règlements pour Rouages Confidentiel :
S'il y a une grande nombre des questions, nous choisirons 5 à 8 questions pour l'interviewé à répondre.
Vous pouvez poser quelques questions (plus d'un), mais veuillez noter que nous préférons des questions de qualités.
Vous pouvez poser des questions qui n'ont rien à faire avec Spiral Knights. Des questions comme « Quelle garniture de pizza aimez-vous » ou « Quels
sorts de jeu jouez-vous récemment ? » sont appropriées.
Des questions inappropriées (trop personnelles, grossières, etc.) seront ignorées et/ou supprimées.
La date limite pour poster des questions pour cet entrevue de Rouages confidentiels est mardi le 6 novembre à 23h59 pacifique.

Aero, dans l'hypothèse ou Atalanta arrive à te lire, je doute que tes questions sur le background de spiral knight soient pour un ingénieur informaticien qui s'occupe ( apparemment) principalement de programmation pure. Après peut être que je me trompe, je dis juste ca pour préciser qu'il y a de grande chances qu'il ne puisse pas répondre à ce genre de question.
Mes questions sur son activité :
-Quels sont les outils créés spécialement pour les artistes de sk?
-quels sont les outils créés les plus utilisés?
- Y aura il des outils développés pour les joueurs?
Par exemple in-game : un menu avec des couleurs d'armure ou d'arme à débloquer, permettant de switcher facilement d'une couleur à une autre sur un même item ( c'est un exemple un peu compliqué, je reformulerai si besoin)
ou encore en dehors du jeu, comme un éditeur de map?
- Quand on craft un item, on peut voir écrit "succeed". Était il prévu qu'on puisse rater la fabrication d'un item? Si oui, pourquoi ça ne s'est pas fait?
-Enfin vous dites qu'il a travaillé sur le système de "magasinage". J'ai du mal à comprendre : Vous parlez de l'inventaire du personnage ou des achats d'objets?
-Sur quoi travaille t il en ce moment?

Salutation Mark . Ravie de faire votre connaissance et de voir le boulot que vous avez fait pour faire SK .
Mais n’empêche j'ai quelque question à vous posez :
Q1 : Sur quelle logiciel le jeu est-t-il fait ???
Q2 : Es que vous travaillez sur un système de haut fait ??? Traduction : Si on fait des succès on peut recevoir des récompense ( armes , objet ou divers ) que nous ne pouvons pas avoir en rouage et en craft ???
Q3 : Est-t-il normal que nous devons avoir des redémarrage du serveur ??? Avant c'était 14h mais là pourquoi 13h ???
Q4 : Pourquoi pleine de map des rouages sont t-elles identique ??? Es que vous essayez de faire des maps toujours différente ???
Q5 : Si vous faites le jeu vous faite la Hitbox , pourquoi il y a un gros problème de Hitbox en Lockdown et au Lord Vanaduke ??? Ce bug est-t-il corrigible ???
Q6 : Depuis pas mal de temps , les mises à jour prennent pas mal de temps ( même trop ) ??? Pourquoi ???
Q7: Corriger vous les problèmes de bug des escaliers à l'entrée de Haven ??? Plein peuvent faire le bug dessus .
Q8 : Question qui n'a pas de rapport avec le jeu , lors de la création de SK , vous avez eu des problèmes technique ???
Voilà ce sont mes question . Je me ferais plaisir de lire ta réponse Mark .
Cordialement.

Voici les réponses de Mark « Curio » Johnson sur les Rouages confidentiels ! Chevaliers : Merci de votre patience !
[COMMENCER TRANSMISSION]
Pourquoi le nom « Curio » ? Le nom vient-t-il de l'un de vos collègues ?
Un dilemme curieux comme jamais vu !
J'ai remarqué que votre avatar de forum est une roche. Pourquoi ?
Rien ne vainc la roche !
Apprendre la langue de programmation, est-t-il une bonne idée (j'ai commencé quand j'avais 13 ans) ?
Bien sûr ! J'ai commencé quand j'avais 8 ans. Si long que vous avez l'intérêt, l'âge n'est pas grave. Aujourd'hui, il y a plus des ressources disponibles, particulièrement pour les jeunes qui veulent l'apprendre.
Quand et pour quelle raison avez-vous choisi la programmation ?
Comme j'ai dit, j'ai commencé à programmer quand j'avais 8 ans. J'aimais créer des choses, et avec la programmation, il n'y a pas vraiment des limitations. Un ordinateur vous fournit les ressources illimités pour jouer et pour l'utiliser à faire des choses différents.
Qu'est-ce que vous faites dans votre travail ? Cela n'est pas claire avec moi, car je crois que je confonds un ingénieur avec un développeur.
Mon travail consiste de créer les outils que les artistes et dessinateurs utilisent pour créer le jeu. Je fais partie aussi dans le procès de conception, développant comment les systèmes opèrent dans le jeu, comment les joueurs utilisent et jouent Spiral Knights, et surtout, s’assurant que ceux que nous voulons faire et créer est possible avec notre système de jeu.
Concevant et exécutant une système, ça prend beaucoup de concentration et de temps. J'ai entendu que quelques personnes préparent une ambiance agréable avant de travailler sur un projet intensif ou créatif, comme écouter d'un genre de musique spécifique ou ajouter une activité créative ou une passe-temps dans la travaille. Est-ce qu'il y a quelque chose que vous faites pour créer une ambiance agréable avant d'analyser/écrire un code ?
Ma préférence d'ambiance dépend beaucoup sur la type de travail que je fais. La plupart de temps, je porte mes écouteurs et entends de la musique (en général, c'est le rock indie) afin de minimiser les distractions de bruit de fond. Essayer de piger un bug épineux, de trouver le problème dans le code, ceux-ci m'a besoin d'arrêter la musique afin de faire attention à ces problèmes. Cependant, si j'arrive à une partie de développement où j'ai une bonne idée de comment l'assembler, je mets la musique avec une petite plus d'énergie (maintenant c'est Girl Talk et MSTRKRFT).
Vous jouez Spiral Knights pour s'amuser ou est-ce que seulement une travail ?
Comme tous les jeux desquels je travaille, en général, je ne peux pas toujours les jouer sauf dans les petits temps libres. Pendant que je suis en ligne, je pense toujours à nouvelles choses à ajouter ou améliorer. Alors, c'est plus comme un travail pour moi, mais comme ça, je suis plus motivé d'arrêter jouer et commencer à travailler sur ce que je vois.
Alors, comme le chef d'ingénieur, sur quel travail aimez-vous le plus ?
Ma partie préférée est de créer les outils utilisés pour faire fonctionner les chevaliers, les monstres, et les autres éléments du monde. En particulière, les choses comme les donjons de boss, nous voulons introduire des nouvelles mécaniques dans le jeu. En général, je crée la fondation utilisées pour faire éviter les lasers, ou de battre les monstres masquées, ou de s’assoir sur les chaises et dormir dans les lits.
Les systèmes de fabrication. Je remarque que la probabilité d'une variante unique a une tendance à devenir « groupées ». Par exemple, il y a des temps où je peux recevoir beaucoup de UVs à la fois, mais des autres temps rien n'est arrivée. C'est mon imagination ?
C'est votre imagination ! C'est votre cerveau bien évolué qui est responsable. Votre cerveau, c'est un organe excellent, toujours à la recherche pour la répétition dans le monde. Pour la plupart de temps, le cerveau fait un bon travail à trouver et détecter des groupes répétés. Cependant, il y a des fois ou il trouve des groupes même s'il n'en a rien, particulièrement dans les cas avec les attribues choisis au hasard. Pour la raison que le cerveau cherche pour la répétition, il essaie de la trouver même dans les données choisis au hasard. En ajoutant de la reconnaissance de répétition, il y a une bonne probabilité de mémoriser une série de bonnes UVs. Cela ne se passe pas très souvent, mais si on le voit, on ne l'oubliera pas parce qu'elle était différent avec des bonnes UVs. Alors, ces souvenirs sont plus inoubliable que les moments où vous avez « lancé » un grand nombre de UVs même si on reçoit quelques bonnes UVs en occasion. En somme, la raison qu'on croit que ce n'est vraiment au hasard est parce que c'est le désir de votre cerveau de trouver des répétitions dans tout et toutes, avec le fait qu'on se souvient les moments où on reçoit une série de bonnes UVs dans un intervalle court.
Combien de coders y-a-t-il pour vous aider ?
Il y a actuellement 3 ingénieurs (ex. coders) dans l'équipe Spiral Knights. En gros, nous travaillons en temps plein pour Spiral Knights. Cependant, pour quelques heures ou jours nous recevons l'aide des autres ingénieurs dans la compagnie, et c'est bien appréciée ! Cette aide est pour des améliorations du jeu ou pour des systèmes du jeu, comme le site web, la facturation, système de soutien, etc.
Je pense qu'il y avait un autre personne qui est aussi le responsable pour le développement de software, mais il est parti. Après son départ, y-a-t-il des problèmes qu'il a oublié à enregistrer ou documenter ?
Andrzej, le premier chef d'ingénieur du Spiral Knights (ou Project X pendant son temps) est parti pour poursuivre quelques de ses projets personnels cette année. Franchement, la transition était sans problème J'ai déjà travaillé sur ce projet pour plus de 2 années, alors j'ai eu une bonne connaissance avec le code, et les bibliothèques de code du jeu était vraiment stable ce-temps-là. Alors, nous avons perdu un ingénieur talentueux pour le projet Spiral Knights.
Quel est le code utilisé pour programmer le jeu ? Java ? C++ (ou un autre langue ? o.O) ?
La majorité du jeu est programmé en Java, mais il y a aussi un petit peu de C++ ajouté pour accéder quelques bibliothèques de système d'exploitation.
Combien de lignes de code y-a-t-il dans le « main » de Spiral Knights ?
C'est une question difficile ! En fait, il y a 2 fonctions « main ». L'un pour le client, et l'autre pour le serveur. Le main du client est 31 lignes, et le serveur, seulement 19 lignes.
Est-ce qu'il y a un test automatisé (en utilisant jUnit ou quelque chose d'autre) ? Je pense que non parce que j'ai vu quelques bogues qui ont « ré-apparu » après ils étaient réglés, mais peut-être vous les avez oubliés.
Nous ne faisons pas beaucoup de tests d'unit. Le problème principal est que les tests uniques ne trouveraient pas facilement la plupart de bugs que vous voyez. Les problèmes s'arrivent quand nous changeons la conception ou les paramètres d'un unit, lesquels qui ont un effet sur un ou plus des places dans le code. Ils ont toujours des conséquents non intentionnel. Alors, c'est un compromis entre plus de temps pour créer des tests plus complexe et complets, ou développer plus de content avec plus de soin et de régler des problèmes s'ils arrivent.
Vous avez une grande connaissance des bibliothèques de OOO ? Je vois qu'elles sont tellement approfondies, et je ne sais pas quand vous avez rejoint la compagnie.
Pour moi, c'est plus de 7 années avec Three Rings. Je suis très familier avec nos bibliothèques, bien que avec Spiral Knights nous travaillons avec narya, vilya, nenya, et clyde.
Pourquoi OOO n'ont-t-ils aucune documentation ?
Pour consacrer plus de temps pour créer des jeux.
Qu'est-ce que les sentiments de l'équipe de singes et vous-même sur les bogues dans le jeu ?
Premièrement, il y a des cris. Suivant, les frappes violentes sur quelques choses dans le bureau, et peut-être les ameublements volant. Peu de temps après, Nick arrive avec des bananes et nous tous sont assis sur nos chaises et commençons à battre les machines à écrire. Et après nous avons assez de massages, nous avons déjà trouvé et mangé les bogues qui nous menaçaient. Enfin, nous pouvons faire le dodo.
C'est quoi le défi plus difficiles en Spiral Knights ?
Entrainer une équipe de singes d'utiliser les machines à écrire.
« Object oriented » ou la force brutale ?
Vous demandez cela comme c'est l'un ou l'autre. Nous pouvons utiliser la force brutale sur notre code objet orientée (bien que nous l'évitons autant que possible car nous aimons trouver les solutions élégantes pour notre problèmes).
Vous donnez la priorité à publier des MAJs plus rapidement, ou d'avoir le code structuré et propre et tous les trucs ennuyants ?
Les deux ! Développer les trucs et le content rapidement n'est pas une excuse pour négliger les propres pratiques d'ingénieur. En fait, en assurant que nous garder la haute qualité du code, ça nous permet de continuer développer rapidement. Sinon, il nous reste une poubelle de code qui est difficile à maintenir. Quelques parties sont mieux écrites que les autres, ou les limites de conception agrandissent et ne peuvent pas supporter vos idées et ambitions. Si c'est le cas, nous n'évitons pas de mettre-à-jour le code. Mais c'est encore mieux de le faire sans erreurs sur la première fois que d'écrire et ré-écrire une fois plus sur un code mal écrit.
Était-t-il difficile d'écrire les conditions d'état ? Par exemple, il prend combien de temps pour régler le problème avec l'étourdissement ?
Quelques conditions d'état ont été faciles à écrire. L'étourdissement n'est pas facile à écrire, naturellement, et c'était moi qui doit rectifier le problème. Le cœur du problème est que l'étourdissement cause la vitesse d'une attaque à changer. Alors, si une attaque est en progrès, nous devons recalculer la duréede l'attaque, ajustée au temps la vitesse a changé ; puis, nous devons de s'assurer que les actions pendant l'attaque sont aussi ajustées avec le nouveau temps; et de garder que l'animation joue toujours sans sauter. Ça inclut les affiches des effets visuelles. Tout ça a besoin d'être inversé quand l'effet est fini. Il y a beaucoup de pièces qui sont affectées par cette condition, alors c'est un défi à opérer cet état.
Aviez-vous parlé à propos d'une version console pour le jeu ?
Nous avons parlé d'une version console, mais créer une version console est une autre histoire. La majorité d'interfaces dans le jeu n'est pas concevable pour le console. Trop de choses seront trop petits lorsqu'ils sont affichés sur la télévision (même pour les télés HD), et nous devenions faire du travail considérable afin de permettre les joueurs de naviguer l'interface avec un contrôleur de jeu. Les problèmes techniques seront plus intéressants parce qu'il n'y a aucun console avec le Java Virtual Machine, alors il y a une grande probabilité que le code devrait être écrit dans une autre langue de programmation pour l'éxécuter.
Vous réitérez très vite ou lentement ? Par exemple, l'équipe décide d'avoir un nouveau élément. Que faites-vous ? Vous commencez en écrivant rapidement le code et testez-le en quelques jours, ou vous planifiez comment écrire le code, puis écrivez le code seulement une fois (et ce-code-ci est la version finale) ?
Nous essayons à réitérer rapidement et avec fureur. Même si la conception est bien écrite, on ne sait jamais si l'élément est amusant sans le tester. Alors, pour la plupart des conceptions, nous essayons d'avoir un prototype prêt à utiliser dès que possible. Les projets plus larges, comme l'expansion de guilde, ont besoin plus de planification avant d'avoir un prototype. Cela ne dit qu'on fait pas des tests- nous faisons encore des changements même avec un grand projet comme l'expansion de guilde. Cela ne passe pas intérieurement aussi- nous essayons d'avoir ces nouveaux éléments disponibles à vous ! Il y a aussi beaucoup des idées, alors en voyant les réactions des joueurs sur les conceptions, ça nous permet de concentrer sur les éléments amusants (ou, essayer de régler des choses qui ne fonctionnent pas comme voulus).
En plus, créez-vous des éléments du jeu cools et ajoutez-les dans le jeu, puis demandez à l'équipe pour ses pensées ? (J'imagine des trucs comme les bécassines)
Tout le monde aime d'ajouter des nouveaux éléments s'ils auraient la chance. Le soir avant l'avril, j'ai écrit le code pour le bavardage de monstres. Le jour de poisson d'avril, ces monstres parlaient à vous !
...Pour modifier/ajouter des choses dans le jeu, comment faites-vous et l'équipe la modification du code ?
Nous utilisons un assortiment d'outils ! Tous le code est mis dans des dépôts de source ( « source repositories »), nous utilisons git et subversion. Personnellement, j'aime modifier les fichiers dans VI, puis le combiner avec des scripts « shell » pour la navigation efficace. En plus, cela me permet d'ordonner les scripts de faire ce que je veux. Pour les outils « build », nous utilisons une combinaison de Maven pour gérer nos bibliothèques, et ANT pour exécuter les scripts de build.
Pendant que le jeu est votre produit principal, comprendre et répondre aux joueurs est aussi important, particulièrement pour des MMOs. Que faites-vous pour analyser les commentaires des joueurs ?
Nous recevons les commentaires de joueurs dans les forums, dans les sondages, et par notre staff de soutien. Il y a quelques commentaires indirects aussi, comme traquer le comportement du joueur. Par exemple: quels items sont fabriqués/achetés/équipés, quels donjons/missions les gens jouent, et encore plus. Nous utilisons le tout pour s'assurer le retour et la création d'une expérience aimable pour nos joueurs.
Vous avez encore des révisions anciennes du software, ou ont-ils péris dans une incendie ou quelque chose comme ça ?
Nous avons encore l'histoire complète sur le codebase Spiral Knights.
Alors je suppose que le jeu n'a pas vraiment besoin beaucoup du département de programmation, car le fardeau est sur la création de contenu. Suis-je correct ? Avez-vous une liste d'éléments pour le jeu en attendant, ou consacrez-vous le temps sur les autres projets ou boulots de OOO ?
Il y a toujours une espace pour du code ! Même si nous essayons de rendre les outils assez robuste et vaste pour les concepteurs, pas souvent il y a un élément de jeu qui a besoin un nouveau code. Depuis quelques années j'ai travaillé souvent sur le code Spiral Knights, et il y a encore une liste de choses à ajouter, alors le travail n'est pas vraiment fini.
Comment travaillez-vous au bureau de Spiral Knights ? Êtes-vous comme des devilites qui travaillent fort, 24/7 ? Ou comme des bécassines qui s'amusent et travaillent aussi ?
Un peu de colonne A, un peu de colonne B. Nous travaillons fort, mais pas au point de la folie (et nous évitons d'être frappé par des meubles de bureau). Travailler fort, ce n'est pas bien pour le moral ni la créativité ni la productivité. Cependant, proche à la date d'une grande MAJ (comme l'expansion de sièges de guilde), vous trouverez que nous dégueulons le feu partout comme les devilite overtimers !
Y-a-t-il des disputes entre vous et vos collègues ?
Bien sûr ! Comme avec des autres équipes créatives, les disputes sont nécessaires afin d'avoir des excellents résultats.
Rencontrez-vous les problèmes avec les variables non-initialisées et les données indésirables ?
Avec Java, il faut qu'il n'y ait pas des problèmes. Tous devraient initialisés au défaut (en général, le valeur de variable est zéro). Cependant, il y a un bug dans la plupart de JVMs (Java Virtual Machine), où les tableaux initialisés peuvent contenir les données inutiles. Par conséquent, nous avions eu un bug qui nous a pris quelques temps à trouver et régler. Cela ne deviendrait un problème.
Qu'est-ce que la cause de lag qu'on auraient dans les Shadow Lairs/Repaires mystérieux pendant la collection de déchets, et comment avez-vous le réglé ?
Ce n'était pas un problème de déchets ; en fait, quelques effets visuelles n'étaient pas bien rendus. Alors, dans les niveaux où il y a beaucoup des effets, comme les Shadow Lairs (particulièrement le Roi des cendres et l'Usine de munitions Ironclaw), beaucoup de temps était perdu en transformant les effets non-nécessaires. Traquer le problème était une grande tâche, mais le fix était simple et les résultats : fantastique !
-Quels sont les outils créés spécialement pour les artistes de sk?
Pour créer le contenu, les artistes utilisent souvent les outils standards comme Photoshop et Maya. Nous avons un outil générique de configuration pour mettre ensemble les ressources crées et de les mettre dans un format que le jeu peut utiliser. Quelques versions spécialisées incluent les fenêtres pour voir le travail.
Alors, il y a l'outil pour modéler, où on peut voir les modèles en 3D et exécuter ses animations. L'éditeur de particule, c'est pour tester les effets de particules. L'outil d'interface d'utilisateur, c'est pour apercevoir comment les UI/IU s'afficheraient dans le jeu et pour tester les interactions. Enfin, l'éditeur de niveau, utilisé pour construire les villes et les donjons qu'on voit dans le jeu.
Y aura il des outils développés pour les joueurs?
Nous avons parlé de ce sujet. Malheureusement, c'est une tâche immense à faire : on doit rendre les outils faciles à utiliser, sans entrainement pour les joueurs, et d'écrire les manuels nécessaires au public généraux. Si on le ferait, ça fonctionnera comme le Siège de guilde, où les outils sont exposés dans le jeu avec l'interface familier et facile à utiliser.
Est-t-il normal que nous devons avoir des redémarrage du serveur ??? Avant c'était 14h mais là pourquoi 13h ???
La joie de l'heure d'été. Dans les États-Unis, les cloches sont revenues à l'arrière à l'automne. Ça cause le redémarrage d'être plus tôt pour ceux qui n'observent pas l'heure d'été.
C'est quoi le problème que Nick a dit sur le buff d'Iron Slug ?
Au fond, il n'y a aucun outil existant que Nick peut utiliser pour donner un buff pour l'Iron Slug. Nous avons utilisé les outils disponible pour l’implémentation original, mais ces outils ne lui donnaient pas les résultats satisfaits. Alors, afin d'avoir l’exécution désirée, on doit avoir le temps d'ajouter les éléments nécessaires dans les outils.
Dans le code de programmation du Spiral Knights, y-a-t-il du code que vous pensez drôle ou bizarre ?
Les mots bizarres et drôles sont grâces à mon collègue, Ray. Pour code, je veux dire « commentaires et messages », et pour « mots », je veux dire que c'est des mots grossiers en réalité !
Sur les lumières dans le guilde, que pensez-vous (personnellement) sur l’implémentation de permettre les joueurs de créer un spectacle de lumières, en utilisant les installations électriques ? Et peut-être des autres trucs cools (évidemment avec un « clock » à 2Hz, peut-être fait sur le client du jeu et non les serveurs car c'est tout simplement une spectacle).
J'aimerais d'ajouter plus des outils d'ingénieurs pour les joueurs pour créer des expériences spéciaux. Cependant, ça peut inviter plus de problèmes parce qu'on doit s'assurer que le jeu ne briserait pas sous le stress de spectacle. Cette idée est quelque chose qu'on ajoute un petit peu à la fois, comme les nouveaux cibles dans la Salle d'entrainement de guilde.
Un jour, il fait beau, sans nuages, et vous décidez à jouer SK. Qu'est-ce que vous feriez le premier, les Rouages ou Lockdown ?
Je préfère jouer dans les Rouages, et ce n'est pas seulement parce que vous m'écraserez au Lockdown.
Pourriez-vous me dire comment devenait-vous un programmateur et si vous avez des trucs de maitriser l'art de programmation ?
Pratiquer, pratiquer, et pratiquer ! Écrire le code toujours. Aller à la recherche pour des nouveaux projets et défis à faire. Trouvez-vous un ami ou trois pour la programmation et travaillez ensemble. Enfin, amusez-vous. Quand on est amusé, c'est plus facile d'écrire des codes et programmes. Tout ça arrivera naturellement.
Sur quoi travaillez-vous ce moment ?
Un projet secret.
Combien de Spiral Knights nécessite-t-il pour fixer une ampoule ?
Seulement un, mais premièrement, on doit le convaincre que l'ampoule vaut le prix d'Énergie.
[FIN DE TRANSMISSION]
Bonjour/Bonsoir/Bon-après-midi ... Ravie de reconnaître Mark . du coup voici mes questions :D :
-En mode mission , Il y'a la catégorie de mission arcade , sache que en n'ont trouve pas des missions dans les rouage , serait t'il une surprise ou des mission caché dans les rouages ?
-Parfois en rencontre des choses bizarre dans les rouages , chaque chose représente des indices sur un but précis , Y'a t'il beaucoup de mystère dans les rouages ou bien pourriez vous définir leur nombre ?
-Y'aura t'il une amélioration sur des nouveaux map (a haven ou une autre ville souterraine) a atteindre ?
Merci