La seguente lista fornisce un'anteprima dei principali requisiti di progettazione tecnica che abbiamo pensato mentre lavoravamo su The Mystery of Duvall Drive . Per ulteriori informazioni sul design visivo di questi elementi, vedi la mostra dei progressi di Duvall Drive, che evidenzia le varie funzionalità e strumenti che abbiamo utilizzato per creare l'Ambientecoinvolgente.
Missioni
Ci sono diversi tipi di missioni che i giocatori devono risolvere per avanzare attraverso l'esperienza, tra cui la navigazione di una serie di piattaforme ruotanti fino a quando i giocatori non possono recuperare un Articolospeciale, o trovare diversi ingredienti in un espandente pantry e posizionarli in una pentola bollente. Per organizzare il processo di scripting di creazione e debug, abbiamo creato un framework di missioni e una version
Framework della missione
Per garantire che ogni passo della missione in tutta l'esperienza fosse unificato, abbiamo progettato un semplice puzzle mission framework per ogni missione che consisteva di hook per l'avvio e la fine del puzzle, un punto di lettura per i dati di configurazione e un pulsante per completare il puzzle per scopi di debugging . Per ulteriori informazioni su questo processo e suoi parametri, vedi Missions Logic
Sigilli e Stati di Gioco
Quando i Partitahanno entrato in una specifica stanza, abbiamo voluto che interagissero con piccoli oggetti speciali conosciuti come sigilli per attivare le missioni. Dopo aver risolto la missione, abbiamo voluto che prendessero il sigillo e lo posizionassero in una posizione predefinita all'interno del foyer per avviare la missione complessiva. Dopo aver posizionato il oggettonella posizione
Per implementarlo, abbiamo creato stati di gioco , che specificerebbero il periodo di tempo in cui i giocatori potrebbero iniziare il processo come:
- Cercando un "corrotto" sigillo in una stanza per attivare la missione.
- Raccogli il "seal restore" quando risolvono la missione.
- Posiziona il sigillo nel cerchio del foyer.
Gli stati del gioco controllano in gran parte il flusso dell'esperienza e come i giocatori interagiscono con la narrazione dell'esperienza. Per ulteriori informazioni, vedi GameStateManager.
Camere normali e corrotte
Volevamo avere due stati di sei stanze nella casa: uno stato normale e uno stato corrotto. Quando un giocatore toccava uno stato corrotto in una stanza per attivare lo stato corrotto della stanza, l'ambiente cambiava in un'atmosfera più dark con luci modificati, oggetti ambientali e effetti speciali. I giocatori avrebbero quindi dovuto risolvere la missione per tornare allo stato normale della stanza.
Per implementare questo, abb
Versione debug
Per aiutarci a debuggerci regolarmente le missioni, abbiamo creato una versione dell'esperienza in cui non dovremmo aspettare nella lobby o per cutscenes. Questa versione aveva trucchi e pulsanti basati sulle tast
Teletrasporto
Ci sono tre tipi di teletrasporto che avvengono all'interno dell'esperienza:
- Teletrasporta i giocatori dalla semplice lobby all'area di gioco principale in un server riservato .
- Teletrasporta i giocatori dallo stato normale di una stanza allo stato corrotto, quindi torna nuovamente mostrando una cutscene .
- Teletrasportare i giocatori all'interno di alcuni puzzle, o quando respawn dopo di essere caduto dall'area di gioco.
Server pre-ricondizionati
Abbiamo deciso di raggruppare i giocatori in gruppi di cinque in una lobby semplice prima di teletrasportarli su un server riservato per l'area di gioco principale della casa. La lobby forniva tempo per i giocatori aggiuntivi per unirsi e giocare insieme, e i server riservati hanno impedito agli altri giocatori di mancare gli aspetti del gioco e la narrazione dalla partecipazione all'esperienza tardiva. Questa teletrasportazione avviene
Cutscena
Volevamo essere in grado di trasportare i giocatori in tutto il gioco quando completavano determinati compiti, come toccare un sigillo o completare una missione. Per implementare questo, abbiamo sviluppato una semplice versione di uno strumento basato su script chiamato EventManager che controllava varie proprietà e attributi, eseguiva gli script e l'audio/suonoe eseguiva scuote di telecamera
Rigenerazione dei giocatori
Il terzo tipo di teletrasporto che abbiamo voluto implementare era un breve teletrasporto con solo un giocatore CFrame cambiamento di coordinamento all'interno di alcuni puzzle e quando i giocatori cadono e respawn. A differenza dei due tipi di teletrasporto precedenti, questo tipo non richiede esplicitamente sincronizzazione asincrona.
Scripting Gameplay
Lo scripting ci ha consentito di eseguire su specifici elementi di gioco, come elementi UI che scompaiono, la creazione di volumi di trigger per eventi chiave e l'evidenziazione di oggetti quando sono in focus con il cursore del Giocatore. Molti di questi sistemi si basano sulla marcatura degli oggetti per eseguire comportamenti personalizzati, quindi utilizzando una varietà di
Comportamento personalizzato con tag
Volevamo un modo per aggiungere un comportamento personalizzato per gli oggetti, come il blocco delle porte in modo che i giocatori dovessero rimanere nella stanza fino a quando non hanno complet
Il "gestore" Script
Script del client e del server
Abbiamo voluto ridurre la larghezza di banda per diversi aspetti del gameplay che sarebbero stati costosi in termini di Prestazione. Decidiamo che quando la funzionalità degli oggetti può influenzare la simulazione per altri giocatori, come il movimento dell'oggetto attraverso la collisione, abbiamo deciso di eseguirlo sul server, ma se qualcosa è più leg