Mousey (projet en cours)

Published by

on

Réalisé en C++ avec SDL

Projet personnel de framework de jeux. Le but est de proposer un moyen simple de programmer des jeux en utilisant un langage de script (Squirrel dans ce cas là).

Code source du projet sur Github

Mousey est un projet personnel de framework de jeux permettant à l’utilisateur de programmer des jeux en Squirrel. Il s’agit ici de proposer une solution la plus simple possible permettant de créer des jeux en pur code.

La réalisation de ce projet a été fait en s’inspirant d’autres frameworks déjà présents (Löve2D ou Monogame pour ne citer qu’eux). Il a donc fallu que je propose des solutions supplémentaires pour me démarquer de ceux-ci. Voici les points les plus notables que je peux citer parmi les solutions supplémentaires que ne proposent pas les autres frameworks :

  • Fonctions simples pour vérifier les appuis ou relâchements de touches du clavier ou de la souris (Löve2D les proposent sous la forme d’un callback à définir soi-même)
  • Callback sur la mise à jour de la physique en plus de celle sur l’état de jeu
  • Compilation du projet avec SCons afin de faciliter le processus de compilation

Actuellement, le framework ne permet que la création de jeux simples en 2D et avec gestion de l’audio pour jouer des sons. D’autres fonctionnalités sont prévues, comme le streaming de musiques, l’implémentation du moteur physique Chipmunk, ou la gestion des manettes. La documentation est également en cours de rédaction pour apprendre à utiliser le framework et préciser comment j’aimerais que celui-ci soit créé.

Plusieurs modules ont été mis en place pour le framework, et d’autres sont à prévoir. Voici une liste des modules qui ont été implémentés à l’heure où j’écris cette présentation :

  • Audio : Permet de gérer les sons, et bientôt les musiques. On peut les charger depuis un fichier, les jouer, les mettre en pause, les stopper, et permettre le bouclage.
  • Graphics : Permet de gérer l’affichage des formes primitives et des textures. On peut dessiner des textures, des rectangles, des cercles, des lignes, et du texte.
  • Keyboard : Permet de gérer les entrées clavier. On ne peut ici que vérifier si une touche a été pressée, relâchée ou maintenue.
  • Math : Permet de réaliser des opérations mathématiques qui ne sont nativement pas pris en charge par Squirrel (comme les opérations sur les vecteurs ou les rectangles).
  • Mouse : Permet de gérer les entrées souris. On peut vérifier si une touche a été appuyée, relâchée ou maintenue, ainsi que regarder la position du curseur de la souris.
  • Viewport : Permet de gérer la fenêtre principale, et bientôt les fenêtres secondaires. On peut y regarder la taille et la position de la fenêtre.

D’autres modules sont prévus à l’ajout, dont en voici une liste non-exhaustive :

  • Network : Permet de créer et gérer les connexions réseaux.
  • Joystick : Permet de gérer les entrées et connexions manettes.
  • Physics : Permet de réaliser des opérations sur le moteur physique du framework.

Étant un projet personnel, je suis le seul à travailler dessus. Néanmoins étant donné qu’il est devenu open source, chacun peut participer à l’amélioration de ce framework afin de rendre celui-ci de plus en plus performant.

Laisser un commentaire