Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Cave est conçu pour être simple à apprendre, mais il comporte tout de même quelques concepts importants que vous devez comprendre.

Cette leçon explique les termes clés que vous verrez partout dans l'éditeur : scene, entity, component, asset, entity template, transform, rigid body, character component, Python component, logic brick, timeline et runtime.

Ceci est une vue d'ensemble à haut niveau, sans entrer dans les détails spécifiques de chaque terme, mais il est important de commencer à améliorer votre compréhension du moteur. Une fois ces mots compris, le reste du moteur devient beaucoup plus facile à appréhender.

Le Panorama Général

La plupart des projets Cave sont construits à partir de quelques idées répétées :

Concept Signification Simple
Scene Un niveau, un menu, une zone de test ou un espace jouable.
Entity Un objet à l'intérieur d'une scene.
Component Une fonctionnalité attachée à une entity.
Asset Contenu projet réutilisable stocké dans l'Asset Browser.
Entity Template Une configuration d'entity réutilisable, similaire à un prefab.

Par exemple, imaginez une caisse en bois dans un niveau :

image.png

  • Le niveau est une Scene.
  • La caisse placée dans le niveau est une Entity.
  • La position de la caisse est stockée dans son Transform.
  • Le modèle visible est géré par un Mesh Component.
  • La collision peut être gérée par un Rigid Body Component.
  • Le modèle, le material et la texture utilisés par la caisse sont des Assets.

Si vous voulez réutiliser cette configuration de caisse dans plusieurs scènes, vous pouvez la sauvegarder comme un Entity Template.

Scene

Une scene est une collection d'entities.

Les scenes peuvent être utilisées pour :

  • Des niveaux de jeu.
  • Des menus.
  • Des cartes de test.
  • Des salles de prototype.
  • Des espaces de cutscene.

Seule la scene active est éditée dans la vue 3D principale. Lorsque vous testez le jeu, Cave exécute la scene comme gameplay plutôt que de se limiter au contenu de l'éditeur.

Lors de l'exportation ou du test du projet en tant que runtime, les paramètres du projet déterminent quelle scene est utilisée en tant que scene de démarrage. Vous pouvez modifier cela en allant dans l’Settings Tab.

Entity

Une entity est un objet dans une scene.

Les entities peuvent être visibles ou invisibles. Elles peuvent être simples ou complexes.

Exemples d'entities :

  • Un personnage joueur.
  • Une porte.
  • Une caméra.
  • Une lumière.
  • Un déclencheur.
  • Un bouton UI.
  • Un point de spawn.
  • Un dossier utilisé pour l'organisation.

Une entity en elle-même est surtout un conteneur. Ce qu'elle peut réellement faire dépend des components qui lui sont attachés.

Component

Un component ajoute un comportement ou des données à une entity.

Au lieu d'avoir un seul type d'objet énorme pour chaque possibilité, Cave vous permet de construire des entities en combinant des components. C'est exactement ainsi que vous êtes censé construire les différents éléments de votre jeu, en composant les entities avec plusieurs types de components différents.

Par exemple :

Entity Components Possibles
Mur statique Transform, Mesh, Rigid Body.
Joueur Transform, Character, Camera, Python.
Porte Transform, Mesh, Rigid Body, Python ou Logic Bricks.
Lumière ponctuelle Transform, Light.
Bouton UI UI Element.

C'est l'une des idées les plus importantes dans Cave : les Entities sont des conteneurs. Les Components leur donnent des fonctionnalités.

Il est important de mentionner également qu'une autre façon de composer vos différents types d'objets est d'utiliser plusieurs entities dans la hiérarchie enfant des entities.

Nomination des Entities

Quand vous créez une nouvelle entity, Cave propose différents types de départ, comme Folder, Empty, Mesh, Point Light, Camera, UI Element, Text, et Button.

Ce ne sont pas des mondes complètement séparés. Ce sont des points de départ pratiques.

Par exemple :

  • Un Empty est une entity basique avec un transform.
  • Une entity Mesh est une entity préparée pour afficher un maillage.
  • Une entity Point Light est une entity prête à se comporter comme une lumière.
  • Une entity Camera est une entity prête à rendre une vue.
  • Un Folder est une entity principalement utilisée pour l'organisation.

Vous pouvez généralement ajouter, supprimer ou modifier les components plus tard, donc le type de départ est simplement un raccourci utile.

Transform

Le transform indique à Cave où se trouve une entity et comment elle est orientée.

Il inclut :

  • La position.
  • La rotation.
  • L'échelle.

Presque toutes les entities de la scene ont un transform car la plupart des objets doivent exister quelque part dans le monde. Lorsque vous déplacez, faites pivoter ou modifiez l’échelle d’une entity via le gizmo, vous éditez son transform. Quand une entity est enfant d’une autre entity, son transform est évalué par rapport à cette hiérarchie.

Asset

Un asset est un contenu projet réutilisable stocké dans l'Asset Browser. Il est important de mentionner que même si une entity est considérée en interne comme un Asset, un Asset n’est pas la même chose qu’une entity.

Par exemple :

  • Un asset de mesh est les données du modèle. Une entity mesh est un objet placé dans la scene qui utilise cet asset de mesh.
  • Un asset material définit l'apparence d'une surface. Une entity mesh peut référencer ce material.
  • Un asset de script Python contient du code. Un component Python peut utiliser ce script.

Cette séparation est puissante car un asset peut être réutilisé plusieurs fois. Si dix caisses utilisent le même material, modifier cet asset material met à jour toutes les caisses.

Entity Template

Un entity template est une configuration d'entity réutilisable. Regardez la capture d’écran ci-dessous. Les Entity Template Assets sont marqués d'une ligne verte sous leur vignette :

image.png

