Jump to content

  • Log In with Google      Sign In   
  • Create Account

Le Journal de Yahiko



Développer son premier jeu Web (partie 2)

Posted by , in Développement 17 September 2013 - - - - - - · 709 views

Introduction au langage TypeScript

Prérequis :
  • Connaissance des principes de bases de la programmation orientée objet
  • Connaissance des principes de bases de Javascript
  • Compilateur TypeScript installé

(0.1)

Sommaire :
  • Introduction
  • Typage
  • Classe
  • Fonction anonyme fléchée
  • Modularité
  • Conclusion

(0.2)

1. Introduction
Cet article est une présentation succincte des principaux apports de TypeScript que sont le typage, les classes, les fonctions anonymes "fléchées" et la modularité. L'installation proprement dite du compilateur TypeScript est décrite dans l'article suivant : Développer son premier jeu Web (partie 1).

Il convient également de rappeler que le langage TypeScript est avant tout du Javascript amélioré ce qui permet la réutilisation de ses connaissances en Javascript. Il faut en effet avoir conscience que les limitations intrinsèques de Javascript se reflètent également dans TypeScript. Par exemple, la notion d'attributs privés d'une classe qui existe dans la plupart des langages orientés objets, bien que syntaxiquement présente dans TypeScript, n'est pas restrictive mais uniquement indicative dans la mesure où un attribut privé pourra malgré tout être utilisé en dehors de sa classe.

La spécification complète du langage TypeScript est disponible sur le site officiel.


2. Typage

Le principal apport du langage TypeScript, celui qui justifie le nom même du langage, est la possibilité d'associer, facultativement, un type à une donnée.






var pi: number;
var message: string;
var flag: boolean;
var joker: any;

(2.1)

Dans l'exemple ci-dessus, quatre variables sont déclarées sans être initialisées à l'aide d'un type dont la signification est explicite.
  • La variable pi a pour type number, un nombre entier ou flottant.
  • La variable message a pour type string, une chaine de caractères.
  • La variable flag a pour type boolean, un booléen qui peut prendre la valeur true ou false.
  • La variable joker a pour type any, qui est le type par défaut qu'attribut TypeScript à une variable s'il ne parvient pas à déterminer son type lors de sa déclaration.

(2.2)

Bien entendu, il est possible d'initialiser une variable au moment de sa déclaration comme on peut le voir ci-dessous.

var pi: number = 3.14;
var message: string = "Bonjour !";
var flag: boolean = true;
var joker: any = null;

(2.3)

Bien que la mention explicite du type soit recommandée, en l'absence de celui-ci lors de la première initialisation d'une variable, TypeScript en infère automatiquement le type.

A noter que TypeScript, contrairement à Javascript, peut ainsi être considéré comme un langage à typage statique.


3. Classe

La notion de classe introduite dans TypeScript anticipe la prochaine évolution de Javascript (ECMAScript 6).
class Greeter {
    element: HTMLElement;
    span: HTMLElement;
    timerToken: number;

    constructor(element: HTMLElement) {
        this.element = element;
        this.element.innerHTML += "The time is: ";
        this.span = document.createElement('span');
        this.element.appendChild(this.span);
        this.span.innerText = new Date().toUTCString();
    }

    start() {
        this.timerToken = setInterval(() => this.span.innerHTML = new Date().toUTCString(), 500);
    }

    stop() {
        clearTimeout(this.timerToken);
    }

}

window.onload = () => {
    var el = document.getElementById('content');
    var greeter = new Greeter(el);
    greeter.start();
};

(3.1)

Comme on peut le voir dans l'exemple ci-dessus, une classe Greeter y est définie d'une façon proche de la plupart des langages orientés objet.

La classe Greeter possède ici trois attributs (element, span et timerToken), défini un constructeur (constructor) et deux méthodes (start et stop). Son instanciation se fait à l'aide de l'opérateur new comme on peut le voir à la fin de l'exemple précédent.
var greeter = new Greeter(el);

(3.2)

De pair avec la notion de classe, TypeScript implémente la notion d'héritage simple par l'utilisation du mot-clé extends.
L'extension de la classe Greeter de l'exemple précédent pourrait se faire ainsi :
class GreeterId extends Greeter {
  id: string;
  constructor(element: HTMLElement, id: string) {
    super(element);
    
    this.id = id;
  }
}

(3.3)

Cette nouvelle classe GreeterId se contente d'ajouter un nouvel attribut id à la classe Greeter.

Toutes les classes définies dans TypeScript peuvent ensuite être considérées comme des nouveaux types.


4. Fonction anonyme fléchée

Un autre apport notable de TypeScript à Javascript est sa nouvelle manière de définir une fonction anonyme. Comme celle présente à l'intérieur de la méthode start en paramètre à l'appel de setInterval et qui peut être dénommée ici notation "fléchée" (arrow function).
this.timerToken = setInterval(() => this.span.innerHTML = new Date().toUTCString(), 500);

(4.1)

L'avantage par rapport à l'actuelle norme de Javascript (ECMAScript 5), est que la notation fléchée ne change pas la valeur de contexte du mot-clé this à l'intérieur de la fonction anonyme. Cela évite donc l'utilisation d'une variable intermédiaire servant à propager la valeur de this à l'intérieur de la fonction anonyme. Par exemple, la ligne de code précédente aurait pu être transcrite ainsi en Javascript actuel :
var _this = this;
this.timerToken = setInterval(function () {
    return _this.span.innerHTML = new Date().toUTCString();
}, 500);

(4.2)

Cette la nouvelle notation plus concise sera utile en particulier pour les fonctions callback.


5. Modularité

TypeScript introduit de nouvelles techniques de modularisation devenues nécessaires par le typage statique et par l'héritage de classes.
Parmi ces techniques de modularisation, le référencement d'un fichier TypeScript externe est peut-être la plus simple.
Elle consiste à ajouter en tout début de fichier, le source TypeScript externe contenant des déclarations nécessaire au compilateur afin qu'il en déduise entre autre les types et les héritages.
/// <reference path="Externe.ts"/>

(5.1)

A noter que cela ressemble un peu aux #include des langages C/C++.


6. Conclusion

Cette présentation est évidemment loin d'être complète. Pour se familiariser avec TypeScript, il peut être utile d'utiliser la page de test afin de voir instantanément la conversion d'un code TypeScript en un code Javascript. Sinon, la spécification, malheureusement non traduite en français, reste indispensable pour approfondir le sujet.

En espérant que cet article vous aura été utile.


Formalistes et Zinesters : Pourquoi le formalisme n'est pas l'ennemi (3/3)

Posted by , in Game Design 11 September 2013 - - - - - - · 465 views

Cet article est une traduction autorisée de la troisième partie de celui-ci : Formalists and Zinesters: Why Formalism Is Not The Enemy (Tadhg Kelly)

Zines

Je pense qu'il y a une solution à cette problématique, une solution formaliste rien de moins. Je pense aussi que beaucoup de Zinesters ne vont pas aimer cela. Peut-être avec le temps.

Dans son livre, Anna décrit une catégorie de créateurs analogues aux créateurs de fanzines de ces dernières années. Ces personnes sont généralement considérées comme étant en dehors du courant dominant, travaillant à l'écart sur des projets personnels et cherchant leur public sans être aidés. Les Zinesters ne sont généralement pas des programmeurs (catégorisés par les premiers comme des mecs blancs de la classe moyenne, etc.) et ils utilisent des outils comme GameMaker ou Twine pour créer leur art.

Plutôt que d'appeler ceci un "jeu" artistique, une "expérience ludique", un "non-jeu" ou d'entrer dans des débats quant à savoir dans quelle proportion c'est ou non un jeu, ou s'enliser dans le concept flou qu'est le "divertissement interactif", Anna (peut-être par inadvertance) nous fournit un terme excellent. "Zine" me semble un terme tout à fait approprié pour décrire une intention politique et critique, une description de la manière dont une chose doit être abordée plutôt qu'une classification de ce qu'il est.

Certains zines peuvent être des jeux, par exemple. Certains zines peuvent être des expériences ludiques, mais pas des jeux. Certains zines peuvent être des jouets. Certains zines peuvent être des mondes à explorer sans but précis. Certains peuvent être des promenades numériques. Certains peuvent raconter des histoires. Certains peuvent délibérément ne pas le faire. Certains zines peuvent être rien de ce qui précède, ou intégrer tous ces aspects. Certains zines peuvent être numériques. Certains zines peuvent être analogiques.

Le "zine" est une appellation qui amène à considérer une œuvre selon ses propres règles, un peu comme c'est le cas pour "l'art moderne", au lieu de le décrire en tant que format, comme pour une "statue". Le terme zine permet au débat de dépasser les questions sur l'appartenance à telle ou telle catégorie. Dys4ia et WarioWare, par exemple, pourraient être considérés comme une opposition contrastée en un zine et un non-zine, indépendamment du problème si ce sont des jeux. Les principales différences entre eux sont les suivantes :
  • La façon dont ils traitent la notion de défi
  • S'ils sont destinés à être rejoués
  • La façon dont ils traitent la question de l'apprentissage
  • Si l'échec est possible
  • Si l'émergence est souhaitée
WarioWare teste les compétences du joueur en augmentant progressivement la difficulté. Il est destiné à être rejoué, souvent sur des durées longues. Il est destiné à être maîtrisé. L'échec est possible, tout comme peuvent l'être les effets émergents. A chaque partie multi-joueurs sur une Wii, des choses drôles et inattendues se produisent. Tout cela fait de WarioWare un jeu, et non un zine. WarioWare est finalement un produit commercial destiné à faire plaisir ou à divertir, et on ne trouve que peu de traces des intentions personnelles de l'auteur dans ce jeu, voire pas du tout.

Dys4ia met à l'épreuve des idées préconçues des joueurs. Ses épreuves ne deviennent pas plus difficiles (en termes de compétences), mais elles deviennent davantage explicites émotionnellement. Dys4ia est destiné à être rejoué un certain nombre de fois, mais pas beaucoup. Il n'est pas destiné à être maîtrisé, mais à s'en imprégner, de sorte que le joueur parvienne à comprendre la profondeur de l'univers de son auteur. L'échec n'est pas vraiment possible, seuls des retards dans les succès le sont. Tout comme les effets émergents - dys4ia est délibérément une expérience. C'est personnel, d'auteur, et vise à brosser un tableau dans le but d'évoquer un sentiment que son créateur expérimente (ce qui est la définition de l'art selon Tolstoï) chaque jour.

Vu dans le contexte du "jeu", compte-tenu des principes des jeux, dys4ia n'a pas beaucoup en commun avec WarioWare, les échecs, le 100 mètres haies, les fléchettes, Tetris, le backgammon, Halo, le poker, Ridiculous Fishing, Snake, le jeu de Go, Horreur à Arkham, chat perché, Diablo ou les machines à sous. Ce n'est pas très amusant, ni mécaniquement fascinant. Vous ne finissez pas vraiment victorieux ni ne devenez meilleur. Ceci sont pourtant des qualités qui décrivent généralement des jeux.

Vu dans le contexte de "zine", cependant, la question de savoir si dys4ia est un jeu, ou à quel point, ou quelles parties pourraient en être, n'est pas pertinent. Alors se pose la question de savoir si c'est amusant. En tant que zine, en tant que performance artistique qui éclaire le joueur sur ce que c'est d'être transgenre, dys4ia est incroyable. En le pensant en tant que zine, je me dis que je peux faire abstraction de son caractère ludique ou plutôt de son absence de celui-ci.


