Signaler
Mist2D (Jeu vidéo)

Cet article n'est plus d'actualité, plus d'info ici ;).

Bonjour à tous ^^.

Je vais vous présenter mon projet personnel Mist.


Qu'est-ce que Mist ?
Pour créer un jeu vidéo aujourd'hui, il faut soit avoir des connaissances pointues en programmation, soit utiliser un logiciel type "Game Maker". La première approche offre un maximum de possibilités mais n'est pas à la portée de tout le monde. La seconde est plus accessible, mais les possibilités sont souvent très limitées.

Avec Mist, je souhaite réunir ces deux mondes. Mist sera un programme permettant de réaliser n'importe quel jeu 2D "classique" sans savoir programmer (jeu de plateforme, jeu de rôle, shoot em up, ...).

Mist utilisera un système d'extension, permettant à n'importe quel programmeur d'ajouter de nouvelles fonctionnalité à Mist.

Conceptuellement, Mist peut être vu comme une Super Nintendo. Chaque joueur devra installer Mist sur son ordinateur. Les équipes de développement créeront un jeu sous la forme d'un unique fichier, représentant la cartouche. Ces derniers peuvent se contenter des fonctions de bases de Mist. Dans ce cas, ils n'auront pas besoin de savoir programmer.

Mais s'ils en ressentent le besoin, ils pourront programmer des extensions qui seront directement incluses dans la "cartouche", pour ajouter de nouvelles fonctionnalité à Mist (ce qui se faisait à l'époque de la Snes en ajoutant des puces dans les cartouches).

A terme, les extensions les plus utiles seront intégrées directement dans Mist, pour qu'elles soient accessibles à tous.

De cette manière, j'espère pouvoir rendre le développement de jeux 2D accessibles au plus grand nombre, sans pour autant brider la créativité des développeurs.

Les supports
Mist est un projet particulièrement ambitieux. Les supports pouvant très rapidement changer, Mist doit être suffisamment bien conçu que pour pouvoir être porté facilement sur n'importe quel support.

Mist est un projet codé en C++, indépendamment des outils propres à un support spécifique. Cela permettra au projet d'être porté aisément sur tout support supportant le C++. Il n'est pas à exclure que je change de langage pour m'adapter à un support qui me tiendrait vraiment à coeur et ne supportant pas le C++ (ou pour lequel il y aurait une forte demande), mais ce n'est pas à l'ordre du jour.

Une version PC sera disponible à coup sûr (Windows/Mac OS/Linux). Une fois Mist arrivé à maturité, je considèrerais les supports "phares" du moment (comme iOS, Android, XBLA, PSN et WiiWare), mais je ne peut rien promettre à ce stade.

Mais avant d'envisager tout portage, je souhaite absolument avoir une première version complète sur PC, même si tout le développement est orienté pour le multi-support.

J'estime qu'une personne motivée peut adapter Mist sur le support de son choix en 3~4 semaines.

Mist, et après ?
Mistest né d'une envie: celle de créer mon propre jeu. Dans un premier temps, je me consacre entièrement au développement de Mist. Une fois que celui-ci offrira suffisamment de fonctionnalités, je commencerais à développer mon propre jeu en parallèle.

Son nom de code est Project Reality. J'ai dans l'idée d'essayer de le développer de manière coopérative, en vous sollicitant durant le développement, pour tester des mécaniques de gameplay par exemple.

Il me faudra sans doute constituer une petite équipe, car je ne sais ni dessiner, ni composer de musique. Mais ce n'est pas pour tout de suite.

Quand est-ce que Mist/Project Reality sort ?
Je ne peux pas vraiment donner de détail à ce sujet. C'est très difficile à évaluer. Idéalement, j'aimerais avoir une première version utilisable de Mist fin 2012, mais il est plus probable que cela ne soit le cas que pour mi-2013 (voir fin 2013 dans le pire des cas).

Lorsque Mist sera suffisamment mature, le développement de Project Reality commencera. Il sera probablement précédé de quelques petits jeux "pour se faire la main".

Le mot de la fin
Merci beaucoup de m'avoir lu, et j'espère que j'arriverai à mener à bien ce projet :D.

MAJ: Avancement
J'ai terminé la première phase du projet, celle qui me permettra de changer de support "facilement". J'ai également été en mesure d'inclure un bon nombre de fonctionnalités indépendantes du support.

Détails techniques:

Mist utilise 3 éléments définissant le support: un Display, des Speakers et des Gamepads. Il gère automatique la mémoire de ceux-ci, pour éviter tout problème aux programmeurs non-expérimentés. Chaque composant utilise le moins possible toute fonction dont l'implémentation est propre au support, dans le but de rendre le portage vers un autre support le plus simple possible.

Display:
L'écran est de résolution fictive 1600x900. Mist adapte automatiquement celle-ci en fonction du support, en utilisant les techniques suivantes: Letter Box, Pan & Scan et Strectched. De cette manière, les interaction avec l'affichage ne dépendent plus du support.