Si vous venez d’un autre moteur, vous pouvez penser à cela comme similaire à un prefab.

Un entity template peut stocker :

  • Une hiérarchie d’entities.
  • Des components.
  • Les réglages des components.
  • Des références à des assets.
  • Des entities enfants.

Cela est utile pour tout ce que vous voulez réutiliser :

  • Ennemis.
  • Collectibles.
  • Portes.
  • Décors.
  • Véhicules.
  • Widgets UI.
  • Objets de gameplay.

Au lieu de reconstruire le même objet encore et encore, vous le créez une fois comme entity template et placez des instances où cela est nécessaire.

Rigid Body

Un rigid body donne à une entity un comportement physique. Il est utilisé lorsque un objet a besoin de collision ou de mouvement physique.

Exemples :

  • Une caisse qui bloque le joueur.
  • Une balle qui peut rouler.
  • Une porte avec collision.
  • Un mur que le joueur ne peut pas franchir.

Les rigid bodies font partie de la physique du moteur. Vous les utilisez lorsque des objets doivent interagir physiquement avec le monde.

Character Component

Un character component est utilisé pour un mouvement de type personnage. C’est différent d’un rigid body classique parce qu’un personnage a généralement besoin d’un comportement spécial :

  • Marcher.
  • Glisser le long des murs.
  • Gérer les pentes.
  • Sauter.
  • Répondre aux contrôles du joueur.

Pour un joueur ou un PNJ, un character component est généralement un meilleur point de départ que d’essayer de faire se comporter un objet physique basique comme un personnage.

Quand nous parlons d’un Character Component dans Cave, nous faisons référence à sa physique Character Physics, pas à la logique spécifique au jeu (comme le mouvement, etc).

Tags et Propriétés

Les tags et propriétés vous aident à identifier et configurer les entities.

  • Un tag est une étiquette qui peut aider les scripts ou la logique à trouver et catégoriser des éléments.
  • Les propriétés sont des valeurs éditables exposées à l'éditeur. Elles vous permettent d’ajuster le comportement sans réécrire du code à chaque fois.

Par exemple, un ennemi peut avoir des propriétés telles que :

  • Vitesse de marche.
  • Santé.
  • Distance d’attaque.
  • Cible de patrouille.

Une bonne utilisation des propriétés facilite le réglage de votre jeu.

Les propriétés ne sont pas limitées aux Entities : les Scenes, Logic Bricks et autres Assets peuvent aussi en posséder.

Quand nous parlons de propriétés dans Cave, nous faisons spécifiquement référence aux propriétés accessibles via des dictionnaires Python dans le code. Elles sont presque toujours disponibles aussi dans l’Éditeur.

Python Component

Un Python component permet à une entity d'exécuter de la logique Python.

C’est utile lorsque vous voulez un comportement personnalisé, par exemple :

  • Ouvrir une porte.
  • Déplacer une plateforme.
  • Gérer les entrées du joueur.
  • Faire apparaître un objet.
  • Mettre à jour du texte UI.
  • Déclencher des événements.

Les Python components sont l’un des principaux moyens de programmer le gameplay dans Cave.

Python Code Component

Un Python Code component est utilisé lorsque le code est stocké directement dans le component au lieu d’être lié en tant qu’asset de script séparé. Cela peut être utile pour des tests rapides, de petits comportements ou des prototypes.

Pour des systèmes de gameplay plus larges, un asset de script Python séparé est généralement plus facile à organiser et réutiliser.

Logic Brick

Les logic bricks sont une façon visuelle de construire la logique. Elles sont utiles lorsque vous souhaitez un comportement sans écrire directement du code Python.

Si vous connaissez les Blueprints d’Unreal, les logic bricks appartiennent à une famille d’idées similaire : vous connectez la logique visuellement au lieu d’écrire tout en texte.

Elles sont particulièrement utiles pour créer toute sorte de logique sans nécessiter d’écrire du code Python. Par exemple, des événements de gameplay, des comportements d’objets, la connexion de systèmes, les déclencheurs, etc.

Vous apprendrez à les utiliser plus tard dans ce guide.

Timeline

Une timeline est un asset utilisé pour des séquences scénarisées. Les timelines peuvent animer ou déclencher des actions dans le temps.

Elles sont utiles pour :

  • Les cutscenes.
  • Les déplacements de caméra.
  • Les événements scriptés.
  • Les séquences de gameplay coordonnées.

Les timelines ne sont pas nécessaires à tous les jeux, mais elles sont utiles lorsque vous voulez que quelque chose se passe dans un ordre précisément scénarisé.

Important : Les timelines ne sont pas destinées à l’édition d’animations individuelles, comme la modification d’une animation de cycle de marche pour votre personnage. Dans ce cas, vous devez utiliser un logiciel DCC spécialisé, tel que Blender, puis importer ensuite dans Cave.

Player et Runtime de Jeu

  • Le Cave Editor est l’endroit où vous construisez le projet.
  • Le Cave Player est le runtime qui exécute le jeu.

Quand vous appuyez sur Play dans l’éditeur, Cave exécute votre scene en mode proche du jeu à l’intérieur de l’éditeur. Lorsque vous testez en standalone, Cave lance le jeu dans une fenêtre player séparée.

Le jeu final exporté fonctionne comme une build player/runtime, et non comme l'éditeur. Cette séparation est importante parce que certaines choses sont réservées à l'éditeur (pour que vous puissiez déboguer et/ou développer votre projet), tandis que d'autres font partie du jeu réel.

La Relation la Plus Importante

Si vous ne retenez qu'une seule chose de cette leçon, retenez ceci :

Une scène contient des entités, les entités contiennent des components, et les components utilisent souvent des assets.

C'est la base d'un projet Cave.