Faire un jeu à partir du web

Aujourd’hui je voudrais vous parler de ce que nous planifions pour l’IU, mais c’est une chose bien plus complexe que de simples fenêtres et boutons. C’est reconnaître qu’une fois un MMORPG est lancé, le monde appartient autant aux joueurs qui le forment qu’aux développeurs qui l’ont construit. C’est admettre que, en tant que petit studio, nous ne serons pas en mesure d’offrir une expérience pour le type de jeu de chacun, mais qu’il y a autant de talent et de créativité dans une grande communauté que dans notre studio. Et c’est assumer le fait qu’en 2013, la possibilité de se connecter n’est pas une chose qui devrait s’arrêter parce que vous vous éloignez de votre ordinateur.

Il y a quelques années, je suis me suis fait une idée: tout ce “web” sera sûrement présent pendant un moment. Ca a l’air un peu stupide. Ca devrait paraitre stupide,car c’est une évidence. Mais pour une quelconque raison, beaucoup de développeur de MMO n’ont pas encore franchi le pas complètement. Il y a des MMO basés sur navigateurs, mais la plupart prennent juste un MMO pour l’adapter à un navigateur, sans faire la majorité des choses que cela permettrait. Il y a des MMOs qui font un travail de plus en plus intéressant et bon, en exposant leurs données via des API web (EVE et WoW sont des références en la matière), mais même ainsi, il s’agit plus d’une vue sur le fond du jeu que du jeu e lui-même.

Et si, au lieu de mettre des parties du jeu sur le web, nous faisions un jeu à partir du web?

C’est ce qui nous ramène à l’IU de Camelot Unchained. J’ai travaillé et/ou construit de nombreux toolkit d’IU au cours des années. Scaleform (ndlr: solution d’IU pour les jeux d’Autodesk) profite bien de tous les outils d’authoring de Flash, et est vraiment important dans tous les jeux AAA – nous l’avons utilisé sur Skyrim. Pour Warhammer Online, nous avons utilisé une solution personnalisée avec de LUA et XML (ndlr: languages IT) – qui était vraiment familière pour les joueurs qui construisaient déjà des IU et des modsen LUA/XML  pour d’autres MMO. Mais il y a une autre option qui existe, et qui n’est pas autant utilisée qu’elle devrait l’être.Un outil encore plus utilisé par nos joueurs mais pour tout autre chose. Un moteur de scripting qui a été optimisé pendant des années par un équipe composée des esprits les plus brillants de cette industrie. Un runtime (ndlr: processus d’execution) qui a été testé intensivement chaque jour sur des centaines de millions de PC, et rendus directement en textures DirectX, prêtent à l’emploi pour les jeux.

Je parle, bien entendu, des inénarrables HTML et JavaScript. Chaque partie de notre IU peut se comporter comme une fragment de page web, avec les mêmes CSS et PNGs que nous aimons et connaissons tous. Que nous utilisions Chromium ou Mozilla ou Awesomium ou n’importe quelle autre implémentation n’est pas la chose la plus importante ici; ce sont toutes les autres portes qui nous sont ouvertes pour avoir une IU simple, rapide, flexible, très facilement modifiable.

Ni’mporte quand, n’importe où, sur n’importe quoi

En premier et principal lieu, parce que toutes choses de notre IU sera implémentée comme des pages webs par dessus le jeu, notre IU peut aussi être directement mise dans une page web. Avez-vous déjà voulu accéder au t’chat de votre guilde d’un autre endroit que le client du jeu? Et bien vous l’autre directement à cette adresse : www.camelot-unchained.com/guildchat (le lien ne marche pas…. encore). Cela ne sera pas une version limitée, légère de ce que vous aurez en jeu; non, cela sera exactement la même chose. Un accès aux personnages? Statistiques pour votre royaume? L’état des frontières et des combats? Tout sera là.

