Interview Space Origin

Je vous partage l’interview de Castle Prod sur leur jeu Space Origin. Merci à eux

Technologies

 

  • Parlez nous de l’architecture logicielle ? Les choix ont été douloureux ?

La modélisation de la base de données, et la couche métier, se sont construites petit à petit. La première version prototypique de SpaceOrigin comportait une trentaine de tables. Aujourd’hui, nous avons dépassé les 130 tables, et bien évidement , le nombre de classes a suivi. Il a bien évidement été nécessaire de refactorer plusieurs fois l’architecture, notamment la couche contrôleur, qui a dû être largement hiérarchisée. On compte pas moins de 30 classes de contrôleurs côté serveur, réparties en 5 types bien distincts.
Il est évident que certains compromis ont dû être faits au niveau du développement, tant côté client que côté serveur. Certaines couches ont tellement évolué, ont tellement grossi même, que l’architecture n’est plus du tout adaptée. Cependant, nous réalisons des modifications structurelles lourdes, seulement si elles s’avèrent vraiment critiques Il ne faut pas oublier que notre objectif reste quand même de sortir le jeu le plus rapidement possible !

  • et la partie Hardware ? y a t il ou y aura t il 1 serveur par planète ou ce n’est pas ce qui est prévu ?

Nous pensions, au départ, faire en sorte de n’avoir besoin que d’un serveur physique par Univers. Cependant les tests de charges réalisés sur la Bêta Fermé 0.5 nous ont conduit à envisager plutôt une architecture distribuée. Celle-ci sera initialement composée de 4 serveurs. On les a appelé : Morpheus, Neo, Smith1 et Smith2 :D. Morpheus sera le serveur de base de données, et Neo le répartiteur de charge. Quant aux Smith, ils seront les serveurs de « réponses client ». Oui, il y a du fan de Matrix dans la team !
Grâce à cette architecture, si la charge sur l’Univers augmente et que les deux Smiths ne suffisent pas, il nous sera possible de rapidement ajouter d’autres « Smith » de façon transparente pour les joueurs.

  • Concernant l’équilibrage, vous avez développé votre propre outil de test de combat avec toutes les possibilités, pourriez-vous nous en parler ?

On a développé notre propre simulateur de combat, en effet. Il permet de simuler (oui, oui) tout type d’attaque en paramétrant ces dernières, par le nombre de vaisseaux de chaque camp, leurs niveaux respectifs, et leurs positionnements sur l’aire de combat, qui sont fonction de la formation construite par le joueur. Le simulateur permet de faire varier tous les paramètres des vaisseaux (vitesse, portée, attaque, bouclier, points de structure, capacité de bombardement, pillage). Grâce à lui, on a pu étalonner les statistiques de chaque vaisseau. Il permet également de tester les lasers et missiles, et évidemment, toutes les combinaisons possibles entre ces trois unités : modification des antagonismes, des priorités de ciblage de la fuite etc…

Une autre fonctionnalité clef du simulateur est « la recherche de l’équilibre », il permet de savoir rapidement combien il faut d’unités d’un type donné pour égaler une configuration de formation spécifique. Grâce à cet automate, Mazout, le principal responsable du game-design et le designer du système de combat, a pu équilibrer au mieux les caractéristiques répondant à notre désir d’avoir un système dynamique. Nous ne voulions pas quelque chose de linéaire qui suive simplement l’ordre de déblocage des unités de plus en plus puissantes. Nous voulions que chaque vaisseau garde son utilité pour telle ou telle tactique.
Malgré cet outil, il a fallu réaliser des centaines, voire des milliers de combats tests, y compris des batailles engageant des millions de vaisseaux, pour être sûrs de voir l’équilibre converger.

  • Quels autres outils avez-vous développé pour ce jeu ? Et à quoi vous ont ils servi ?

