Créer un jeu avec GameMaker Studio 2

Introduction

Nous allons voir comment créer un jeu en Drag & Drop avec GameMaker Studio 2, en seulement 9 parties.

  1. Installation de GameMaker Studio
  2. Création d'un projet
  3. Les mouvements
  4. Les shoot
  5. Gestion des ennemies
  6. Ajout de texture
  7. Afficher un score
  8. Ajout d'effets sonores
  9. Spawn des ennemies

 

Installation de GameMaker Studio

Une version d'essai de l'IDE, uniquement sous Windows, est disponible gratuitement pour permettre d'explorer toutes les fonctionnalités proposées. La version d'essai aura toutefois des limites sur le nombre de ressources qu'un seul projet peut contenir et ne permet pas l'exportation d'exécutables finaux.

Pour le télécharger allez sur cette page, vous devrez obligatoirement vous enregistrer. Il n'y a rien de particulier à faire durant l'installation, laissez toujours les paramètres par défaut.

 

Création d'un projet

Une fois votre IDE installer et lancer, il ne nous reste plus qu'a créer un nouveau projet, pour cela rien de plus simple il suffit de faire "New" et "Drag and Drop" et de créer son projet, toutefois pour ce tutoriel nous allons procéder autrement, juste après.

 

Afin de pouvoir au mieux s'exercer, GameMaker met à disposition des projets tutoriels contenant déjà les sprites, ce qui va être un gain de temps.

Pour y accéder cela ce fait depuis l'écran d'accueil, nous devons nous rendre dans "Tutorials", puis choisir "My First Game - DnD" et enregistrez votre nouveau projet dans le répertoire de votre choix.

 

Notre projet maintenant créé, nous nous retrouvons devant l'ouverture de notre IDE, avec notre liste de ressources et notre workspace.

 

Les mouvements

Nous allons voir dans cette partie comment faire entrer en mouvements notre avatar, mais pour cela nous devons d'abords le créer, il nous faut donc créer un nouveau sprite.

Pour créer un nouveau sprite l'on doit faire un clique droit sur "Sprites" puis choisir "Create". Cliquez ensuite sur "Import", et allez dans "TutorialResources>Images", choissisez "spr_player" et choisissez comme point d'origine "Middle Centre".

 

Pour que notre player puisse rentrer en mouvement nous devons créer un objet qui gérera les intéractions utilisateur. Pour ce faire, faites un clique droit sur "Objects" puis "Create", et sélectionner votre sprite "spr_player".

 

Cliquez sur "Add Event", "Key Down" puis "Up". Il faut maintenant dire a votre événement ce qu'il doit faire, allez dans "Movements" et choisissez "Jump To Point", rentrez des coordonnées pour que votre objet se déplace.

 

Je vous laisse ajouter les trois autres mouvements directionnels à partir de se que l'on vient de voir là.

Nous allons faire en sorte que notre player puisse tourner sur lui même en fonction de la direction de la souris. Il suffit de créer un nouvel événement, mais cette fois ci nous choisirons "Step", nous prendrons "Set Point Direction" qui se trouve dans "Movements", et juste en dessous nous glisserons "Set Instance Rotation" qui est dans "Instances".

 

Nos différents mouvements maintenant ajouté, nous voudrions les tester, allez dans le répertoire "Rooms" de vos ressources, vous y apercevrez une "room0", double cliquez dessus, et faites un glissez déposer de l'objet player dans la room, maintenant pour lancer le jeu et le tester, appuyer sur le bouton "play" ou appuyer sur la touche "F5".

 

Les Shoot

A partir de maintenant, les étapes les plus fréquentes que vous aurez à faire son la création de sprites, d'objet et de leur événements.

Donc comme vous l'aurez compris, nous allons devoir créer un sprite, pour cela reprenez le même procéder que pour le player, et choisissez d'importer "spr_bullet".

 

Nous allons commencer par nous occuper  de notre nouvel objet "obj_bullet". Ajoutons lui un événement "Create", et mettais les informations de direction de la souris et ajoutez "Set Speed", afin de donner une vitesse défini à votre tir.

 

Notre tir est maintenant prêt, il nous reste plus qu'a modifier notre player pour qu'un événement le génère.

Pour ce faire, ajoutez l'événement "Create" et créé une nouvelle variable ("Assign Variable") "cooldown", qui sera un intervalle de temps durant lequel le player ne pourra pas tirer.

 

Modifier ensuite l'événement "Step", en ajoutant un les éléments comme ci-dessous, cela aura pour effet, lorsque l'utilisateur fera un clique gauche et si "cooldown" est inférieur ou égale à 0 alors nous créons une nouvelle instance de notre objet "obj_bullet", notre player aura donc tirer.

 