De plus, celui-ci gère également la 3D relief avec les différents modes d'affichage suivant: Side by Side, Cross eyed et Anaglyph.

Chaque élément graphique possède donc une profondeur (de 0 à 800). Il est également possible de contrôler l'intensité de cette 3D relief.

Speakers:
Le son peut être retransmis en fonction de sa position spatiale (tient également compte de la profondeur). Ainsi, un tir émis à gauche de l'écran aura un volume plus élevé à gauche qu'à droite.

J'ai également tenu compte du fait que l'objet émettant un son puisse se déplacer. Ainsi, si un projectile est tiré à droite de l'écran et se dirige progressivement vers la gauche, ce mouvement sera parfaitement retranscrit par les hauts-parleurs.

Gamepads:
Mist supporte jusqu'à 4 Gamepads connectés. Ils sont tous de type "Super Nintendo" (1 croix + 8 boutons). Ceci pourra évoluer à l'avenir. Chaque l'état de chaque Gamepad est mis à jour à chaque frame, et peut ensuite être consulté à loisir.

Derrière chaque Gamepad peut se trouver à peu près n'importe quoi: une vraie manette, un clavier, un joueur réseau, ...

Cette démo permet de tester les 3 composants. Il vous suffit de double-cliquer sur "Mist.exe". J'ai repris les éléments graphiques et sonores de "Metal Slug 3". Vous pouvez simuler un tir de Eri en appuyant sur la touche "D" (vous entendrez alors le coup de feu, l'intensité variant en fonction d'où se trouve Eri). Vous pouvez également déplacer la camera de gauche à droite en appuyant respectivement sur les flèches gauche et droite. La camera se recentre automatiquement. Vous pouvez quitter en appuyant sur la touche Espace.

Démo (plus disponible)

Ajouter à mes favoris Commenter (5)

Commentaires

Akten
Signaler
Akten
ah intéressant, et bien bon courage !
djidane535
Signaler
djidane535
Ce n'est pas incompatible. Mist a été conçu de telle sorte que je puisse choisir les librairies qui se trouvent en dessous. Au lieu d'utiliser une librairie X, j'utilise Mist et je mets la librairie X "derrière" Mist. Comme ça, si jamais je ne veux plus utiliser la librairie X (ou que je dois en changer pour telle ou telle plateforme), je peux le faire sans que ça n'ait le moindre impact sur le code du jeu.

C'est dans cette optique là que je conçois Mist, pour éviter au maximum les dépendances vis-à-vis d'une librairie particulière. Après si pour X raison tu veux mettre du Unity derrière Mist, rien ne t'en empêchera, mais Mist ne te l'imposera pas.
Akten
Signaler
Akten
tu es sur que tu gagnera pas du temps en prenant unity au départ et en codant successivement des bases de jeu type (shoot'em up etc...) que tu mettra en accès libre ?
djidane535
Signaler
djidane535
En quelque sorte, sauf que ça serait beaucoup plus axé jeu vidéo. Actuellement, il faut toujours recréer un "type de jeu" au dessus du moteur. Avec Mist, j'aimerais que ça soit disponible par défaut. Par exemple, si je veux faire un jeu de plate-forme, je définis juste la configuration des niveaux avec leurs ennemis, leurs comportements, ... Mais avec tout le reste qui est déjà pré-défini (gravité, scrolling, gestion manettes, effets graphiques/sonores, ...).

Comme ça, on ne recode pas 25x les même choses. Ca serait aussi une manière d'unifier tous les jeux "classiques".

Mais il y aura aussi un système d'extension pour permettre aux développeurs de faire des choses originales ou non-prévues de base (s'il n'y a pas de mode "shoot em up", un développeur pourra le créer pour son jeu).

Idéalement, on devrait pouvoir créer un jeu sans savoir programmer (via des fichiers de configurations ou une interface graphique par exemple). On aura donc accès à toutes les options de bases, mais on pourra aussi en ajouter en programmant des extensions.
Akten
Signaler
Akten
Salut, en fait tu voudrai faire un unity 2D c'est bien ça ?

Le gamer d'hier et d'aujourd'hui

Par djidane535 Blog créé le 27/05/12 Mis à jour le 01/03/15 à 14h25

Blog consacré à mes réflexions personnelles sur l'univers du JV, agrémenté de quelques tests et projets personnels.

Ajouter aux favoris

Édito

Bienvenue dans mon antre !

 

Je suis un jeune programmeur de 25 ans, amoureux du jeu vidéo depuis les années 90. J'aime tous les genres de jeux (ou presque) et j'adore débattre de tout et de rien sur notre média préféré !

Sur mon blog, vous retrouverez mes réflexions en rapport avec l'actualité ainsi que des tests ponctuels (bien que je sois assez en retard sur mon "calendrier gamer" :p).

 

Bonne visite ;).

 

Archives

Favoris