Exigences principales en matière de conception

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

La liste suivante fournit une vue d'ensemble des principaux exigences de conception technique que nous avons pensées au fur et à mesure que nous travaillions sur The Mystery of Duvall Drive . Pour plus d'informations sur le design visuel de ces éléments, voir le Mystery of Duvall Drive Showcase, qui met en évidence les fonctionnalités et les outils varios que nous avons utilisés pour créer l'environnement immersif.

Missions

Il existe plusieurs types de missions que les joueurs doivent résoudre pour progresser dans l'expérience, y compris la navigation d'une série de plates-formes tournantes jusqu'à ce que les joueurs puissent récupérer un itemspécial, ou trouver différents ingrédients dans un boîte à provisions étendue et les placer dans une marmite bouillante. Pour organiser le processus de script de création et de débogage, nous avons créé un cadre de mission et une version de

Structure de mission

Pour nous assurer que nous avons unifié chaque étape de la mission tout au long de l'expérience, nous avons conçu un simple framework de mission puzzle pour chaque mission qui comportait des crochets pour le début et la fin du puzzle, un endroit pour lire les données de configuration et un bouton pour terminer le puzzle pour les besoins de débogage. Pour plus de détails sur ce processus et ses paramètres, voir logique des missions.

AAAA

Lorsque les joueurs sont entrés dans des pièces spécifiques, nous voulions qu'ils interagissent avec des objets petits spéciaux appelés seaux pour déclencher des missions. Après qu'ils aient résolu la mission, nous voulions qu'ils prennent le sceau et le plaçaient dans un endroit prédéfini dans le foyer afin de pouvoir progresser dans le partieprincipal. Après qu'ils aient placé le sceau dans le bon end

Nous avons développé un système de simple attrape pour tenir un objet en attendant le bras droit du personnage.
Le salon où les joueurs doivent placer chaque sceau pour progresser dans l'expérience.

Pour implémenter cela, nous avons créé états de jeu , qui spécifieraient la période de temps pendant laquelle les joueurs pouvaient commencer le processus comme :

  • Recherche d'un sceau « corrompu » dans une chambre pour déclencher la mission.
  • Ramassez le "sceau restauré" lorsqu'ils résolvent la mission.
  • Placez le sceau dans le cercle de foyer.

Les états du jeu contrôlent en grande partie le flux de l'expérience et la façon dont les joueurs interagissent avec la narration de l'expérience . Pour plus d'informations, voir GameStateManager .

Chambres normales et corrompues

Nous voulions avoir deux états de six chambres dans la maison : un état normal et un état corrompu. Lorsqu'un joueur toucherait un sceau corrompu dans une chambre pour déclencher l'état corrompu de la chambre, l'environnement changerait dans une atmosphère plus sombre avec une lumière modifiée, des objets d'environnement et des effets spéciaux. Les joueurs devraient ensuite résoudre la mission pour retourner à l'état normal de la chambre.

L'état normal de l'étude
l'état corrompu de l'étude

Pour implémenter cela,

Version de débogage

Pour nous aider à déboguer périodiquement les missions, nous avons créé une version de l'expérience où nous n'aurions pas à attendre dans le lobby ou pour les scènes coupées. Cette version avait des cheats et des boutons basés sur le cl

Téléportation

Il y a trois types de téléportation qui se produisent dans l'expérience :

  1. Téléportez les joueurs du lobby simple à la zone de jeu principale dans un serveur réservé.
  2. Téléportation des joueurs d'un état normal à l'état corrompu, puis retour à nouveau tout en montrant une scène de coupe.
  3. Téléportation des joueurs dans certains puzzles, ou quand ils réapparaissent après avoir quitté la zone de jeu.

Serveurs réservés

Nous avons décidé de regrouper les joueurs en groupes de cinq dans un lobby simple avant de les téléporter sur un serveur réservé pour la zone de jeu principale de la maison. Le lobby a fourni du temps pour que les joueurs ajoutent et jouent ensemble, et les serveurs réservés ont empêché les joueurs supplémentaires de manquer les aspects du jeu et la narration de rejoindre l'expérience tard. Ce téléportation ne se produit qu'une fois.

Cutscenes

Nous voulions pouvoir transporter les joueurs dans le jeu à tout moment lorsqu'ils accomplissent certaines tâches, telles que toucher un sceau ou terminer une mission. Pour implémenter cela, nous avons développé une version simple d'un outil basé sur le script appelé EventManager qui contrôlait diverses propriétés et attributs, exécutait des scripts et des audio et effectuait des secousses de caméra

Réapparition des joueurs

Le troisième type de téléportation que nous avons voulu implémenter était un téléportation rapide avec seulement un joueur CFrame changement de coordonnée de changement dans quelques puzzles et quand les joueurs tombent et réapparaissent. Contrairement aux deux types de téléportation précédents, ce type ne demande pas explicitement le streaming d'异步.

Scripting de jeu

Les scripts nous ont permis d'exécuter sur des éléments de jeu spécifiques, tels que des éléments d'interface fading, la création de déclencheurs d'événements clés et le soulignage des objets lorsqu'ils étaient en focus avec le curseur du joueur. Beaucoup de ces systèmes reposent sur le tagging des objets pour exécuter un comportement personnalisé, puis utiliser une variété

Comportement personnalisé avec des balises

Nous voulions une façon d'ajouter un comportement personnalisé pour les objets, comme verrouiller les portes pour que les joueurs doivent rester dans la pièce jusqu'à ce qu'ils aient terminé la

Le « gestionnaire » Class.Script</

Scripts clients et serveur

Nous voulions réduire la bande passante pour différents aspects du jeu qui seraient coûteux en performance. Nous avons décidé que lorsque la fonctionnalité des objets peut affecter la simulation pour d'autres joueurs, tels que déplacer l'objet dans la collision, nous exécuterions ceci sur le serveur , mais si quelque chose est plus lié au design de l'environnement, tels que les