Questo modello solo per UEFN contiene un piccolo gioco in stile factory che include sia la persistenza sia l'avanzamento offline.
I tutorial all'interno del modello richiedono una conoscenza di base di Unreal Editor per Fortnite (UEFN) e la capacità di aprire un file Verse. Non ci sono altri requisiti. Il modello stesso fornisce le istruzioni del tutorial.
Benvenuto nella Fabbrica di giocattoli di Babbo Natale, un modello LEGO® incentrato sulla fidelizzazione dei giocatori attraverso coinvolgenti loop di gameplay che utilizzano:
Persistenza: salvataggio dei dati dei giocatori tra le sessioni di gioco.
Avanzamento offline: la fabbrica continua a produrre giocattoli anche quando il giocatore non è nel gioco fino a quando c'è spazio nel container della fabbrica, mentre la foresta di bastoncini di zucchero continua a crescere, con o senza giocatori.
Combinando entrambe le cose, puoi anche creare meccaniche quotidiane che incoraggiano i giocatori a continuare a tornare sulla tua isola. Utilizza questo modello per imparare come implementare queste meccaniche nella tua accogliente isola delle vacanze!
Il modello contiene tre brevi tutorial.
Principiante: mostra come modificare il tempo di crescita della foresta di bastoncini di zucchero in Verse.
Intermedio: ti guida attraverso la modifica di una variabile in Verse.
Avanzato: ti permette di modificare e aggiungere codice al codice Verse.
Ogni tutorial all'interno del progetto mostra come utilizzare Verse per realizzare le meccaniche utilizzate.
Il modello è suddiviso in tre parti:
Gioca: inizia giocando per 5-10 minuti per avere un'idea di come funziona.
Crea: successivamente, creerai tre mod seguendo le sfide del tutorial.
Esplora: infine, puoi esplorare in autonomia e smontare tutto il codice documentato per vedere come funziona, quindi creare il tuo gioco per le vacanze!
Gioca
Da UEFN, carica il modello. Lo troverai con gli altri modelli LEGO. Inizia a giocare.
Nel gioco, per seguire l'incarico, avvicinati a Sir Pawlar che ti spiegherà cosa fare.
Segui le istruzioni nel gioco.
A un certo punto, il tutorial ti chiederà di terminare il gioco. Premi Esc, quindi Termina partita.
Aspetta 2 minuti.
Una volta trascorsi i 2 minuti, premi di nuovo Esc, quindi Avvia il gioco.
Può sembrare una domanda strana da chiedere, ma dimostra un punto molto importante. In questo gioco, le cose continuano a succedere anche quando non stai giocando! La fabbrica continua a produrre e la foresta di bastoncini di zucchero continua a crescere.
Si tratta di meccaniche chiave che possono incoraggiare i giocatori a tornare al gioco per raccogliere o collezionare raccolti che sono stati coltivati o le risorse che sono state prodotte nel tempo.
Quando torni al gioco, puoi vedere cosa è stato prodotto quando non eri in gioco:
Questa operazione viene eseguita nel file factory_manager.verse. Misura quanto tempo è trascorso in assenza del giocatore utilizzando dati persistenti e il dispositivo Orologio in tempo reale. Quindi calcola quanto produrrebbe la fabbrica in quel periodo.
Dopo aver prodotto la seconda build di fabbrica, riceverai un messaggio per tornare a UEFN.
Il tuo primo tutorial è completo! È ora di passare alle sfide creative.
Crea
È ora di divertirsi! Ti aspettano tre sfide.
Individua la prima, Freshman Flapjack. Ti sta aspettando su uno dei tre quadrati gialli.
Sfida per principianti: modifica il tempo di ricrescita dei bastoncini di zucchero
La prima sfida è semplice. Ti mostrerà quanto puoi cambiare il gioco semplicemente modificando alcuni valori, in questo caso, il tempo di ricrescita dei campi di bastoncini di zucchero.
Accanto a Freshman Flapjack, vedrai il dispositivo creato da Verse Bastoncini di zucchero.
Selezionalo e assicurati di aver selezionato anche il pannello Dettagli.
Regola il parametro
CandyCaneRegrowthTime: sperimenta e guarda come influisce sul gameplay.
Sfida intermedia: modifica i prezzi di aggiornamento
La seconda sfida ti porterà nel codice Verse stesso.
Anche in questo caso, vedrai quanto puoi cambiare il ritmo e le sensazioni del gioco semplicemente modificando i prezzi di aggiornamento della tua fabbrica.
April il file upgrade_config.verse da Navigatore Verse.
Puoi vedere tutti i prezzi di aggiornamento dei vari elementi della fabbrica. Il primo lotto di prezzi si riferisce alle cinture di fabbrica. Nella fabbrica sono presenti quattro cinture, quindi la tabella dei prezzi contiene quattro colonne. Ogni riga della tabella rappresenta il prezzo per il potenziamento di una cintura a quel livello.
Verse# This file contains the data used to configure the factory in the game. # This includes upgrade prices, max levels, production speeds, storage capacities and more. # It also contains functions for getting all this data. using { /Verse.org/Simulation } using { Persistence } # Blubberchops: "Looks like this is the place to modify the upgrade prices for belts."Segui i consigli di Blubberchops e riduci il prezzo di aggiornamento dei nastri. Puoi anche provare ad aumentare il prezzo per rallentare il ritmo del gioco.
Quando hai finito, compila il codice Verse e invia le modifiche Verse per provare le modifiche.
Per maggiori informazioni su cosa stai facendo in questo step, consulta Modifica ed esecuzione di un primo programma Verse.
Tieni presente che ogni volta che invii modifiche alla sessione, l'avanzamento di fabbrica viene reimpostato.
Sfida esperti: Il regalo giornaliero
La terza e ultima sfida ti chiede di lavorare sul regalo giornaliero accanto al Professor Flopkins.
A tale scopo, dovrai aggiungere alcuni dati persistenti aggiuntivi da memorizzare quando il regalo è stato aperto l'ultima volta. Dovrai anche correggere la logica nel dispositivo creato da Verse Regalo giornaliero.
Consulta la pagina Utilizzo di dati persistenti per maggiori informazioni su come utilizzare i dati persistenti in Verse.
Se hai bisogno di aiuto per questa sfida, dai un'occhiata al Dispositivo Regalo giornaliero qui sotto!
Apri il file player_info.verse da Navigatore Verse.
Cerca i commenti del professor Flopkins nella parte superiore del file.
Assicurati di aggiungere un campo array
date_and_timealla classeplayer_infoper memorizzare l'ultima volta che il regalo è stato aperto. Assicurati anche che il valore del campo sia impostato nel costruttoreMakePlayerInfo.Verse# This file defines player_info, the collection of persistable information stored for each player. # It also contains functions for creating, updating and returning information about a player. using { /Verse.org/Simulation } using { Config } using { Time } # Maps each player to their persisted information. var PlayerInfoMap:weak_map(player, player_info) = map{}Correzione delle funzioni per ottenere e impostare il campo appena aggiunto. Questa volta, cerca i commenti del professor Flopkins nella parte inferiore del file.
Compila le righe mancanti per far sì che le funzioni si comportino correttamente. Puoi prendere ispirazione da alcune delle altre funzioni del file.
Verse# This file defines player_info, the collection of persistable information stored for each player. # It also contains functions for creating, updating and returning information about a player. using { /Verse.org/Simulation } using { Config } using { Time } # Maps each player to their persisted information. var PlayerInfoMap:weak_map(player, player_info) = map{}Con la nuova funzionalità per i dati persistenti pronta, apri il file daily_gift.verse per modificare la logica che fa apparire il regalo una sola volta al giorno.
Vedrai che mancano due pezzi vitali:
Memorizzazione dell'ora corrente di apertura del regalo e
Controllare se la data è stata spostata dall'ultima apertura del regalo.
Segui i commenti del professore e aggiungi il codice mancante.
Verse# When the gift is opened (harvested), give the selected player gold. OnHarvesting(Agent:agent):void= # Hide gift. set Opened = true PropManipulator.HideProps() # Show effect. spawn: ShowGiftEffect()Verse# Succeeds if the current date is different from the opening time. IsDateRolledOver()<decides><transacts>:void= # Get the current date. Now := RealTime.GetDateAndTime() # Professor Flopkins: "Hmm, the code to determine if the date has rolled over is also missing." # "Let's see.. first we'll get the selected player." # "Look in the OnHarvesting function to see how to do that."Ora sei pronto per testare la tua soluzione! Compila il codice Verse e invia le modifiche Verse per provarlo nella tua sessione.
Puoi utilizzare il pulsante debug Sub Zero come scorciatoia per saltare in avanti nel tempo per verificare se il regalo si rigenera quando la data cambia.
Esplora
Ora che hai affrontato le sfide, puoi esplorare alcuni degli altri dispositivi utilizzati in questo modello.
Dispositivo Orologio in tempo reale
Il dispositivo Orologio in tempo reale ti fornisce l'ora corrente in Tempo coordinato universale (UTC). Anima anche le lancette di un orologio.
Puoi utilizzarlo per eventi di guida che devono verificarsi a una certa ora ogni giorno o per tenere traccia del tempo trascorso.
Viene fornito con una funzione di test integrata che può compensare l'ora corrente. Dai un'occhiata ai file real_time_device.verse, date_and_time.verse e time_interval.verse.
Dispositivo Campo di bastoncini di zucchero
Il dispositivo Campo di bastoncini di zucchero, creato da Verse, tiene traccia di un campo di bastoncini di zucchero che si possono raccogliere. Fornisce risorse quando vengono raccolte e le fa ricrescere nel tempo. Puoi utilizzarlo per tutti i tipi di risorse di ricrescita. Dai un'occhiata al file candy_cane_field.verse.
Modulo di persistenza
Questo modulo contiene tutti i dati persistenti associati a ciascun giocatore. La classe principale è la classe player_info nel file player_info.verse.
Questo file contiene anche tutte le funzioni per la lettura e la manipolazione dei dati. Devi anche controllare le altre classi del modulo: ognuna definisce alcuni dei dati memorizzati per ogni giocatore. Puoi modificarli o aggiungere altri dati in base alle tue esigenze.
# This file defines player_info, the collection of persistable information stored for each player.
# It also contains functions for creating, updating and returning information about a player.
using { /Verse.org/Simulation }
using { Config }
using { Time }
# Maps each player to their persisted information.
var PlayerInfoMap:weak_map(player, player_info) = map{}
# This tracks all persistable information for a player.
player_info := class<final><persistable>:
# The version of the current player info.
Dispositivo Dono giornaliero
Questo dispositivo genera un regalo giornaliero, o almeno lo farebbe se funzionasse!
Ecco una soluzione alla sfida degli esperti per aiutarti a sfruttare appieno il dispositivo Regalo giornaliero creato da Verse. Puoi utilizzarlo per eseguire tutti i tipi di eventi e ricompense quotidiane.
Inizia aggiungendo i dati richiesti alla classe the
player_infoe modifica il costruttoreMakePlayerInfonel file player_info.verse:Verse# This tracks all persistable information for a player. player_info := class<final><persistable>: # The version of the current player info. Version:int = 0 # Latest harvest times of all candy canes. CandyCaneHarvestTimes:[]date_and_time = array{date_and_time{}, date_and_time{}, date_and_time{}, date_and_time{}, date_and_time{}, date_and_time{}, date_and_time{}, date_and_time{}, date_and_time{}, date_and_time{}} # The amount of gold the player has.Compila le funzioni
SetGiftOpeningTimeeGetGiftOpeningTime:Verse# Sets the gift opening time for the player. SetGiftOpeningTime<public>(Player:player, GiftOpeningTime:date_and_time)<decides><transacts>:void= CheckPlayerInfoForPlayer[Player] SourceInfo := PlayerInfoMap[Player] set PlayerInfoMap[Player] = player_info: MakePlayerInfo<constructor>(SourceInfo) GiftOpeningTime := GiftOpeningTime # Gets the gift opening time for the player.Rivolgi la tua attenzione alla classe
daily_giftnel file daily_gift.verse. Per prima cosa, compila la memoria dell'ora corrente quando apri il regalo:Verse# When the gift is opened (harvested), give the selected player gold. OnHarvesting(Agent:agent):void= # Hide gift. set Opened = true PropManipulator.HideProps() # Show effect. spawn: ShowGiftEffect()Implementa la funzione
IsDateRolledOver:Verse# Succeeds if the current date is different from the opening time. IsDateRolledOver()<decides><transacts>:void= # Get the current date. Now := RealTime.GetDateAndTime() SelectedPlayer := MaybeSelectedPlayer? GiftOpeningTime := GetGiftOpeningTime[SelectedPlayer] Now.Years <> GiftOpeningTime.Years or Now.Months <> GiftOpeningTime.Months or Now.Days <> GiftOpeningTime.Days
Dispositivo Gestione fabbrica
Il dispositivo creato da Verse Gestione fabbrica inizializza ed esegue la fabbrica. Gestisce il calcolo di quanti prodotti sono stati realizzati mentre il giocatore era assente.
Questo calcolo può essere complesso poiché l'archiviazione della fabbrica è condivisa tra più nastri della fabbrica. In una configurazione più semplice, puoi calcolare il numero di prodotti realizzati calcolando quanto tempo è trascorso dall'ultima produzione e dividendolo per la velocità di produzione.