Vers la Détente

Tout cela fait sens selon moi, mais mon instinct me dit que ma définition de "zine" ne conviendra pas. Nous en arriverons peut-être, tout comme le débat entre l'histoire et le gameplay, à la conclusion que tout cela repose sur des arguments sans fondement. Nous allons peut-être nous retrouver à faire la distinction entre un "Jeu" et un "jeu" (comme "Art" et "art") ou aboutir à une convention réunissant le "jeu pour la performance" et un "gamezine" déformant ainsi les définitions du jeu pour englober les zinesters.

Cependant, à ce stade, j'aurais plutôt tendance à dire que c'est aux zinesters de décider qui ils veulent être. En tant que formaliste je suis personnellement de plus en plus ennuyé d'entendre l'argument facile qui amalgame tous les mecs blancs et proclame que toute opinion d'un mec blanc est suspecte et équivaut à une oppression sans discernement, complice et poussive. C'est en partie ce qui m'a motivé à écrire cet article pour expliquer d'une part pourquoi, malgré toutes ses vertus, je me lasse d'écouter certains énergumènes qui déclament la même diatribe encore et encore, et d'autre part la façon dont la nouvelle mode autour de cette diatribe va disparaître, et la façon dont il me semble que les zines sont actuellement un bégaiement de l'histoire.

À l'heure actuelle les zinesters ne donnent pas beaucoup de crédits aux gens qui ne sont pas déjà d'accord avec eux. Ils semblent plus se satisfaire à crier et à obtenir la reconnaissance de leur propre tribu, mais cette énergie finira par s'essouffler si elle ne se mélange pas avec les autres. Les passions sur le zinestérisme ne sont pas à prendre à la légère ou ignorées, mais le risque que ce mouvement se marginalise de lui-même est fort. Les diatribes sont violentes, mais après un certain temps elles devraient s'estomper.

Je ne peux pas m'empêcher de penser que la lutte du mouvement zine à l'aide d'arguments spécieux finira par le reléguer à une sorte d'impasse pour aigris. Je ne peux pas m'empêcher de penser que le mouvement finira par éclater, comme le mouvement sur les jeux narratifs l'a fait auparavant. Dans la chasse aux ennemis, je ne peux pas m'empêcher de penser que le zinestérisme commencera par trouver des ennemis dans ses propres rangs et à se cannibaliser. Tout ce qu'il faut pour que le zinestérisme échoue, c'est que les gens l'ignorent, pour en arriver à la conclusion que tout cela ne concerne que des gens extrémistes devenant toujours plus extrémistes. Personnellement, je pense que si les zines se retrouvent dans cette situation, ce sera tragique.


Formalistes et Zinesters : Pourquoi le formalisme n'est pas l'ennemi (2/3)

Posted by , in Game Design 20 August 2013 - - - - - - · 477 views

Cet article est une traduction autorisée de la deuxième partie de celui-ci : Formalists and Zinesters: Why Formalism Is Not The Enemy (Tadhg Kelly)

Dans quel domaine

Concernant les jeux de rôles autour d'une table, l'idée de changer le sens du mot "jeu" en pensant que le reste du monde suivra et validera cette révolution, n'était que de l'aveuglement. Le concept de "jeu" n'a pas changé pour les non-initiés, et au lieu de cela il a été rattrapé par son prédécesseur, plus important et plus ancien. Sous une forme numérique, je crains que les Zinesters fassent exactement la même erreur.

En tant que mec blanc souvent indécis à qui il arrive d'écrire quelque peu sur les jeux, j'ai récemment rencontré beaucoup de résistances autour de l'idée de ce que sont les jeux. Ces arguments ont tendance à se résumer à "vous n'aimez pas ce jeu", "il n'est pas fait pour vous", "il s'est vendu à X exemplaires" ou encore "vous détestez secrètement les jeux en général". Je suppose que je dois m'attendre à ce genre de réaction, étant donné que je suis assez franc. Je dis souvent que les manières les plus efficaces pour mettre en valeur l'art des jeux (thauma) doivent provenir du langage même des jeux, ce qui permet des choses au concepteur et en empêche d'autres d'une certaine façon. J'ai tendance à prendre le parti du joueur, concernant la nécessité pour les jeux d'être dynamiques afin de construire un univers crédible.

Je suis aussi connu pour avoir dit que certaines œuvres interactives ne sont pas des jeux. Je ne considère pas, par exemple, que Dear Esther soit un jeu, ni Proteus. Je ne pense pas que The Passage soit un jeu, ni The Stanley Parable et encore moins les réalisations de Tale of Tales. Je les considère essentiellement des performances artistiques ludifiées.

Dans son propre domaine, l'art peut être très puissant. Cependant, vue à partir d'un autre domaine, l'art peut amener à des comparaisons malheureuses. Selon la façon dont vous la considérez, la Fontaine de Marcel Duchamp est soit une œuvre incontournable de l'art moderne ou un exemple d'arnaque. De même, en considérant l'art interactif sur la base d'un jeu, cela dévalorise grandement ce dernier. "Proteus" est peut-être intéressant, pourrait-on dire, mais ce n'est pas très amusant. L'art interactif comme "Proteus" tente par tous les moyens d'attirer l'attention (traction) au-delà du monde académique, de certaines sections de Steam, des publications pour intellos ou de conférences comme la GDC, parce que l'étiqueter en tant que "jeu" invite à la comparaison avec notre compréhension habituelle de jeu qui se base sur la pratique pour progresser.

Les Zinesters demandent à ce que leur travail soit considéré sans distinction avec les jeux vidéo occasionnels ou pour les passionnés hardcore, les puzzles, les mots croisés, les sports, les Jeux Olympiques, la Coupe du Monde, les casinos de Las Vegas et ainsi de suite. En outre, le manque d'amusement issus de leur œuvre conduit à des réactions négatives (comme cette revue satirique de Super PSTW), qui à son tour conduit leurs créateurs à l'incompréhension ou à la défiance envers les "mecs d'un certain genre" qui les réduiraient au silence délibérément. Selon ces créateurs, le "jeu" ne se transformera pas pour les accepter à cause d'un patriarcat effrayé / incertain / résistant.

Et cela est vrai pour de nombreuses réalisations artistiques ludifiées. Beaucoup d'entre elles sont difficiles, pertinentes ou intéressantes, mais elles ne font au final que se mettre elles-mêmes à l'écart en voulant être considérées comme des jeux. Leur gameplay a tendance à être limité. Elles ont tendance à être soit unidirectionnel ("Ceci est mon message") ou sans direction ("juste se promener"). Elles ont tendance à avoir l'air intéressantes en tant que concepts de hauts niveaux pour les discours de la GDC. Pourtant, ce ne sont pas des jeux.


Les formes et les appellations de l'interaction

Le fait que le livre La Couleur Pourpre d'Alice Walker existe signifie autant en tant que roman que ce qu'il raconte. Pour certains concepteurs c'est essentiellement la même chose avec les jeux. "Rise of the Videogame Zinesters" avance l'argument que parce que les jeux sont faits pour la plupart par des geeks mâles et blancs pour des geeks mâles et blancs, ils ont tendance à être mono-culturels. Des hommes musclés tirant sur d'autres hommes musclés est le plat de résistance, et les femmes ont tendance à être soit des remplaçantes d'hommes dans ce scénario, ou reléguées. Il y a très peu d'avatars de femmes homosexuels dans les jeux.

Je suis plutôt d'accord. Les blockbusters ont tendance à être mono-culturels et mettent en scène beaucoup de personnages masculins. Pourtant, dans le même temps, répondre à ces questions sur "ce qu'est un jeu" - tout en exigeant que la moindre œuvre interactive et artistiquement expressive soit considérée comme un jeu - n'est pas fondée.

Le roman est un format de récit, pas un sceau de légitimité. Le roman d'Alice Walker est autant un roman qu'un d'Honoré de Balzac, car ils sont deux exemples du même format général (une forme longue d'histoires en arcs narratifs avec différents niveaux de lecture, etc.). Le débat sur la reconnaissance d'un type de roman sur un autre est généralement séparée du débat de si oui ou non il s'agit d'un roman (même si, certes, quelques œuvres modernistes et postmodernistes ont délibérément essayé de jouer avec le format) .

Le bateau ivre est un poème. Un poème a un format, un type de structure et une expression différents d'un roman. Nous pouvons facilement comprendre et accepter que la poésie et les romans soient deux types d'écriture distincts, et afin de maintenir l'attention et l'intérêt du lecteur, chacune d'elles fonctionne selon ses propres règles. De même, nous pouvons voir que la nouvelle, le scénario, la bande dessinée, la pièce de théâtre ou la chanson ont également leurs propres exigences. Aucun de ces formats n'est plus ou moins valable qu'un autre. Les romanciers ne passent pas tout leur temps à souhaiter que les poètes les acceptent parmi eux.

Ce que les Zinesters les plus revendicatifs semblent vouloir c'est comme si Rimbaud exigeait que Le "bateau ivre" soit reconnu comme un roman. Pour quelques raisons, ils estiment que "jeu" signifie "valide, légitime, être accepté", comme quelque chose à reprendre de hautes luttes des mains des mecs blancs.

Ce qui me fascine, c'est combien cela est en soi une reconnaissance tacite que (malgré tous les arguments contraires) apparemment les étiquettes importent aux Zinesters. Si le Zinestérisme était vraiment uniquement une expression de soi, ce que pensent les formalistes n'aurait pas d'importance. Bien que ce puisse être un idéal d'exister dans un monde fédéré, libre à la publication où l'on puisse faire ce que l'on veut, un monde au-delà des étiquettes et des catégories, le Zinestérisme est obsédé par l'obtention d'une appellation particulière. Il semble tourner autour de la volonté d'avoir une légitimité accordée de gré ou de force, ce que je trouve contre-productif.

La question de la dénomination est également celle qui existe uniquement dans le monde des Zinesters. En dehors de celui-là, tout le monde s'en contrefiche. Dans le monde de tous les jours, un "jeu" est un nom qui décrit une façon de jouer. Le "jeu" signifie sport, puzzle, tâche, problème et test. Les jeux peuvent être gagnés ou perdus. Les jeux peuvent être pratiqués. Les jeux peuvent aider à la compréhension et à l'éveil émotionnel, peuvent engendrer des héros et des engouements culturels, mais ils le font à travers des constantes créatives. Ils doivent opérer sous la satisfaction de gagner tout en maîtrisant la dynamique du jeu équitable.

Sinon, en tant que jeux, ils ne fonctionnent pas vraiment. Et les critères de jugement pour expliquer pourquoi il en est ainsi ne viennent pas du patriarcat ou de groupuscules obscurs, mais des joueurs. Si un jeu n'est pas amusant, il n'est tout simplement pas joué longuement, quel que soit son intention. Les jeux sont faits pour être joué. Mais rien de tout cela n'est vrai concernant l'art de la performance interactive si le joueur sait que ce n'est pas destiné à être un jeu.

Mais alors comment transmettre cette intention ?

La troisième partie en français est disponible ici : Formalistes et Zinesters : Pourquoi le formalisme n'est pas l'ennemi (3/3)