Gestion des ennemies

Créons maintenant nos ennemies, toujours pareil, on crée notre sprite "spr_enemy", on crée notre objet "obj_enemy" et on commence à y ajouter nos événements.

Nous allons ajouter un événements "Create" et initialiser deux variables, "hp" et "spd" (pour la vitesse), comme suis.

 

Créer ensuite un événement "Step" comme ci-dessous, cela dira à nos ennemies que si un player existe il devra se diriger vers sa position à la vitesse qui lui aura était défini.

 

Vous pouvez ajouter votre objet "obj_enemy" dans votre "room0" afin de vérifier et tester si cela correspond à vos attentes.

 

Ce qui serait intéressant maintenant, serait que le player puisse éliminer les ennemies  et inversement.

Pour ce faire, modifions notre événement "Step" de notre objet "obj_enemy", pour que si les "hp" de l'ennemie est inférieur ou égal à 0, l'instance de notre objet "obj_enemy" devra être détruite.

 

Il nous faut également ajouter un nouvel événement a notre objet "obj_bullet", un événement "Collision" qui prend "obj_enemy", et qui enlève -1 de "hp".

 

Vous pouvez maintenant éliminer vos ennemies, mais mettons tous ça sur un pied d'égalité en leur donnant une chance de vous avoir également.

Il faudra donc modifier votre objet "obj_player", en y ajoutant l'événement "Collision" avec "obj_enemy" pour que le jeu redémarre si un ennemie vous touche.

 

Vous pouvez également modifier vos sprites pour que les collisions soit prises en comptes à partir de certaines surfaces comme présenté ci-dessous, en modifiant "Collision Mask".

 

Ajout de texture

Pour les textures, il faudra créer de nouveau sprites, "spr_background" par exemple, et y importer "tiles2" (comme pour les autres sprites).

 

Créer ensuite un "Tile Sets", qui prend le sprite "spr_background", et mettez "Tile Width" et "Tyle Height" à 128.

Dans "Room Editor" cliquez sur "Create New Tile Layer", une nouvelle fenêtre s'ouvre alors, choisissez le "til_background".

 

Il ne vous reste plus qu'a placer les textures où bon vous semble.

 

 

Afficher un score

Nous allons voir comment afficher le score de notre partie, pour ce faire créer un objet "obj_score" et ajoutez l'événement "Create" et assignez une variable qui contiendra votre score.

 

Créez maintenant un nouvel événement "Draw", ajoutez un "Draw Value" est renseignez le avec la variable qui contient le score. Glissez ensuite votre "obj_score" dans votre room afin qu'il s'affiche.

 

Un texte affichant votre score est maintenant disponible, nous allons maintenant voir comment faire en sorte que ce score augmente lorsque l'on élimine les ennemies. Nous allons modifier notre objet "obj_enemy" afin d'augmenter le score avant  chaque destruction d'instance.

 

Ajout d'effets sonores

Pour ajoutez un effet sonore, il faut tous d'abords créer un nouvel élément dans "Sounds" et choisir le fichier son souhaité.

 

Une fois notre son créé et ajouté à notre projet, nous allons modifier "obj_enemy" afin de déclencher celui ci quand un ennemies est éliminé.

Il nous suffit de rajouter juste avant la destruction de notre objet, "Set Audio Volume" et "Play Audio" en y joignant notre "snd_death". Nos ennemies provoque maintenant un son lors de leur élimination.

 

Spawn des ennemies

Pour commencer cette partie, il vous faut d'abords supprimer tous les objet "obj_enemy" que vous avez pu ajouter a votre room, de façon a ne voir plus que votre player.

 

Créons un objet "obj_enemyspawn" qui prend comme sprite notre "spr_enemy", ajoutez un événement "Create" avec "Set Instance Scale" et un événement "Step" qui gérera l'apparition des ennemies, comme ci-dessous.

 

Ajouter un nouvel objet "obj_spawner", qui aura pour but de faire spawn les ennemies tout au long du jeu. Votre objet ne prendra pas de sprite en compte, vous lui ajouterait un événement "Create" qui contiendra un "Set Alarm Countdown".

 

Créez ensuite un événement "Alarm" avec un "Create Instance" qui prend votre objet "obj_enemyspawn" et des coordonnées random de votre room, et un "Set  Alarm Countdown" qui réinitialisera votre alarme pour l'apparition d'un nouvel ennemie. Il ne vous reste plus qu'a glisser votre objet "obj_spawner" dans votre  room, vous verrez alors des ennemies apparaître au fur et à mesure.

 

Vous avez maintenant un jeu fonctionnel et les clés en main pour faire des jeux qui vous ressemble, il ne vous reste maintenant plus qu'une limite, celle de votre imagination.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *