OUT OF HERE – Development log – 1

Lors de la compétition Ludum Dare du mois d’avril dernier, je m’étais mis en tête de réaliser quelque chose qui trancherait avec ce à quoi je me suis habitué : un jeu en 3D. Même si j’ai déjà par le passé eu l’occasion d’approcher différents moteurs 3D, ce que j’avais obtenu n’avait jamais été plus que quelques vagues expériences de base. J’ai donc décidé de saisir l’opportunité que m’offrait Ludum Dare pour créer mon jeu à l’aide de Panda3D, un moteur open source. Je savais qu’il me permettrait de coder un jeu entier tout en Python, et j’avais déjà bien en tête les principes de fonctionnement du moteur.

Le résultat de ces 48 heures fut un jeu dans la catégorie des « autorunner », à la manière de Canabalt. Je suis assez satisfait du résultat obtenu (le jeu a fini 13ième dans la catégorie Graphismes, et 40ième au classement général), mais il était très loin du jeu final que j’avais en tête. Et le sujet de ces journaux de développement sera le suivi du progrès de OUT OF HERE du stade de prototype à celui de jeu complet.

OUT OF HERE as you can play it right now.

Depuis, j’ai commencé à réorganiser le code, et à l’étendre afin d’introduire certaines fonctionnalités plus avancées. Le jeu n’a pas encore atteint à nouveau un état jouable, mais les progrès en ce sens sont réguliers.

  • Le premier changement important est en rapport avec la façon de contrôler le jeu. Dans le prototype, seules les flèches directionnelles étaient mises à contribution afin de laisser le joueur bouger de droite à gauche, sauter et glisser en évitant les obstacles. Cela était suffisant, le jeu n’offrant comme unique trajectoire qu’une ligne droite. Si je compte bien conserver la mécanique de base des autorunner, à savoir une course automatisée, je compte proposer des environnements plus ouverts, ce qui implique un autre schéma de contrôles. Pour l’instant, le jeu utilise un système « classique » de jeu à la première personne : les touches ZQSD pour le mouvement, et la souris pour orienter la vue. Cette configuration sera évidemment soumise à des changements une fois la course automatique réintroduite, mais pour l’instant elle me permet d’aisément naviguer à travers les…

Look at the magnificent buildings with the new control scheme!

  • …niveaux non-linéaires. Le code génère à présent des niveaux aléatoires qui présentent des tournants et autres croisements. La méthode employée se base sur la mise bout-à-bout de petits segments indépendants, le plan global étant généré à partir d’un ensemble de rectangles de tailles choisies aléatoirement. C’est une première façon relativement sommaire de générer les niveaux, mais elle suffit pour un premier temps. Ci-dessous, 2 exemples de niveaux générés par le code actuel :

Randomly generated levels.

Another level.

  • La troisième fonctionnalité principale est une limitation de la distance de rendu. Pour conserver une vitesse d’affichage correcte, le nombre de segments du niveau affiché est limité à une région définie autour de la position du joueur. Au début, je me contentais d’afficher les éléments proches et directement connectés à celui sur lequel le joueur se trouvait actuellement, mais j’ai constaté que cela réduisait le sentiment de profondeur que donnait un affichage simple de tous les segments proches du joueur. La distance est donc maintenant le seul facteur pris en compte pour déterminer les segments affichés et ceux qui ne le sont pas.

Pour l’instant, le jeu présente toujours des graphismes très sommaires, principalement car le filtre utilisé dans la version du Ludum Dare n’a pas encore été réactivé. En ce qui concerne les plans futurs, la liste de mes priorités ressemble à ceci :

  1. Empêcher le joueur de traverser les bâtiments (c’est pratiquement fait, mais j’ai pensé à une manière plus intelligente et plus générale de le faire, les détails seront surement dans le prochain journal.)
  2. Ajouter des segments spéciaux marquant le départ et la fin du niveau, ce qui permettra d’avoir un début et une fin au gameplay.
  3. Réintroduire les obstacles et la course automatique. Une fois cela fait, je compte publier une nouvelle version. Le jeu sera encore très loin de mon objectif, mais au moins il sera à nouveau jouable.

Si l’on voit plus loin, la suite consistera surement en l’introduction de nouvelles mécaniques de jeu. Par exemple via de nouveaux mouvements ou types d’obstacles. Les graphismes vont également demander pas mal de travail, et figureront donc surement à l’ordre du jour. Merci pour votre attention, et à la prochaine fois !

The graphics are pretty bad, but they get the job done for now.

Category: Navigation, OUT OF HERE Comment »


Leave a Reply



Back to top

     

404