Développer son premier jeu Web (partie 1)

Posted by , in Développement 18 August 2013 - - - - - - · 755 views
développement, jeux, typescript and 5 more...
Mise en place de l'environnement de travail

Prérequis :
  • Windows XP ou supérieur
  • 2,5 Go d'espace disque dur

(0.1)

Sommaire :
  • Introduction
  • Choix du langage et de la plateforme
  • Visual Studio Express 2012 for Web
  • TypeScript
  • Création du premier projet
  • jQuery
  • Git for Windows
  • Personnalisation de Visual Studio
  • L'alternative Notepad++
  • Conclusion

(0.2)


1. Introduction
Quand on souhaite développer un jeu en tant qu'amateur, tout débute souvent par une idée originale ou simplement une envie venue à maturité qui nous pousse à franchir le pas et à nous lancer dans un projet de développement. Cependant, passé cette première étape, la réalité du concret reprend ses droits et on se pose fatalement de nombreuses questions : choix du langage, choix de la plateforme, choix des bibliothèques logicielles ou du moteur de jeux, etc. On peut se sentir assez facilement perdu, et à raison, tant ce n'est pas le manque d'innovations qui guettent l'industrie du logiciel de nos jours.

C'est pourquoi, après avoir moi-même tâtonné longtemps à chercher des outils et des solutions, cet article se veut une petite introduction pour partir sur des bases suffisamment stables dans un projet de développement qui comportera suffisamment de problèmes pour ne pas perdre inutilement du temps sur des questions de simple organisation mais qui ont leur importance si elles ne sont pas prises en compte.


2. Choix du langage et de la plateforme
Choisir une technologie plutôt qu'une autre est toujours matière à débats et à controverses. Ici, nous ne chercherons pas à justifier par A+B les choix faits, l'important étant d'obtenir au final un jeu qui fonctionne dans un délai raisonnable.

Nous opterons dans le cadre de cette discussion pour la plateforme Web, à savoir les principaux navigateurs du marché. Cela aura l'avantage d'avoir un jeu qui pourra tourner sur de nombreuses architectures techniques (Windows, Linux, Mac, Android, iOs, etc.) sans retoucher à la moindre ligne de code. Concernant le langage de nombreux choix sont possibles comme les moteurs de jeu tel Unity ou Unreal Engine, mais même si ces derniers sont reconnus actuellement dans le domaine des jeux vidéo, il n'en est pas de même dans l'industrie du logiciel prise dans son ensemble.

Nous partirons du postulat que parmi les motivations à développer un jeu, on peut trouver celle de vouloir apprendre ou se perfectionner dans l'activité même du développement pour un usage généraliste. C'est la raison pour laquelle choisir un moteur de jeux propriétaire ne nous aidera pas forcément à acquérir des connaissances utiles dans le monde de l'entreprise, qui recherche plus des compétences sur l'informatique de gestion.

Pour un jeu Web, si nous excluons donc les moteurs de jeux (et à fortiori les outils de création de jeux comme Game Maker ou RPG Maker) pour une raison de ré employabilité des connaissances ainsi apprises à travers un tel projet, un langage comme Javascript vient immédiatement à l'esprit, et à juste titre.

Javascript qui a connu une montée en puissance ces dernières années grâce aux travaux de normalisations du HTML et des CSS, est actuellement la pierre angulaire du Web dynamique. Tout ou presque est possible avec Javascript. Pour s'en convaincre, j'invite les lecteurs à consulter le projet Epic Citadel et ce qui se fait autour des technologies Emscripten et Asm.js.

Néanmoins, malgré un Javascript pratiquement incontournable dès qu'une application concerne le Web, traîne encore l'héritage de son passé. Jadis conçu pour apporter une petite dose d'intelligence à des sites Web sous la forme de quelques lignes de codes, ce sont aujourd'hui des applications de plusieurs dizaines, voire centaines de milliers de lignes qui sont écrites en Javascript. Ce qui pose quelques problèmes de débogage à cause entre autre de son typage dynamique et aussi des problèmes d'architecture logicielle par l'absence de réelle notion de Programmation Orientée Objet, remplacée dans Javascript par la notion puissante de prototype, mais néanmoins différente.

Ceci étant dit, même si notre projet ne sera pas un monstre d'ingénierie logicielle, il y a fort à parier qu'il dépassera la dizaine de milliers de ligne de code (en comptant les commentaires). Ce qui risque de poser un petit souci de confiance envers le code produit ainsi que des dizaines et des dizaines d'heures perdues à debugger une erreur qui aurait été détectée à la compilation dans un langage de type C/C++.

Il existe actuellement deux principales alternatives intéressantes au Javascript pur qui sont CoffeScript et TypeScript. Ce sont tous deux des langages qui permettent de compiler le code source, typé et orienté objet, vers du Javascript, permettant ainsi de retomber sur nos pieds avec un code résultant en Javascript, interprétable sur tous les navigateurs.

Sans rentrer dans une guerre de religion pour l'un ou pour l'autre, nous choisirons ici le langage TypeScript qui est certain un peu moins mature que CoffeScript, mais a pour avantage d'être un sur-ensemble de Javascript (autrement dit, du code Javascript natif est directement reconnu sous TypeScript, ce qui n'est pas le cas de CoffeScript), c'est un projet Open Source dont le code est accessible à tous, et a été créé par le papa de C# qui travaille chez Microsoft ce qui est un gage de sérieux quoiqu'on en dise.

Le principal défaut de TypeScript est sa relative jeunesse, puisque le langage est toujours au stade de développement, même si une version de production est prévue d'ici la fin de l'année, ce qui restreint à l'heure actuelle les outils prenant en charge ce nouveau langage qui reste néanmoins promis à se pérenniser.

Pour tirer pleinement parti des possibilités de ce langage, papa de C# oblige, il nous faudra installer Visual Studio si vous ne l'avez pas déjà.


3. Visual Studio Express 2012 for Web

Visual Studio est un environnement de développement intégré (IDE) très populaire mis au point par Microsoft qui supporte nativement les principaux langages de l'éditeur (C#, ASP, J#) ainsi que le Javascript. Ce logiciel est payant et relativement onéreux pour une activité en amateur, mais heureusement il existe une version gratuite, Visual Studio Express, qui est cependant bridée avec notamment une restriction à un seul langage et une limitation dans l'ajout de modules complémentaires. Malgré tout, cela sera amplement suffisant pour nos besoins.

Il est recommandé de faire attention à bien télécharger la version anglaise et non pas française de Visual Studio, du fait d'un bug sur la localisation de la dernière version de TypeScript 0.9.1.

Téléchargez Visual Studio Express 2012 for Web - English

Ceci téléchargera l'image ISO de Visual Studio Express 2012 for Web - English, et pour lancer l'installation proprement dire, il vous faudra soit graver sur un CD ou bien utiliser un logiciel de virtualisation tel Virtual Clone Drive dont on pourra trouver des tutoriels sur la toile tel que celui-ci.

A noter aussi que l'installation nécessite plus de 2 Go d'espace libre sur votre disque dur.

Laissez-vous guider par la procédure d'installation, simple mais assez longue, en restant sur les choix par défaut.


4. TypeScript

Une fois Visual Studio Express 2012 for Web installé, ainsi que les mises à jour de base et l'obtention d'une clé d'enregistrement pour usage privé, nous pouvons installer TypeScript.

Pour rappel, TypeScript est un langage fortement typé avec une syntaxe orientée-objet plus conventionnelle que celle du Javascript, et qui permet de générer au final du Javascript afin d'être interprété par tous les navigateurs.

L'avantage de ce langage réside en partie sur le fait que c'est un sur-ensemble du Javascript et ce qui lui permet d'accepter nativement n'importe quel code Javascript.

Téléchargez le plugin TypeScript 0.9.1 pour Visual Studio

A noter que si vous avez installé une version différente que la version anglaise de Visual Studio Express 2012 for Web, alors le plugin de TypeScript ne fonctionnera pas.


5. Création du premier projet

Armés désormais de Visual Studio et de son plugin TypeScript, nous voilà prêt pour créer notre projet dans l'outil de développement.

Il faut tout d'abord savoir que Visual Studio fait une distinction logique entre la notion globale de solution et celle de projets qui sont des composants d'une solution. Tout au long de ce guide, le mot projet en italique, désignera la notion spécifique à Visual Studio, tandis que le mot projet sans mise en forme en italique désignera la définition du langage courant, à savoir développer un jeu vidéo. La notion de solution est pour le moment facultative, car étant surtout nécessaire dans le cadre de grandes applications d'entreprise.

Pour créer un projet, cliquez sur le menu FILE > New Project, ou bien appuyez sur CTRL + MAJ + N. Une fenêtre de dialogue telle que ci-dessous devrait apparaître :

Posted Image

(5.1)

Puis saisissez les informations nécessaires dans les champs suivants :
Projet : PremierJeuVideo
Location : C:/Users/VotreCompte/Dev

Si vous n'avez pas de sous-répertoire Dev dans votre répertoire utilisateur dédié, je suppose que vous ne vous êtes pas connecté en Administrateur, alors Visual Studio le créera pour vous.

Veillez aussi à ce que l'option Create directory for solution soit décoché afin d'éviter de rajouter un niveau d'arborescence inutile.

Une fois la fenêtre de création de projet validée, vous pouvez ignorer la fenêtre suivante à propos du Team Foundation Server. Cela peut être éventuellement utile dans le cadre d'un projet en équipe, mais je suppose aussi que vous réalisez votre projet en solo.

Nous allons maintenant mettre en place une arborescence type qui nous permettra de ranger les multiples fichiers qui seront impliqués pour ce projet. Le but est au final d'obtenir l'arborescence minimale suivante :
PremierJeuVideo
  \-- art
  |     \-- interface
  |     \-- sounds
  +-- doc
  |     \-- private
  |     \-- public
  \-- lib
  \-- src
  \-- tools

(5.2)

Voici un rapide descriptif des répertoires de cette arborescence :
  • art : ensemble des éléments artistiques du projet
  • art/interface : ensemble des éléments d'interface utilisateur
  • art/sounds : musiques et bruitages
  • doc : documentation du projet
  • doc/private : documentation interne
  • doc/public : documentation utilisateur
  • lib : bibliothèques Javascript personnalisée
  • src : sous-projets contenant les fichiers sources
  • tools : utilitaires divers facilitant la gestion du projet

(5.3)

Il est entendu que cette arborescence n'est pas complète. Elle sera complétée au fil des développements, notamment le répertoire "src" pour le moment vide.

La création de cette arborescence peut se faire à travers le panneau Solution Explorer qui devrait apparaître par défaut à droite.


Posted Image

(5.4)

A l'aide d'un clic droit sur l'élément PremierJeuVideo désignant la racine du projet, un menu contextuel devrait apparaître où vous pouvez choisir l'option Add > New Folder. De cette façon vous pourrez créer simplement l'arborescence du projet au sein de Visual Studio.


6. jQuery

S'il y a un framework incontournable pour qui veut développer en Javascript, c'est bien jQuery développé et maintenu par Google.

Néanmoins, pour l'intégrer à nos développements TypeScript, il convient de générer un fichier d'interfaçage pour TypeScript afin que le compilateur puisse vérifier le typage de votre code utilisant jQuery.