Bien entendu, tout ce qui requiert que votre personnage soit physiquement présent dans le jeu ne sera pas disponible si vous n’êtes pas connecté via le client, et il y aura des choses que nous limiterons pour des questions de sécurité et de combat contre le spam. Mais plus généralement, toute votre vie sociale et une bonne partie de votre vie économique sera disponible de n’importe où, dans n’importe quel navigateur moderne, sans plugins, de la même manière que si vous utilisiez notre superbe client de jeu.

Accessibilité = Personnalisation

Comme mentionné, HTML et JavaScript sont connus par a peu prêt n’importe qui ayant déjà programmé. Il y a des très bons outils dans d’autres langages, mais le nombre de personnes ayant un peu d’expérience dessus est bien loin de celui des personnes qui connaissent et comprennent comment faire une page web. Nous souhaitons que la seule barrière pour les modifications soit votre propre créativité, et cela signifie que nous ne voulons pas que le premier obstacle soit d’apprendre un nouveau langage ou l’utilisation d’un toolkit.

Il y a aussi de jolies choses qui viennent avec le HTML. Vous voulez que votre plugin ressemble à tout le reste du jeu, sans avoir à être graphiste vous même? “Inheritez” juste notre CSS*. Vous voulez changer le look de tout le jeu, y compris les plugins des autres, car vous êtes graphiste? “Overridez” notre CSS** . C’est le C de CSS qui le rend magique***. C’est là où le côté sandbox de l’implémentation des navigateur modernes est important – car comme leur sécurité a déjà été éprouvée “dans la nature”, nous pouvons être un peu plus libéraux sur la part de scripting que nous laissons.

* (ndlr: action de dev. qui permet “d’hériter” des propriétés d’un fichier/classe)
**(ndlr: autre action qui vise à se baser sur un fichier en écrasant certaines de ses propriétés pour les personnaliser)
*** (ndlr: “Cascading” en anglais).

Un des mes buts personnel, même si cela ne sera pas forcément disponible au lancement, est de pouvoir rendre l’installation d’une IU, d’un mod ou d’un plugin aussi simple que de copier/coller une URL directement dans le jeu. Nous savons que nous ne pouvons pas faire de tout pour tout le monde, mais nous voulons être sûrs que tout le monde peut faire quelque chose pour les autres.

Messieurs, lancez vos “Mashups” *

Finalement, pour pouvoir baser notre IU entièrement sur des pages web, nous devons exposer notre jeu d’une manière que peut de MMOs ont utilisé. Il n’y a pas d’autre choix. Chaque jeu doit exposer ses composants internes à sa couche d’IU. Les studios ayant beaucoup de ressources externes devront aussi exposer une API web incomplète pour le jeu, mais ce n’est pas vraiment le cas ici. Notre API web sera notre première et principale API. Cela signifie que toutes les choses auxquelles vous pourrez accéder en jeu seront disponibles et affichables sur votre site web, utilisant votre propre code.

Vous souhaitez un affichage personnalisé de qui a vaincu untel dans le dernier combat, croisé avec le type d’arme qu’ils utilisaient? Construisez-le. Que dites-vous d’une carte répertoriant les meilleurs endroits pour mettre en place un engin de siège? Nous avons hâte de la voir. Nous avons vraiment des gens talentueux et créatifs ici, chez CSE, mais nous savons aussi qu’il y a encore plus de créativité et de talent dans notre communauté, attendant d’être “lachés” si nous vous donnons les clés.

Et, le mieux, parce que nous avons un navigateur web construit dans le jeu, vous pourrez alors tout re-injecter directement dans le jeu comme un mod d’IU à partager. Il n’y aura pas de distinction. Il ne devrait pas y avoir de distinction. Nous sommes en 2013, toute la programmation est de la programmation web, et il est temps pour les MMOs de prendre le pas sur le reste d’internet.

* Mashups signifie, en IT, le développement d’une app/programme basé sur la combinaison d’éléments externes

Andrew