Nous avons développé divers librairies pour répondre aux forte exigences requises par SpaceOrigin. Citons par exemple la mise au point de notre propre ORM (Couche d’abstraction à la base de données), un client lourd temps réel permettant par exemple l’affichage de la carte dynamique, un générateur de carte planète pseudo aléatoire, ainsi qu’un protocole de dialogue générique entre le client et le serveur, et bien d’autres…
N’oublions pas les outil de supervision et d’administration : simulateur de carte planétaire, analyse des comportement et détection de triches, moteurs statistiques génériques, interface d’administration permettant d’agir sur l’ensemble de l’univers.

 

  • Avez vous quelques anecdotes sur les techno utilisées ?

Le client lourd est basé sur Jquery. Notre but était de fournir une bonne couche d’abstraction avec le navigateur, de s’appuyer sur des bases solides et maintenues, et de profiter des nombreux plugin Jquery disponibles. En réalité, si nous devions choisir un framework JavaScript actuellement, nous ne choisirions pas Jquery, car il n’est pas assez robuste pour une sollicitation aussi intense.
Côté serveur, l’usage d’un framework existant a été rapidement rejeté, vus les besoins très spécifiques de SpaceOrign, notamment en termes de performance.
On citera aussi une anecdote importante concernant les tests de charge de la 0.5. Tous les testeurs doivent encore se souvenir de certains lags particulièrement pénibles, qui sont arrivés sans crier gare (parfois plusieurs secondes pour ouvrir une mine par exemple). Ce problème était dû à des bugs vicieux concernant l’appel de requêtes concurrentes entraînant des verrous sur la base de données. Nous avons dû utiliser certains outils de mysql faisant partie de la suite « entreprise » pour décortiquer plus facilement les flux complexes de requêtes (plusieurs milliers par seconde, en pleine charge !!).

vidéo de lancement de la bêta 0.5 : http://www.youtube.com/watch?v=pAZh4kaHymU

Bêta Phase 1 (0.5)

 

  • Combien de joueurs étaient présents au début et en fin de bêta 0.5 ?

On est parti avec un peu plus de 700 testeurs, puis le restant jusqu’à 1000, se rajoutait de jour en jour, tandis que d’autres abandonnaient. On a fini aux alentours de 550 actifs à peu près ! Ce qui reste très correct pour du jeu web, et une phase de test un peu « brut de pomme ». Les abandons sont ceux des joueurs qui n’ont pas trouvé le type de jeu auquel ils s’attendaient, ou qui ont été saoulé par les bugs et qui reviendront probablement pour la release, ou ceux qui se sont retrouvés bloqués dans le jeu malgré eux, et enfin ceux qui n’ont pas accroché tout court !

  • Revenons sur l’incident de hacking que vous avez subi, si vous voulez bien. Il est important d’en parler car je suis quasi persuadée que les joueurs ayant abandonné le jeu n’ont pas attendu la fin de l’incident et le retour à la normal. Que s’est il passé ?

Il est en effet possible que les fermetures successives du serveur, aient accéléré le nombre d’abandon. Il faut cependant relativiser, dans la mesure où nous nous sommes aperçus sur la Bêta 0.5 comme sur la 0.75 qu’un bon nombre d’abandons était aussi dû à des bugs dans le tuto (blocage d’étape ou de compte).
Pour des raisons de sécurité, et tu l’imagines bien, nous ne détaillerons pas ces attaques. Mais nous avons tiré certaines leçons de cet événement 🙂

  • Racontez-nous vos ressentis sur la bêta avant et après l’incident.