Pour récupérer en local le framework jQuery ainsi que le fichier d'interfaçage TypeScript, c'est très simple, il suffit d'utiliser le module NuGet intégré à Visual Studio. Pour cela, dans le panneau Solution Explorer comme dans le paragraphe précédent, cliquez droit sur l'élément racine du projet PremierJeuVideo puis cliquez sur l'option Manage NuGet Packages.

Après une phase de chargement, voici le type d'écran qui devrait s'afficher :


Posted Image

(6.1)

Le package jQuery devrait arriver en tête de liste. Si ce n'est pas le cas, vous pouvez le rechercher à l'aide de la zone de recherche en haut à droite. Cliquez sur le bouton Install.

En l'état, jQuery est opérationnel pour qui veut programmer en Javascript, mais comme dit précédemment, il a besoin d'un complément pour que TypeScript puisse l'exploiter.

Dans le champ de saisie de recherche en haut à droite, tapez : jquery.Typescript.DefinitelyTyped

Puis cliquez sur le bouton Install sur l'élément correspondant à notre recherche (en principe le premier) dans la zone principale de la fenêtre

A l'issue de cette étape, nous venons d'installer avec succès jQuery pour TypeScript.


7. Git for Windows

Un cycle de développement n'est jamais linéaire et gérer manuellement les versions de ses fichiers sources quand ceux-ci se multiplient peut se révéler un véritable casse-tête.

Pour répondre à ce problème aussi ancien que la programmation, les développeurs ont mis au point des outils pour gérer les modifications apportées aux fichiers sources. Il en existe de nombreux qui se regroupent sous l'appellation CVS (Control Version System). Nous utiliserons l'un d'entre eux qui se nomme Git for Windows qui a l'avantage d'être simple à utiliser et compatible avec la solution d'hébergement de sources en ligne GitHub.

Téléchargez Git for Windows

Lors de l'installation, il est recommandé de laisser toutes les options par défaut.

Une fois installé, nous allons indiquer à Git d'utiliser le répertoire de la solution précédemment créée avec Visual Studio en cliquant sur l'option Créer un nouveau dépôt.

Dans la zone de saisie, tapez le répertoire du projet que vous avez créé avec Visual Studio précédemment : C:/Users/VotreCompte/Dev/PremierJeuVideo



Posted Image

(7.1)

Indiquons maintenant à Git de suivre les modifications de tous les fichiers du projet en les sélectionnant tout d'abord :
  • mettre en surbrillance le tout premier élément de la liste en haut à gauche,
  • faire défiler l'ascenseur pour parvenir tout en bas,
  • maintenir la touche MAJ et cliquer sur le dernier élément.

(7.2)

Une fois tous les fichiers sélectionnés, nous pouvons en demander l'indexation de trois façons :
  • En sélectionner dans le menu Commit > Indexer
  • En cliquant sur le bouton Indexer modifs.
  • En tapant sur CTRL + T.

(7.3)

Si une boite de dialogue apparaît pour avertir qu'un nombre important de fichiers sont sur le point d'être indexés
Si une boite de dialogue apparaît pour vous demander de réaliser une conversion de retour chariot, accepter la conversion en cliquant sur le bouton Continuer.

Désormais, tous les fichiers qui se trouvaient dans le panneau des Modifs non indexées en haut à gauche, devraient apparaitre maintenant dans le panneau des Modifs indexées (pour commit) en bas à gauche.

Dans la zone de saisie inférieure, correspondant à la description de vos modifications, tapons le texte "Initialisation", et cliquons sur le bouton Commiter.

Nous venons ainsi de créer le dépôt de suivi des changements de notre projet dans Git ce qui sera très utile lorsque vous souhaiterez revenir sur une ou plusieurs modifications malencontreuses.

Nous pouvons apporter un petit raffinement à notre suivi des changements dans la mesure où certains fichiers sont générés et modifiés automatiquement par Visual Studio comme les fichiers internes de Visual Studio pour gérer le projet, ou bien les fichiers de travail qui seront générés lors des compilations. A l'aide d'un éditeur de texte, dans le répertoire du projet, ici en l'occurrence C:\Users\VotreCompte\Dev\PremierJeuVideo\, créez un fichier dénommé .gitignore avec le contenu suivant :
.gitignore:
pakages.config
*.csproj
*.csproj.user
*.sln
*.suo
bin/
obj/

(7.4)


8. Personnalisation de Visual Studio

Visual Studio y compris dans son édition Express est un outil très puissant. Néanmoins, cela ne l'exonère pas de quelques lacunes qu'il est possible de combler à l'aide d'outils externes.

Il sera par exemple utile de pouvoir compiler indépendamment du reste du projet un seul fichier TypeScript, notamment pour des raisons de rapidité. Tout comme il peut être intéressant d'appeler Git for Windows sans quitter Visual Studio.

On peut rajouter un appel à ces deux outils simplement en cliquant sur le menu TOOLS > External Tools.


Posted Image

(8.1)

Si vous avez laissé les options par défaut durant l'installation de ces deux outils, voici les paramètres à saisir pour ces deux outils.

Paramètres pour TypeScript
  • Title: TypeScript
  • Command: C:\Program Files\Microsoft SDKs\TypeScript\tsc.exe
  • Arguments: $(ItemPath)
  • Initial directory: $(ItemDir)

(8.2)

Paramètres pour Git for Windows
  • Title: Git for Windows
  • Command: C:\Program Files\Git\bin\wish.exe
  • Arguments: "C:\Program Files\Git\libexec\git-core\git-gui"
  • Initial directory: $(SolutionDir)

(8.3)


9. L'alternative Notepad++

Si vous êtes allergique à Visual Studio et sa consommation de mémoire vie de plusieurs centaines de Mo, vous pouvez vous rabattre sur des éditeurs plus simples et moins gourmands en ressources machine.

Si vous êtes sur le système d'exploitation Windows, il existe une solution open source qui a fait ses preuves : Notepad++

En plus d'être à la base un éditeur de texte très puissant, il s'est vu rajouter de nombreuses fonctionnalités au fil du temps faisant de lui un outsider non négligeable par rapport à des solutions commerciales dans le domaine du développement logiciel.

Même si vous ne comptez pas programmer votre jeu avec Notepad++, je vous recommande néanmoins de l'installer pour tous les services qu'il pourra vous rendre comme la conversion des fichiers en UTF8 et ses plugins de formatage de fichiers XML.

Téléchargez Notepad++

Une fois Notepad++ installé puis lancé, configurons-le pour en faire un environnement TypeScript friendly.

Encodage
Le compilateur TypeScript dans sa version 0.9 n'accepte plus que les fichiers encodés en UTF-8. Pour éviter de se retrouver devant de mystérieuses erreurs d'inclusion de fichiers, activons d'emblée le mode UTF-8 par défaut. Pour cela, cliquez sur le menu Paramétrage > Préférences > Nouveau document. Sélectionnez la troisième option, UTF-8.

Auto complétion
L'auto complétion est une fonction dans un environnement de développement qui permet d'accélérer sensiblement la saisie à partir des premiers caractères en se basant sur l'ensemble des variables, des fonctions et autres identificateurs déjà déclarés dans le projet, tout en filtrant les possibilités en fonction du contexte de la saisie (eg. seuls les attributs de l'objet courant seront pris en compte).

Notepad ne permet pas d'aller jusqu'à ce raffinement, mais permet tout de même de proposer une liste de l'ensemble des mots déjà présent dans un fichier source. Pour activer cette possibilité, il faut cliquer sur le menu Paramétrage > Préférences > Auto complétion, puis sélectionnez les options suivantes :
  • Activer la complétion automatique > Complétion de mot
  • Paramètres affichés durant la saisie
  • A partir du 2 è caractère

(9.1)

Coloration syntaxique
Bien qu'il n'existe pas à ma connaissance de fichier de définition de coloration syntaxique pour TypeScript, nous pouvons utiliser une possibilité bien pratique offerte par Notepad++, à savoir la possibilité d'étendre la coloration syntaxique d'un langage déjà défini.

Pour cela cliquez sur le menu Paramétrage > Configurateur de coloration syntaxique.


http://imageshack.com/scaled/large/41/sqo1.png

(9.2)

Tout d'abord, vous pouvez si vous le souhaitez changer ici le thème de votre éditeur. Certains développeurs préfèrent non sans raison un fond moins vif que le blanc brillant par défaut, mais cela reste avant tout une histoire de goûts personnels.

Dans la première liste de gauche, recherchez et sélectionnez l'élément Javascript.
Dans la deuxième liste, sélectionnez l'élément KEYWORD.

Dans la zone de saisie en bas dénommée Ext. utilisateur, saisissez ts qui est l'extension des fichiers TypeScript.

Enfin, dans la zone de saisie tout à droite dénommée Mots-clés utilisateur, saisissez les uns à la suite des autres, les mots suivants :
any boolean class constructor declare enum export extends implements import interface module number public private require static string super

Il existe de nombreux plugins pour Notepad++. Parmi eux, deux seront indispensables à notre situation :
  • NppExec
  • XML Tools

(9.3)

Pour vérifier si ces deux plugins sont installés ou non, il suffit de cliquer sur le menu Compléments et de rechercher ces deux noms. Si au moins l'un des deux manque à l'appel, pas de souci, l'installation d'un plugin est très simple grâce à un autre plugin qui est livré par défaut avec l'outil, à savoir Plugin Manager qu'on peut retrouver également dans ce menu Compléments.

Plugin Manager un petit module qui permet de rechercher l'ensemble des plugins disponibles et de les installer. C'est en quelque sorte l'équivalent de NuGet sous Visual Studio.

Une fois ces deux plugins d'installés, et surtout NppExec, nous pourrons définir les commandes prédéfinies suivantes :
  • TypeScript
  • Git for Windows

(9.4)

La procédure de définition est identique pour ces trois commandes, seule le script d'exécution varie. Cette procédure est la suivante :
1. Cliquez sur le menu Compléments > NppExec > Execute, ou appuyer sur la touche F6.
2. Dans la zone de saisie, tapez le script de la commande
3. Cliquer sur le bouton Save
4. Donner un nom à votre commande
5. Cliquez sur le menu Compléments > NppExec > Advanced Options. Dans la boite de dialogue qui s'affiche, seule la zone Menu Item est vraiment importante.
6. Dans le champ de saisie Item name, taper le nom de votre commande.
7. Dans le menu déroulant Associated script qui se trouve juste en dessous, choisissez la commande souhaitée puis valider en cliquant sur le bouton OK.


http://imageshack.com/scaled/large/812/j3lq.png

(9.5)

Script de commande TypeScript
cd "$(CURRENT_DIRECTORY)"
tsc.exe "$(FILE_NAME)"

Script de commande Git for Windows
"C:\Program Files\Git\bin\wish.exe" "C:\Program Files\Git\libexec\git-core\git-gui"

Après, rien ne vous empêche d'ajouter les commandes de votre choix comme make/jake, node.js et bien d'autres, mais cela dépasserait sans doute le cadre de ce guide.


10. Conclusion

Comme nous venons de le voir, l'installation d'un environnement de développement en TypeScript n'est pas très compliquée, mais n'est pas si triviale non plus lorsqu'on démarre de rien, ce qui est souvent le cas quand on débute dans le développement.

