Revenir au portfolio

[Game Concept] Graybox

Concept réalisé au cours de la 2ème année (2016) de formation au Game Design à Aries.

Graybox est un jeu de gestion / survie qui prends place dans un bunker désaffecté. Le joueur a en charge un groupe de citoyen dont il devra développer la communauté, formée de membres disposant de traits de caractères influençant leurs relations.

 

 

En début d’année, nous avons eu un concept de jeu vidéo à présenter dans le but de les sélectionner pour le projet de fin d’année. Bien qu’il n’ait pas été sélectionné, j’ai beaucoup aimé réaliser ce concept et les recherches effectuées dans ce cadre m’ont beaucoup apportée.

Description du concept

Graybox-presentation (2)Graybox est inspiré de Fallout Shelter, mais avec des intentions de jeu différentes. Je souhaitais que les mécaniques soient davantage axées survie que city builder et que l’attention du joueur soit capté par une micro-gestion constante de ses citoyens.

L’écran de jeu présente une vue de côté d’un bunker en 3D, chaque salle occupant un espace définie sous une forme de grille. Le joueur interagit avec les éléments du décor, mais ne contrôle pas directement les citoyens : il peut leur assigner des tâches où compléter leur arbre de talent, mais les personnages effectuent leur routine dans le bunker et incluent les actions du joueur dans leur trajet.

Citoyens

Graybox-presentation (1)Les citoyens sont la ressource principale du joueur. Ils permettent de produire des richesses par le travail effectué dans les salle du bunker, mais le joueur doit porter une attention constante à leurs différents indices :

  • Traits de caractère : Chaque trait dispose d’un niveau de maîtrise qui augmente l’effet produit. Ils influencent le bonheur, la santé et le niveau de métier du citoyen. Ceux-ci peuvent avec des effets positifs, négatifs ou cumuler les deux.
  • Niveaux de métier : Chaque activité dispose d’un niveau de maîtrise que le citoyen peut acquérir. Un métier peut être effectuée plus efficacement par un citoyen disposant d’un niveau de métier élevé. À l’inverse, un citoyen non formé peut causer davantage d’accidents ou augmenter drastiquement le niveau d’usure de la salle.
  • Santé / bonheur : Influencent directement la production, et son directement influencé par les traits de caractère.
  • Production : influencé par les facteurs ci-dessus et détermine la production apporté par son activité.

La production d’un citoyen dépends de ses traits de caractère. Les effets peuvent varier : un citoyen bosseur et un citoyen fainéant vont baisser le rendement, tandis que deux traits identiques cumulés procure un bonus de production.

Les citoyens peuvent acquérir des traits de caractère par le type d’activité effectué (ou inactivité), mais aussi par les influences de leurs collègues. En effet, des citoyens disposant de traits communs vont mutuellement augmenter le niveau de ces traits tandis que des citoyens disposant de traits opposés vont graduellement réduire le niveau de leur traits (si un citoyen dispose d’un indice de 50 dans un trait de caractère tandis que son collègue dispose d’un indice de 25 dans un trait opposés, les valeurs des deux indices seront de 25 et 0 au bout d’un certain temps).

Graybox-presentation (3)Salles

Les salles permettent de produire les ressources nécessaire aux joueur : Energie, Eau, Nourriture et Matériaux.

La productivité d’une salle est influencé par différents indices :

  • Le niveau : chaque salle dispose d’un arbre de talent augmentant le niveau de la salle à chaque amélioration. Un niveau plus élevé améliore la productivité ou le type de production.
  • Usure : augmentant avec le temps, une salle en mauvaise état favorise les accidents et baisse la production.
  • Le nombre de travailleurs : et bien entendu, le niveau de métier exercés par les citoyens

 

Recherches

Afin d’évaluer la faisabilité du projet, j’ai entrepris de me former correctement à Unity.

Mes recherches ont notamment portés sur les standards de conception (Managers, architectures, nomenclatures, standards de programmation…), sur les moyens de communications inter-scripts (Lien symbolique, GetComponent, SendMessages…), ou encore sur l’UI et la gestion de la camera, outre les innombrable recherches de petites features.

J’ai testé différentes méthodes pour initialiser le bunker et j’ai retenu une solution qui me semblait élégante :

  • Chaque type de salle hérite d’une classe mère qui regroupe les caractéristiques communes
  • Les salles sont instanciées sur une grille suivant un tableau remplis à l’avance (avec pour but de le générer de manière procédural)

J’ai ainsi pu établir une base du bunker, avec des salles produisant des ressources précises dans le temps.

J’ai du mettre un terme à ce prototype lors des sélections de projet, mais la préparation effectuée m’a grandement servi par la suite.