On était déjà bien stressés avant l’incident, car le début de cette Bêta était bien plus lourd au niveau des bugs que l’Alpha. C’est l’impression qu’on avait, en tout cas. Et c’était dur de se dire qu’on avait bossé 6 mois de plus sans pause pour voir un résultat bien pire. Le hack a été la guillotine. Ou le peloton d’exécution. On a eu la sensation qu’on nous mettait à mort, sans prévenir, de manière injuste, et surtout, qu’on ne pouvait rien faire contre cela.
La peur de perdre notre travail, de le voir se faire piétiner, alors qu’on était déjà mort de fatigue et de stress… Ça a été un peu trop. On s’est senti volé, violé, injustement traité, impuissant, et profondément abattu. On était au delà de la tristesse. Plus d’un an et demi de boulot non-stop, de rêves, de force, d’investissement de tous côtés, de sacrifices aussi, côté famille, vies privées, travail, repos, autres passions, social aussi, et se dire que tout est anéanti comme ça, d’un coup, par quelqu’un de malveillant qui n’a sans doute pas conscience du mal qu’il fait…
Au final, grâce aux testeurs qui nous ont envoyé des centaines de mots d’encouragements, in game, par mail, sur le forum, sur twitter, partout, on a repris confiance et on a réussi à reprendre les rênes du jeu. Et on a blindé à mort la sécurité. C’était beau de voir tout le monde nous soutenir et nous porter alors qu’on était abattus. Puis d’après certains, le fait qu’on ait été attaqués est plutôt bon signe, par rapport au succès du jeu, alors au final, on en est sortis grandis et plus forts.

  • Vous parliez d’environ 1000 bugs (1072?), et pourtant j’ai pu jouer sans réels problèmes bloquants (ou bien j’étais en retard par rapport aux autres ?) Vous corrigiez au fur à mesure ?

😀 Tu n’étais pas du tout en retard ! En fait quand on dit qu’il y a eu 1000 bugs, on parle de 1000 signalements. Bien évidemment, certains bugs uniques, sont signalés des dizaines de fois, voire des centaines, car ils peuvent prendre plusieurs formes. Pour cette raison principalement, la dernière phase de test sera probablement en conditions restreintes afin d’avoir un nombre de signalements limité.
On corrigeait tout ce qu’on pouvait au fur et à mesure, mais dans l’ordre des urgences. Les bugs bloquants étaient prioritaires, et tout le staff hors devs aidait à trier ces bugs, en fonction de leurs descriptions et de leurs conséquences.

  • Est ce que les tests de charge ont été concluants ?

Pas tout de suite ! On a eu du mal au début, ça vrillait sévèrement, notamment à cause du problème sur les verrous que j’ai détaillé plus haut, mais nous avons amélioré l’architecture en 0.75, et en 1.0 nous avons encore amélioré le système, nous serons prêts donc pour l’assaut final de la sortie publique.

  • Que nous réservez-vous pour les phases 2 et 3 de la Bêta ?

Des pandas de l’espace, des champignons de la planète Vega, et un Centre de Désintoxication pour les testeurs dont l’addiction à l’exploration dépasse le raisonnable 😀

  • Combien d’heure de sommeil avez vous pu obtenir lors de la bêta ? 🙂

Aouch… On a compté nos heures de travail, mais pas de sommeil ! La moyenne de temps de travail sur les semaines de bêta est de 75h. Avec des 92h pour certains !

Jeu en version 1

 

  • Quel sera le niveau maximum de level ?

42 ?

  • J’ai vu un bouton « premium » dans l’onglet Routes sur mon dock (beta 0.5), est il prévu un abonnement payant ? Parlez nous de votre plan économique.

Notre modèle économique est lui aussi en version test. On se servira justement de la Bêta 1.0 pour équilibrer cet aspect premium. On ne veut pas d’inégalités, mais on veut quand même que le premium apporte quelque chose à ceux qui se seront abonnés.

  • Quelle serait la date réaliste de sortie définitive du jeu ?

Bêta 1.0 en Mai, donc logiquement, la sortie définitive serait en Aout 2014.
Ah mince, tu nous as demandé d’être réalistes…
Allez, disons Septembre 2014 ! Mais on a un gros débat, en ce moment, à ce sujet.

  • Une fois les bâtiments, améliorations, vaisseaux développés à leur maximum, qu’est il prévu pour les joueurs HL ?

Une surprise ! Mais on peut spoiler un peu, parce que c’est vous, chère GeekLette !
Le grand portail d’une planète très spéciale s’ouvrira pour les joueurs High Level, à partir d’un certain stade d’évolution 😉 et cela pourrait bien permettre de franchir un autre niveau de jeu…

  • Est-ce que des événements seront prévus à intervalle régulier ou souhaitez vous plutôt que les joueurs aient leurs propres idées d’interaction/événements ?