Tout ce qui est décrit dans cet article est absolument facultatif. En effet, il est tout à fait possible de réaliser un projet sans mettre en place toute cette logistique, mais tôt ou tard, à mesure de la complexification de l'application, le besoin d'organisation se fera ressentir, et il sera plus difficile d'y remettre de l'ordre à postériori que de partir sur de bonnes bases.

En espérant que cet article vous a été utile.

( Partie 2 )


Formalistes et Zinesters : Pourquoi le formalisme n'est pas l'ennemi (1/3)

Posted by , in Game Design 06 August 2013 - - - - - - · 588 views

Cet article est une traduction autorisée de la première partie de celui-ci : Formalists and Zinesters: Why Formalism Is Not The Enemy (Tadhg Kelly)

Avant-propos du traducteur
Ce qui suit est une critique d'un professionnel de longue date de l'industrie du jeu vidéo, Tadhg Kelly, au sujet d'un récent mouvement de créateurs amateurs d'œuvres vidéo ludiques. Ce mouvement prône une démarche à la fois artistique et non commerciale, voire même militante, se faisant appeler les Zinesters, en référence à l'univers des fanzines, magazines de passionnés autoproduits. Le Zinestérisme, s'appuie notamment sur un livre en anglais, encore non traduit en français, d'Anna Anthropy dont le titre est "Rise of the Videogame Zinesters" (L'avènement des Zinesters du jeu vidéo). Dans ce livre qui est évoqué dans la critique de Tadhg Kelly, Anna Anthropy traite de sa vision des jeux vidéo en s'appuyant sur une de ses réalisations appelée Dys4ia.


Avant d'émigrer, je me suis retrouvé à défendre vigoureusement Raph Koster sur Twitter. Cela a commencé en réaction à cet article, en particulier par cette citation d'Anna Anthropy :









"Les jeux vidéo ont été l'une des communautés les plus sectaires que j'ai jamais vu", m'a-t-elle dit par e-mail, "des mecs, comme Raph Koster, insistent sur le fait que dys4ia "n'est pas un jeu", ce n'est pas un jugement de valeur. Ce sont des foutaises. la tentative sur des jeux comme dys4ia de mettre les étiquettes de "non-jeux", "d'expériences interactives", c'est juste une tentative à travers le statu quo de maintenir la discussion autour des jeux centrée sur le genre de jeux avec lequel on se sent à l'aise - car s'il y a bien une chose dont la culture du jeu vidéo sait faire, c'est de mettre très très à l'aise des mecs d'un certain genre."

Récemment, j'ai remarqué une recrudescence de l'argument "des mecs d'un certain genre". D'une part, cela concerne l'acceptation et le traitement des femmes, des minorités et d'autres groupes au sein de l'industrie du jeu - et à juste titre. D'autre part, cela concerne la perception du patriarcat. C'est affirmer que des "mecs d'un certain genre" oppriment les gens créatifs avec leur vision d'une industrie organisée à maintenir leur satisfaction, et manipulent la définition de "jeu" comme une démonstration de leur pouvoir.

Cette affirmation est beaucoup plus sujet à controverse parce qu'elle confond trois problématiques différentes. La première est politique et affirme que la passivité ou l'apathie sont en fait des formes de complicité. La seconde est en rapport avec la préférence du marché, se demandant pourquoi est-ce que le segment des mâles blancs achète sans cesse certains types de jeu tout en ignorant une plus grande diversité. Ce point met en cause la responsabilité de l'industrie, tandis que l'industrie elle défend que les dynamiques de marché sont évolutives de telle façon que l'industrie suit le marché plutôt que de lui imposer quoi que ce soit.

La troisième problématique porte sur la critique. Pour beaucoup de formalistes (moi y compris), de nombreux nouveaux types d'art interactif ne sont pas des jeux, ou alors pas très bons si on les considère comme des jeux. Beaucoup s'apparentant à des jeux, sont des systèmes ludifiés, des histoires interactives, personnelles, convaincantes et limitées. Certains sont des mondes virtuels. D'autres sont plus intéressants conceptuellement parlant que jouable. Beaucoup reposent sur la connaissance des intentions de l'auteur.

En créant un "jeu" qui n'est pas destiné à être joué ou gagné, son créateur dit quelque chose. Le fait ensuite d'appeler ce travail autre chose que "jeu" peut apparaître comme une attaque dirigée contre son créateur. En particulier pour le groupe de ceux qui peuvent en première approche être qualifiés de "Zinesters", le "jeu" est devenu un champ de bataille politico-artistique féroce qui doit être gagné. De plus en plus de Zinesters en arrivent à mélanger le formalisme avec le patriarcat, la complicité et les débats sur "des mecs d'un certain genre", en les dénigrant sans faire la moindre distinction.

C'est non seulement encore une autre tentative pour remporter le débat sur les jeux en ayant recours à l'équivoque, mais cela a pour effet de dissuader certaines voix autrement plus intéressantes de se faire entendre. Certains, comme Raph, continue d'essayer, notamment avec cette lettre ouverte dans laquelle il évoque le débat et les attaques personnelles (un développeur indépendant qu'il respecte a changé de trottoir pour éviter de le croiser à la GDC – Game Developper Conference) pour être contraint au final à devoir crier une fois de plus sur Twitter. La question pour les Zinesters est la suivante : Hurler et insulter est-ce donc là tout ce dont vous êtes capables ?

Parce que si c'est le cas, les Zines vont inévitablement finir par disparaître.

Des ennemis inoffensifs

Les Zinesters se considèrent comme une classe émergente d'artistes interactifs. Leur travail couvre tout, de leur histoire personnelle jusqu'aux observations sur l'univers et des expériences purement esthétiques, et que ce travail prend des milliers de formes. Dans son livre, "Rise of the Videogame Zinesters", Anna Anthropy dépeint le mouvement comme apparenté aux posteurs de vidéos sur YouTube ou à d'autres créateurs agrégeant divers médias, libres des entraves du mercantilisme ou de l'élitisme, et en mesure de faire ce qu'ils veulent. C'est assez vrai.

Et pourtant, contrairement aux posteurs de vidéo sur Youtube, le Zinestérisme a aussi un côté combatif. Provocateurs comme a pu apparaître Anna à la GDC en lisant des poèmes sur leurs luttes, leurs combats, leurs victoires et leurs défaites dans la bataille pour l'égalité réelle. Parfois le Zinestérisme va au-delà même de ça. Pour certains, la lutte est moins sur la confirmation de soi que sur l'infirmation des autres. Il s'agit de la possibilité de crier "Je suis furieux contre toi, espèce de blanc de service". C'est-à-dire que vous voulez juste un ennemi.

Nous pouvons être formalistes, mais ceux qui écrivent comme Raph ou moi-même sommes le mauvais type d'ennemi dans le cas où votre intention est de défendre le droit des créateurs de jeux à donner leur avis sur les jeux, parce que nous sommes d'accord avec vous. Parmi nos rangs, vous trouverez quelques-uns de vos plus fervents partisans, des défenseurs passionnés et des évangélistes affirmés. Vous rencontrerez un débat vif et des réponses argumentées puisque nous essayons d'aboutir à un stade où notre cadre critique est à la fois le plus général et le plus clair possible. Mais pour ces raisons, vous trouverez peu de gens qui tenteront de prendre à défaut vos réalisations sur la qualité (soit dit en passant, dans la course au jugement au cours des dernières semaines sur l'ensemble de cette question, où beaucoup se contentent d'affirmer que les jugements de valeur et autres sont au cœur de ce qu'est un jeu, aucun de ses partisans ont encore cité un exemple crédible à ce propos.)

Ce que vous y trouverez aussi, cependant, ce sont des gens qui connaissent assez bien l'univers du jeu vidéo. Des gens qui ont vu cette lutte sur "ce qu'est un jeu" se produire avant. Des gens pour qui l'idée d'un jeu qui a recours à la mort définitive n'est pas étonnamment originale. Des gens pour qui l'astuce de l'inversion de rôle et la notion de jouer avec le dégoût de soi, ou des jeux qui demandent à ne pas être joués, sont des idées qu'ils ont déjà vues. Des gens pour qui le débat n'a rien à voir ou presque avec leur propre sentiment de puissance et tout à voir avec le fait d'essayer d'arriver à une meilleure compréhension. Des gens qui considèrent que les Zinesters semblent répéter une erreur très ancienne.

Vers la fin des années 80, un désir grandit parmi les jeunes rôlistes sur table (moi y compris) pour repousser les limites des nombres. Nous commencions à parler de jeux de rôle en tant que jeux narratifs. Nous considérions plusieurs joueurs de la vieille garde qui parlaient de campagnes, de classes et de points de vie comme désuets. Nous étions convaincus qu'un jour le "jeu" aurait place pour des histoires, des épopées et des thèmes. Nous parlions sans cesse de narrations non scénarisées, de jeux sans règle et de dépasser la notion de divertissement.

L'énergie des débuts entourant ce mouvement a généré beaucoup de créativité. Les genres de jeux que nous avions créés étaient des concepts. Nous avons travaillé sur des jeux dont le but était d'explorer les thèmes de la mythologie, de l'identité et de la sexualité. Dans un premier temps, nous utilisions des trames, des scénarios ou des mécaniques traditionnelles, mais au fil du temps nous étions passés dans l'abstraction stylistique, l'équivalent en jeu de rôle des Six personnages en quête d'auteur de Pirandello. Nous étions plus ou moins les précurseurs des Zinesters d'aujourd'hui.

Pour nous, c'était quelque chose de fascinant, mais cela n'a pas attiré au-delà de nos rangs. Alors, au fil du temps nous sommes tombés dans un débat de plus en plus confidentiel. Alors que le reste de la communauté des joueurs ne s'en souciaient pas tellement, nous sommes devenus militants et obsédés par les broutilles, les affronts et les insultes perçues. Nous sommes passés d'une tribu de passionnés à des groupuscules qui passaient leur temps à râler les uns sur les autres, et au fil du temps nous avons décliné. Le "jeu" est resté tel qu'il était, malgré toutes nos fanfaronnades, et vers la fin des années 90, il était retourné à ses racines avec la 3e édition de Donjons et Dragons.

Ceci, en grande partie, est le modèle que semble suivre le Zinestérisme.

La deuxième partie en français est disponible ici : Formalistes et Zinesters : Pourquoi le formalisme n'est pas l'ennemi (2/3)


Personnages et création d'univers : Analyse de la force des jeux japonais (4/4)

Posted by , in Game Design 28 July 2013 - - - - - - · 405 views

Cet article est une traduction autorisée de la quatrième partie de celui-ci : Characters and Worldbuilding: Analyzing the Strength of Japanese Games (Zack Wood)
Toutes les illustrations qui ne sont pas celles de l'auteur relèvent du droit à la courte citation (article L.122-5 du Code de propriété intellectuelle)

Un exemple concret : Cafe Murder

Bien que j'ai utilisé des phrases comme "les personnages japonais" et "l'approche japonaise du développement de jeux vidéo", je ne veux pas dire que ces choses sont fondamentalement japonaises ou inaccessibles aux personnes en dehors du Japon. Au contraire, je pense que c'est parce que le Japon a développé ces techniques et ces approches, que n'importe qui dans le monde peut en tirer des enseignements et les utiliser.

En fait, en tant qu'artiste et concepteur d'un prochain jeu iOS appelé « Cafe Murder », j'ai eu l'occasion d'essayer de mettre ces concepts en pratique tout au long de l'année dernière.

Douze clients uniques

Cafe Murder, qui a démarré en tant que projet Kickstarter (NdT : plateforme participative de financement de projets), est un jeu de simulation de restaurant avec un cuistot attaquant les clients. J'ai construit chacun des douze personnages des clients autour d'un concept simple qui définit leur apparence et leur comportement, similaire à ce que Condry décrit avec « Dekoboko and Friends ». Visuellement, j'ai essayé de rendre chaque personnage haut en couleur et facilement reconnaissable, exprimant leurs émotions en accord avec à leur personnalité et à leur concept.

Frantic Fred, par exemple, est un "occupé", un homme d'affaires pressé qui doit être servi tout de suite. Sharkeeta, l'habituée riche et corpulente, représente la gourmandise, et Pincushion (NdT : littéralement "pelote d'épingle"), contrairement à tous les autres, peut survivre à un coup de couteau.


Posted Image
Fig. 5 Frantic Fred


Posted Image
Fig. 6 Sharkeeta


Posted Image
Fig. 7 Pincushion

J'ai aussi essayé de maintenir au minimum les dialogues en face-à-face, tout en ajoutant un menu sur les retours clients pouvant être consulté à loisir par le joueur s'il décide de le survoler pour mieux connaître la personnalité de chaque client.

Sekaikan, le style Cafe Murder

J'ai commencé à concevoir Cafe Murder dans le cours de conception de jeu à la Kyoto Seika, et à cette époque j'avais choisi le thème « pour servir et protéger ». Bien que le gameplay de base consiste surtout à faire preuve de réflexes pour attraper des ingrédients et assembler des sandwichs, pour bien réussir dans ce jeu, cela nécessite de comprendre et de pourvoir aux besoins spécifiques de chaque personnage dans le but de servir les sandwichs avec une efficacité et une satisfaction maximale.

Sachant, par exemple, que vous devriez servir un sandwich imparfait à Fred avant qu'il ne devienne trop impatient, tandis qu'il vaudra mieux prendre plus de temps pour faire le sandwich de Sharkeeta principalement à cause de son généreux pourboire - tout en les protégeant contre les crises de nerf démentielles du cuistot.

En termes de décisions concrètes de conception liées au sekaikan, je m'en souviens d'une en particulier. Lors de la conception de la version améliorée des "chaussures de vitesse" pour la serveuse Rainy, j'ai d'abord commencé à dessiner des baskets avec des ailes façon Hermes sur elles ; cependant, je me suis vite rendu compte que cela faisait trop mythologique, trop évocateur d'un jeu de plateforme comme Kid Icarus.

Posted Image
Fig. 8 Chaussures de vitesse avec des coeurs

Je ne me sentais pas à l'aise d'avoir des chaussures de vitesse ailées dans l'univers de Cafe Murder, alors que des coeurs accélérateurs et mignons étaient nettement plus appropriés. Cafe Murder, avec le recul, c'est un monde où être affectueux et attentionné envers les clients est plus efficace que des ailes magiques. Si vous voulez le vérifier par vous-même, Cafe Murder est maintenant disponible sur l'App Store.

En guise de conclusion ...

En considérant à la fois l'approche sur les personnages et l'utilisation du sekaikan, j'en déduis un concept plus général dans la conception des jeux japonais : la simplification et la stylisation en tant que méthodes pour créer un sentiment de réalité et d'exubérance.

Les personnages, à la fois en termes de personnalité et d'apparence, sont simplifiés et exagérés, expressif et facile à cerner. Les univers ludiques sont organisés autour de concepts simples, et des objets dans un tel univers sont choisis ou rejetés avec beaucoup de minutie.

Néanmoins, ces considérations ont pour effet de créer ce sentiment qu'il y a plus que l'oeil nu ne peut voir ; les personnages apparaissent attachants et réels, et ceux qui sont populaires sont consommés presque à l'infini. De même, les univers ludiques semblent vivants, et les joueurs veulent les revisiter encore et encore à travers différents médias.

J'espère avoir été clair à propos de ce que j'ai appris pendant mes années au Japon. Merci de m'avoir lu, et s'il vous plaît, si vous avez des commentaires, des critiques ou des approfondissements sur les idées que j'ai présentées, faites-le-moi savoir. Si vous avez aimé cet article, n'hésitez pas à consulter mon blog autour des univers créés par les jeux à gamemakeworld.wordpress.com


Personnages et création d'univers : Analyse de la force des jeux japonais (3/4)

Posted by , in Game Design 27 July 2013 - - - - - - · 376 views

Cet article est une traduction autorisée de la troisième partie de celui-ci : Characters and Worldbuilding: Analyzing the Strength of Japanese Games (Zack Wood)
Toutes les illustrations qui ne sont pas celles de l'auteur relèvent du droit à la courte citation (article L.122-5 du Code de propriété intellectuelle)

Sekaikan : le développement de la « vision du monde » de votre jeu.

En plus de la discussion sur les personnages, je souhaiterais également présenter le terme « sekaikan », ce qui signifie grosso modo « vision du monde ». C'est à mon avis, le seul mot qui est vraiment important dans la compréhension du développement des jeux japonais.

La première fois que j'ai rencontré le mot sekaikan ce fut sur le blog de Hidenori Shibao dans un article sur le développement de Paladin's Quest, où il expliquait que son but était de faire en sorte que l'univers du jeu soit le personnage principal de la partie. À cette fin, il s'était efforcé de faire ressortir du nouveau et du neuf dans chaque chose, depuis les menus des combats, dont la navigation ne peut uniquement se faire qu'avec la croix directionnelle, jusqu'à la conception et aux esquisses des personnages imaginaires. Il a rassemblé tous les éléments du jeu, dit-il, avec l'objectif de créer un bon sekaikan.

J'ai vite découvert que d'autres développeurs et les joueurs au Japon utilisent souvent le terme de la même façon. Mais, je me suis demandé, qu'est-ce que cela signifie pour un jeu d'avoir un bon sekaikan ? À travers des entretiens, des recherches et mes expériences personnelles, j'ai élaboré une définition du terme, qui peut être décomposée en deux parties :

Tout d'abord, sekaikan peut faire référence à l'impression qu'il existe un monde au-delà de ce que vous voyez à l'écran. Ceci est similaire au sonzaikan des personnages, le monde donne une impression de vie et de réel, bien qu'il ne puisse pas être une simulation physiquement fidèle de la réalité.

À d'autres occasions, les gens utilisent le terme sekaikan pour parler de la vision du créateur de l'univers du jeu, qui est la matrice de tout, depuis la conception visuelle, jusqu'aux règles, aux contrôles, et à l'histoire. Il s'agit de la « sensation » globale du monde, générée par l'interaction de tous ces éléments.

Avoir un bon sekaikan signifie donc en première approche que le jeu semble réel, mais vu autrement, qu'il est également intéressant et bien réalisé. Souvent, cela signifie que le joueur voudra revisiter l'univers, que ce soit en rejouant au jeu, en jouant à d'autres jeux de la série, ou à travers d'autres médias.

Le Sekaikan dans le monde occidental

Compte-tenu de son utilisation fréquente au Japon, il y a étonnamment peu de discussions sur le sekaikan dans le monde anglo-saxon (NdT : y compris dans le monde francophone). Je n'ai trouvé que quelques mentions de celui-ci sur Internet au sens large, ici et ici.

Dans « Créativité Anime », cependant, Ian Condry aborde le sekaikan et son rôle dans la création de l'anime, ce qui indique d'une certaine façon son importance dans les jeux vidéo.

Il y décrit ce que c'était que d'assister à des discussions entre l'équipe de production d'une série animée appelée « Zenmai Zamurai ». Ce qu'il a constaté était que, plutôt que de penser à l'anime en termes d'histoire, qui est le principal sujet pour de nombreux fans et pour les critiques - les développeurs ont utilisé un modèle « lieux + vision + personnages ». Comme Condry l'explique :







Ce qui était encore plus central que l'histoire elle-même dans l'organisation du partage des tâches pendant la production de l'anime était... la conception des personnages, la mise en place des lieux en rapport avec les personnages, et les paramètres définissant l'univers dans lequel les personnages pouvaient interagir. Cette combinaison de personnages (kyarakutaa), lieux (settei), et de paramètres (sekaikan) précède en général l'écriture de l'histoire.

Condry poursuit en mentionnant qu'un modèle similaire pourrait être utilisé pour les jeux, et bien qu'il ne précise pas ce que cela pourrait donner, son étude montre le rôle crucial du sekaikan dans le développement de la pop culture tels que les animes et les jeux vidéo. Il est défini dès le début du processus, et il est la matrice d'éléments secondaires comme l'histoire et les visuels.

En outre, bien que Kelly n'utilise jamais le terme sekaikan sur « Ce que sont les jeux », il y souligne des aspects similaires à ceux que les développeurs japonais prennent en compte en matière de sekaikan. Pour commencer, il propose d'une certaine façon une définition du sekaikan dans son article intitulé « Créateurs de mondes » :


Nous extrapolons souvent davantage d'une expérience de jeu que ce qui est réellement à l'écran. Nous avons cette faculté à utiliser le jeu comme un tremplin imaginatif, en déduisant les traits de caractères, la personnalité, les tendances de comportement et la perception d'un univers de jeu au-delà même de ce que le développeur avait prévu. Nous faisons des escapades cognitives, des petites observations et des associations qui sont la marque de l'empathie, et qui par conséquent donnent le sentiment qu'il y a plus que ce qui est donné à voir à l'oeil nu.

Il poursuit en insistant sur le fait que les développeurs de jeux sont des « créateurs d'univers », et que « l'art de la conception d'un jeu repose sur le lieu », expliquant que :


Créer un monde est une tâche complexe qui exige non seulement de l'imagination, mais de l'élégance, de l'esthétisme et de la mise en scène... Ce n'est pas seulement une question de géographie ou de style artistique, et cela a très peu à voir avec l'histoire (NdT : dans le sens de scénario). C'est un savant mélange d'éléments dynamiques, audio-visuels, au rythme changeant, dont le tout vise à atteindre une sorte d'implication du joueur.

La création d'univers est l'acte de création d'une toile... Une grande partie de mon livre parle de l'art des jeux comme relevant de la création d'univers parce que je crois que les univers sont là où réside l'art véritable des jeux.

Pour moi, cela ressemble l'attention particulière au Japon qui est portée à l'univers vécu à travers un jeu. Kelly est la seule personne dont j'ai connaissance dans le monde occidental a avoir une théorie des jeux qui en tient compte et qui explique le plaisir des jeux à la fois pour les jeux occidentaux et pour les jeux japonais, FPS et RPG, Les Sims et Harvest Moon.

Conception de Jeux à la Seika

Enfin, je voulais partager quelques leçons pratiques que j'ai apprises durant les cours de Kenichi Nishi de conception de jeux à l'Université de Kyoto Seika.