Il y aura des événements réguliers, ceux que la team aura prévus, mais aussi des événements gérés par les Empereurs et leurs Gouvernements. Et ceux-là, ne seront pas forcément réguliers. Il y aura bien de la place pour l’imagination des joueurs !

SO News

 

  • Votre web TV nous manque terriblement, qu’avez vous prévu comme autres épisodes ?

On pense continuer les soirées d’ouverture et de fermeture des Bêta 0.75 et 1.0, parce que c’est vraiment bien sympa de se sentir nombreux pour ce genre d’événements. Puis évidemment, dès qu’un gros événement sera en approche, on prendra plaisir à en faire, parce qu’il faut dire que c’est souvent utile aux joueurs, parce qu’on y prend plaisir aussi, et qu’on est de plus en plus expérimentés !
Votre capital sympathie est comme un aimant à joueurs (vous le savez, je sais 🙂 ). Je ne suis pas la première à le dire. Mais sachez aussi que ce capital sympathie bien que très élevé n’a pas été la seule raison du succès de Space Origin. Le jeu, magnifiquement illustré, force le respect. Lors de votre campagne Ulule (et je ne le répéterai jamais assez), nous ne pensions pas à un jeu si abouti.
La surprise a été de taille.

Ulule / Coûts et Équipes

 

  • Comptez vous renouveler l’expérience Ulule ?

Oui, pourquoi pas, pour les versions mobile et tablette. Vous avez été très nombreux à nous les réclamer, et on en sent le besoin. Il faudra qu’on le fasse ! On n’est pas des spécialistes du mobile, alors il nous faudra sans doute de l’aide ou carrément embaucher un ou des devs !

  • Avez-vous estimé le coût total de la création de Space Origin ? Quel est-il ?

Le temps de travail sur les différents postes ont été soigneusement suivi. Si on traduit ces temps en argent, et se basant sur un coup salarial moyen, nous arrivons pour le moment à environ 300 000€ concernant seulement le temps passé sur le projet, auxquels il faut ajouter nos économies, et tous les frais engagés depuis le début, et nous arrivons à plus de 400 000€ en phase finale, ce qui commence à représenter un budget conséquent.

  • Pour remercier votre belle équipe, pourriez-vous nous présenter les membres officiels et chacun de leur rôle ?

Le noyau dur de l’équipe est vraiment présent quasiment partout, quand il s’agit de la création du jeu, mais puisqu’il faut définir plus clairement les rôles, en voilà quelques uns :
Alexis et Anne-Marie, pour tout ce qui est graphismes, animations, interfaces, décisions esthétiques et ergonomiques, et idées créatives de toute sorte, Aurore pour tout ce qui est scénars, rédac, intégration, vidéos, et vision globale du jeu pour prises de décision, Benjamin, développeur mais aussi répartiteur de tâches et empêcheur de tourner en rond, Christian développeur et intégrateur maniaque multitâches, Pierre développeur et consultant en jeux, Stan machine de guerre du développement à l’état de l’art, Vincent, au développement également, Jean-Baptiste à l’équilibrage, William sur toutes les modélisations 3D, ainsi que les aides extérieures que sont Bryan et Mathieu, puis au niveau stagiaires, nous avons et avons eu Vincent, Paul, Tristan, Félix et Thimothée !

Team de SpaceOrigin

Dans l’ordre sur la photo, on a Anne-Marie, Alex, Aurore, Willi, Mathieu, Benjy, Christian, Pierre, Stan, Vincent, Vincent, Paul, Bryan, et Jean Baptiste.

 

A propos de GeekLette 562 Articles
Pipelette & Geek à temps plein

2 Comments

  1. Hello,
    N’étant pas vraiment développeur de programmes mais initié au langage C, je me rends compte maintenant un peu plus, le travail technique effectué rien que pour tester et corriger les bugs de ce jeu indépendant. J’y joue tous les jours (presque) depuis sa sortie fin avril 2015. J’avoue que je suis bluffé par la complexité du jeu aux multiples facettes. On n’est loin du simple MMO stratégique de base. Et s’il faut donner un autre coup de pouce pour sur Ulule pour que le jeu devienne « cross-plateform », je pense attribuer ma contribution.

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*