Puisque chaque élève était venu avec leur propre idée, il nous a demandé de définir un thème pour notre jeu, comme « grandir » ou « devenir amis ». Au début, je pensais que c'était ridicule de résumer un jeu entier d'une telle manière, mais je me suis vite rendu compte que, en tant qu'expression simple de votre « vision du monde », cela peut effectivement aider à donner au jeu une structure et de la cohérence. Il a dit que dans Katamari Damacy (NdT : jeu d'action-réflexion sorti en 2004), par exemple, le thème de base serait « grandir », et cela se reflète dans l'histoire, dans les visuels, et le gameplay.

En parallèle, Nishi nous a encouragés à considérer l'univers de notre jeu sous tous les angles : Quel est le système politique ? Quel temps fait-il ? Quelle est la source d'énergie ? Quel type de vêtements portent les gens ? Et ainsi de suite, même si l'élément en question n'a rien à voir avec le gameplay et n'apparaîtra pas durant le jeu.

Dans le même genre, il nous a encouragés à réfléchir soigneusement sur les objets à inclure dans l'univers du jeu. Lors d'un cours, nous avons débattu sur une idée d'une étudiante sur un jeu à propos d'un personnage mignon volant dans le ciel, collectant des cœurs, tout en évitant les obstacles comme des masques de nuit. Cependant, quand Nishi l'a interrogée sur l'inclusion des masques de nuit, elle n'a pas eu d'explication. Les masques de nuit, a-t-il dit, changent tout - puis le débat s'est orienté sur le mode de vie des êtres humains qui utilisent un masque de nuit débouchant sur un champ entier d'associations.

Son argument était que chaque objet modifie la compréhension de l'utilisateur et sa réaction envers l'univers du jeu, et de ce fait il est donc dangereux d'inclure sans réfléchir quelque chose juste parce que cela aurait du sens dans la réalité ou parce que d'autres jeux ont fait la même chose. Chaque élément doit correspondre au sekaikan de votre jeu afin que votre univers donne l'impression de réel et se justifie par lui-même.

La quatrième partie en français est disponible ici : Personnages et création d'univers : Analyse de la force des jeux japonais (4/4)


Personnages et création d'univers : Analyse de la force des jeux japonais (2/4)

Posted by , in Game Design 24 July 2013 - - - - - - · 502 views

Cet article est une traduction autorisée de la deuxième partie de celui-ci : Characters and Worldbuilding: Analyzing the Strength of Japanese Games (Zack Wood)
Toutes les illustrations qui ne sont pas celles de l'auteur relèvent du droit à la courte citation (article L.122-5 du Code de propriété intellectuelle)

Les personnages japonais : plus que "mignon"

Quiconque a visité le Japon peut vous dire que les personnages apparaissent partout : sur les panneaux d'affichage, à la télévision, sur les vêtements, sur les trains, dans l'alimentation (et pas seulement sur l'emballage, souvent à l'intérieur aussi sur la nourriture) - à n'importe quel endroit imaginable. Vous pouvez même les trouver dans des situations qui en Amérique pourrait être considérées comme un peu inappropriées, comme sur un dépliant qui invitait à quelque chose comme « Réduisons le nombre de suicides ! » avec un garçon et une charmante créature verte levant leurs poings avec détermination tout en souriant.






Posted Image
Fig. 2 Le Train Pokémon



Posted Image
Fig. 3 Coffret repas à la sauce "Hello Kitty"

En Amérique, les personnages japonais comme Mario, Hello Kitty, et les nombreux Pokémon sont, bien que populaires, parfois dénigrés pour leur côté infantile ou simpliste. Personnellement, j'ai toujours eu un petit faible pour eux, mais je ne pensais pas qu'ils avaient davantage qu'une esthétique que j'avais été amenée à apprécier. Je ne savais pas à l'époque que ces personnages exercent une grande influence au Japon, à la fois économiquement et comme des acteurs incontournables des médias grand public tels que les jeux vidéo.

La forte demande dans la production de personnages constituent ce qui est essentiellement une industrie du personnage ; les entreprises du jeu vidéo, de l'anime, du manga, et des produits dérivés travaillent ensemble en étroite coordination pour créer des spin-offs (NdT : histoires alternatives), les croisements, et divers produits basés autour de ces personnages populaires. C'est ce qu'on appelle le « mix média » au Japon, ou parfois le « transmedia storytelling » (NdT : littéralement "la narration transmédia") en Occident. Grâce à ces partenariats, un personnage de manga à succès, par exemple, peut au final générer beaucoup plus d'argent que les ventes même du manga d'origine.

À la Kyoto Seika, mes camarades de classe étaient très conscients que la création de personnages populaires était une partie essentielle du processus de décision dans un manga, et, comme vous pouvez l'imaginer, au Japon, les concepteurs de talent de personnages sont très recherchés. Il y a des artistes comme Kosuke Fujishima de la série des RPG « Tales » (NdT : de « Tales of Phantasia » à « Tales of Vesperia ») et Yoji Shinkawa pour Metal Gear (un ancien de la Kyoto Seika), qui ont obtenu la renommée et la reconnaissance en grande partie grâce à leur travail de conception de leurs personnages. Le travail de tels artistes est présenté dans des expositions, ce qui permet aux intéressés de pouvoir vendre d'onéreux livres d'art de leurs esquisses et de leur dessins.

La Création des personnages japonais

Quelle est alors la particularité de ces personnages ? Quelles sont les qualités, si elles existent, qu'ils partagent ? Certaines personnes peuvent être familières avec le terme « kawaï », qui est généralement traduit par « mignon », et est souvent utilisé pour décrire les personnages. En fait, cela ne se résume pas simplement au fait d'être « mignon » ; Selon moi, les personnages kawaï sont expressifs, attachants et "facile à lire". De grandes têtes et de grands yeux, des dessins simples et colorés, et des réactions émotionnelles exagérées font partie de ces éléments stylistiques récurrents des personnages kawaï.

Un terme moins commun mais tout aussi important est « sonzaikan », qui se traduit littéralement par "le sentiment que quelque chose existe". En termes de personnages, cela signifie qu'ils semblent réels, pas nécessairement qu'ils sont uniquement semblables à de vraies personnes avec des personnalités complexes, mais plutôt qu'ils donnent une impression d'être plein de vie, et incitent le spectateur à avoir une réaction émotionnelle. De cette façon, les gens peuvent développer un lien personnel avec leurs personnages préférés, presque comme s'ils étaient de vrais amis.

Dans la pratique, comment les concepteurs font ce genre de personnages ? Ian Condry, un spécialiste de la pop culture japonaise, décrit un exemple dans son article, « Anime Creativity: Characters and Premises in the Quest for Cool Japan » (NdT "Créativité Anime : Personnages et lieux à la recherche du Japon cool"). Il y interroge m&k, l'équipe de conception qui a créé les personnages d'une série animée populaire appelé « Dekoboko and Friends » (NdT : "Dekoboko et ses amis").

Ils ont développé les personnages en "auditionnant" environ 60 d'entre eux, ce qui a consisté à en dessiner un large éventail puis à sélectionner. "Nous avons écarté les personnages qui étaient dans la moyenne, et avons visé à la place ceux qui étaient d'une certaine façon déséquilibrés", ont-ils expliqué... Les créateurs n'ont également pas commencé par l'image visuelle du personnage, mais ont raisonné en termes de saveur caractéristique d'un personnage (mochiaji) ou de compétence spéciale (tokugi) ... "La personnalité (Kyara) précède le personnage lui-même, évoquant le sentiment d'une sorte d'existence (sonzaikan) ou force de vie (seimeikan)"... Quand m&k sélectionnèrent leurs personnages parmi les nombreux qu'ils avaient auditionnés, ils privilégièrent les extrêmes : un personnage extrêmement timide, un autre très rapide, un autre étant une femme élégante et plus âgée chantant de grandiloquentes chansons traditionnelles, ou un autre si grand qu'il ne peut pas passer par la porte.

En d'autres termes, chaque personnage est défini par un concept simple, qui à son tour détermine à la fois son caractère et son apparence. Le résultat est que, bien que simpliste, chaque personnage donne un sentiment de sympathie et de réel, comme en témoignait la popularité de l'émission.


Posted Image
Fig. 4 "Dekoboko and Friends"

Ce que sont les personnages : Les personnages dans les jeux
Dans son blog de game design « What Games Are » (NdT : "Ce que sont les jeux"), Tadhg Kelly y explique le rôle et la fonction des personnages dans les jeux vidéo, et en se basant sur son analyse, les personnages à la japonaise en sont de très bons exemples.

Tout d'abord, cela permet de mieux comprendre son point de vue sur le rôle de la narration dans les jeux vidéo. Dans son message « Des personnages jouables et de l'expression de soi », Kelly explique ce qu'il appelle « le storysense » (NdT : littéralement "la perception de l'histoire"):






« Le storysense » est une approche narrative qui s'appuie sur la création d'un univers intéressant, sur un ensemble fait de fils et de bouts d'histoires qu'il est possible d'explorer, sur une approche minimaliste de la notion d'objectif, et se dispense donc d'une trame scénarisée et d'un développement des personnages. Cette approche considère l'histoire comme une musique de fond durant jeu, de telle façon que le joueur peut ou non y participer, c'est comme il le souhaite. Il n'y a pas de temps de perdu à récompenser inutilement le joueur pour s'être bien identifié à son personnage, et les seules récompenses sont celles au premier degré - à l'image du jeu. Il n'y a pas de création élaborée de personnages, ni de tentative d'introduire du sens inutilement, ni de sentimentalisme pour émouvoir le joueur.

C'est la raison pour laquelle il explique dans « Création de personnages » que les personnages dans les jeux n'ont pas besoin d'un développement traditionnel à travers une histoire :


La modélisation d'un personnage n'est pas la même chose que le développement d'un personnage. Le développement du personnage dans une séquence narrative est un processus long et complexe, mais dans un jeu c'est complètement en contradiction avec qui est nécessaire de réaliser. L'art de modéliser des personnages est celui de donner une impression de ce qu'ils sont dans leur totalité, car ils ne sont qu'une partie d'un portrait.

Un personnage de jeu doit être modélisé dans les grandes lignes, de sorte que c'est au joueur d'aimer ou de détester à son propre rythme. Le lui retirer, ou imposer une orientation au joueur, alors sa sympathie de principe peut rapidement tourner à de l'antipathie ou à l'ennui.

Comme il le résume dans son message sur le « Développement de personnages », « c'est à l'univers du jeu de se développer et les personnages sont (pour la plupart) seulement des ressources qui s'y trouvent ».

Les personnages japonais, avec leur impression de réel (sonzaikan), et les personnalités simples mais charmantes (comme les personnages de Dekoboko et de bien d'autres), me semblent être tout à fait adaptés pour ce genre de rôle. Davantage que des personnages physiquement et émotionnellement réalistes, les personnages kawaï simplifiés et stylisés contribuent à donner vie à l'univers du jeu pour le « cerveau artistique » sans pour autant détourner le « cerveau joueur » d'essayer de gagner à travers de trop nombreux dialogues ou cinématiques.

Prendre soin des personnages

Compte tenu de l'importance des personnages en termes de gameplay et d'intérêts financiers autrement plus importants, il ne faut donc pas s'étonner du plus grand soin qui est apporté à la gestion de l'image des personnages célèbres et de leur utilisation. J'ai été d'ailleurs personnellement surpris en découvrant qu'il existe toute une société, appelée Warpstar, consacrée à la gestion de Kirby. Warpstar a collaboré avec HAL Laboratory, par exemple, dans la fabrication de « Kirby's Epic Yarn » pour la Wii. Dans ce cas précis, les concepteurs, de façon assez surprenante, ont pu passer trois longs mois à perfectionner l'apparence de Kirby.

Cette attention particulière aux personnages peut également être vu dans des entretiens avec l'équipe qui a réalisé « Zelda : Skyward Sword ». Les concepteurs y débattent même du travail pour faire les ennemis kawaï, afin de leur donner « un peu d'humanité », pour au final faire que vous les appréciez alors même que vous voulez les vaincre.

Je tiens à souligner ici que kawaï et sonzaikan ne sont pas inséparables, mais ils vont souvent de paire dans le cas du Japon. Kawaï est certainement une part importante de ce qui donne l'impression aux personnages japonais d'être vivant et réel, mais j'imagine qu'il existe d'autres approches pour rendre également vos personnages sonzaikan.

La troisième partie en français est disponible ici : Personnages et création d'univers : Analyse de la force des jeux japonais (3/4)


Personnages et création d'univers : Analyse de la force des jeux japonais (1/4)

Posted by , in Game Design 21 July 2013 - - - - - - · 698 views

Cet article est une traduction autorisée de la première partie de celui-ci : Characters and Worldbuilding: Analyzing the Strength of Japanese Games (Zack Wood)
Toutes les illustrations qui ne sont pas celles de l'auteur relèvent du droit à la courte citation (article L.122-5 du Code de propriété intellectuelle)

Entre avril 2010 et mai 2011, j'ai eu la chance d'étudier les mangas (bandes dessinées japonaises) et la conception de jeux vidéo à l'une des principales écoles d'art du Japon, l'université Kyoto Seika. Au total, j'ai vécu, travaillé et étudié au Japon environ quatre ans, et dans cet article j'aimerai partager ce que j'ai appris là-bas sur la conception de jeux.

Tout a commencé au lycée quand un ami m'a fait découvrir les animes (films d'animation japonais) par le biais de « Princesse Mononoke » du Studio Ghibli. Les personnages et les créatures ne ressemblaient à rien de ce que j'avais pu voir auparavant, et rapidement j'ai commencé à lui en emprunter davantage. De là, j'ai commencé à jouer aux jeux vidéo japonais, en particulier aux jeux de rôle (RPG) de l'époque de la Super Nintendo.

Le premier auquel j'ai joué, choisi au hasard, était curieusement intitulé « Chrono Trigger ». Je ne savais pas que j'avais choisi l'un des jeux les plus vénérés de tous les temps, et, bien sûr, je suis devenu accro. Tout comme mon intérêt pour les films d'animation du Studio Ghibli, je fus enchanté par le niveau d'imagination des RPG japonais.

Un Trésor Négligé

Au bout d'un moment, je suis tombé sur « Paladin's Quest », l'un des RPG les moins connus de la Super Nintendo, sorti aux Etats-Unis en 1993. Cependant, j'ai presque failli passer à côté du jeu en raison de son nom générique. Je ne sais pas comment les traducteurs se sont arrêtés sur « Paladin's Quest » puisque le jeu n'a rien à voir avec les paladins ; au Japon, on parle de l'excitant et du mystérieux "Lennus : Mémoire de la Machine Ancienne."

Paladin's Quest s'est avéré être, selon moi, le jeu le plus original et le plus inoubliable d'une époque qui était déjà débordante d'innovations. La palette de couleurs pastel et le style visuel simplet semblent avoir refroidi beaucoup de joueurs, mais pour ma part cette nouveauté n'a fait qu'accroître mon attirance ; la musique envoûtante, la vie végétale venue d'ailleurs et le schéma narratif, le tout réunis pour créer une expérience unique et très attachante.







Posted Image
Fig. 1 « L'Ecole de Magie », première zone de Paladin's Quest

Pour l'Amour du Jeu

Quand j'ai appris que Paladin's Quest avait eu une suite, « Lennus II : Les Apôtres des Sceaux », j'avais hâte d'y jouer ; mais le jeu n'a jamais été publié en anglais, et avec une ignorance totale du japonais, je n'ai même pas pu sortir de la première zone.

C'est pourquoi, en première année de collège, je me suis inscrit dans une classe de « japonais intensif » qui a débouché sur un voyage de quatre semaines à l'Université de Kyoto Seika. (À l'époque, la Kyoto Seika venait de faire les gros titres pour être la première école au Japon à offrir un diplôme spécialisé dans les mangas.)

J'y ai passé un très bon moment, ce qui m'a amené à m'inscrire à l'Université de Stanford afin de me spécialiser dans les études sur l'Asie Orientale et à continuer à étudier le japonais. Dès que j'ai obtenu mon diplôme, j'ai déménagé au Japon pour enseigner l'anglais avec le programme Japan Exchange Teaching (JET) (NdT : littéralement "programme japonais d'échange sur l'enseignement").

Ce fut l'époque où j'ai découvert le blog de Hidenori Shibao, le réalisateur de la série Lennus (Paladin's Quest et sa suite), qui a également travaillé sur Legend of Legaia, un RPG sur PlayStation. Après avoir fait revérifier ma grammaire par un ami japonais, je lui ai envoyé un message, et nous avons fini par échanger un certain nombre de courriels au sujet des jeux Lennus et de la conception des jeux en général.

Retour à la Kyoto Seika

Après deux ans par le biais de JET, je voulais revenir à ce qui m'avait attiré au Japon en premier lieu - la pop culture comme les jeux vidéo et les animes. J'ai toujours aimé dessiner, et je me suis souvenu de la Kyoto Seika et de leur programme de manga lors de mon voyage d'étude à l'étranger. C'est comme ça que j'ai fini par y retourner en 2010 en tant qu'étudiant-chercheur dans la section Manga. (en tant qu'étudiant-chercheur j'avais suivi des cours en tant étudiant régulier, mais sans possibilité de validation ou de diplôme à la fin.)

Bien que les écoles japonaises aient tendance à être strictes sur le fait de suivre des cours en dehors de votre section, j'ai pu assister à quelques cours magistraux dans une classe de Game Design avec Kenichi Nishi, le directeur du culte et célèbre « Chibi-Robo » ! (Il était aussi un des concepteurs des environnements de Chrono Trigger.) Nishi nous a emmené tout au long des étapes du développement de l'idée jusqu'à la réalisation, et de cette façon les étudiants se sont constitués en groupes afin de créer leur propre jeu au cours d'un semestre.

Grâce à tout cela, j'ai appris beaucoup de choses sur l'approche japonaise de la pop culture comme les mangas et les jeux vidéo, et je tiens à partager ce que j'ai appris, en me concentrant sur deux points : les personnages dans le style japonais et leur fonction dans les jeux vidéo, et le sekaikan, un terme souvent utilisé en référence aux jeux vidéo et d'autres médias.

La deuxième partie en français est disponible ici : Personnages et création d'univers : Analyse de la force des jeux japonais (2/4)


Conseils généraux sur le processus de développement solo d'un jeu (5/5)

Posted by , in Développement 19 July 2013 - - - - - - · 504 views

Cet article est la traduction de la cinquième partie de celui ci : General Tips on the Process of Solo Game Development (Macoy Madson)
La quatrième partie en français est disponible ici : Conseils généraux sur le processus de développement solo d'un jeu (4/5)

Cinquième étape: Finalisation !

Si vous en êtes rendu à ce point, vous êtes prêt à terminer votre jeu ! Les derniers 10% de développement ressemblent souvent à 90%, mais il ne faut pas abandonner ! N'oubliez pas que même un jeu à "90% terminé" est un jeu qui ne vaut rien ! La finition c'est avant tout vous pousser à travers le Mur et faire en sorte que tous ces bouts épars soient rattachés entre eux. Rappelez-vous jusqu'où vous êtes parvenu, et regardez la distance qu'il vous reste à parcourir. Ce n'est pas si loin que ça !

Pendant que vous apportez la touche finale et packagez le tout pour la première fois, testez sur autant de plateformes que possible. Vous devez tout tester, même vos fichiers "lisezmoi" (une fois mon caractère de nouvelle ligne était de type Unix et cela ne fonctionnait pas sur les ordinateurs Windows Posted Image) !

Il est recommandé que le cheminement qu'un joueur emprunte pour découvrir votre jeu et pour ensuite y jouer soit le plus court et le plus direct possible. Abaissez toutes les barrières que vous pouvez, et faites en sorte que votre jeu soit facile à juger. La praticité est essentielle à ce stade.

Si vous vous demandez pourquoi votre jeu ressemble toujours à un projet "amateur", c'est parce qu'il n'est pas assez fignolé. De très petites choses, comme les menus ou les écrans de chargement, peuvent faire une grande différence sur les impressions du joueur envers votre jeu. Rappelez-vous, la première chose que le joueur verra sera l'une de ces choses, il est donc très important de bien les faire. Étudiez les jeux « professionnels » et les raisons pour lesquelles ils ont l'air plus « professionnels ». Le fignolage est en grande partie une question de feeling, ce qui fait qu'il est juste nécessaire de pratiquer pour y arriver, mais le temps supplémentaire en vaut la peine.

Si vous êtes extrêmement gêné par la « qualité » de votre jeu ou si vous savez qu'elle a de sérieuses lacunes, corriger autant que vous le pouvez et publiez-le quand même. Terminez votre projet, apprenez de vos erreurs et faites mieux pour le prochain jeu.

Conclusion

Vous venez de faire un jeu ! Félicitations ! Maintenant, faites en à nouveau, évitez seulement les erreurs qui ont causé du tort à la qualité de votre dernier jeu.

J'ai couvert beaucoup d'aspects, donc je vais juste faire un bref rappel de chaque étape :

Idée
  • Le prototypage reste essentiel
  • Fixez-vous un objectif et des contraintes bien définies
  • Donnez-vous un peu de temps
  • Trouvez l'élément central sur lequel repose votre idée
  • Vous allez mourir, alors faites en sorte qu'elle ait de l'importance !
Prototypage
  • Soyez ouvert à l'échec
  • Faites-le aussi rapidement que possible, et rendez votre code le plus pratique possible
  • Utilisez les outils que vous connaissez déjà
  • Ayez une question bien définie à résoudre
Itération
  • Faites du code de haute qualité
  • Allez des éléments les plus importants au moins importants
  • Expérimentez, mais ne perdez pas de vue l'élément de base
  • KISS / Optimisez l'usage / PAS d’optimisation prématurée
  • Ajoutez le code réutilisable à votre bibliothèque
  • N'ajoutez que les fonctionnalités à votre bibliothèque qui rendent le développement plus rapide ou qui ajoutent des possibilités (ne codez pas quelque chose pour améliorer la vitesse, sauf si vous en avez besoin)
  • Ne pas abandonnez ou renoncez à un projet à ce niveau !
Tests
  • Testez tôt, testez souvent
  • Diversifiez vos les origines de nos testeurs
  • Remplacez vos testeurs trop utilisés
  • Posez des questions
Finalisation
  • Persistez
  • Testez, testez, testez !
  • Rendez facile la découverte de votre jeu
  • Fignolez
  • Publiez-le et apprenez de vos erreurs
Merci d'avoir pris le temps de lire ça ! J'espère que je vous ai aidé !








PARTNERS