Scripts Serveur
Qu'est-ce que sont les scripts serveur et pourquoi en avons-nous besoin ?
La principale différence entre les scripts Serveur et les scripts Client est qu'ils s'exécutent sur le serveur.
Pour les scripts Client, chaque joueur exécute sa propre version locale d'un script, tandis que pour les scripts Serveur, tous les joueurs exécutent la même version d'un script. De plus, les scripts serveur et les scripts client ne partagent pas la même API.
La plupart du temps, nous devrions pouvoir accomplir notre tâche en utilisant des scripts Client, en particulier avec la disponibilité de classes comme SNetwork ou SPersistence, qui permettent aux scripts de communiquer entre eux et de partager des données.
Cependant, nous pouvons parfois rencontrer des tâches plus complexes qui nécessitent un script indépendant (un script serveur) pour servir de point central de communication, de stockage de données, de traitement d'informations, de synchronisation, etc. Un bon exemple d'objet interactif qui serait réalisé à l'aide d'un script serveur est un jeu de société multijoueur.
Création d'un script Serveur :
- Créez un GameObject.
- Ajoutez le composant de script serveur au GameObject. (Ajouter un composant -> Server Script)
- Remplissez le champ Class ID avec un identifiant unique pour votre script serveur. (exemple : com.example.theserverscript)
- Glissez votre fichier .lua dans le champ Script.
- Ajoutez un composant Virtual Good. (Ajouter un composant -> Virtual Good)
- La partie la plus importante dans le composant Virtual Good d'un script Serveur est que le Type doit être défini sur Server Script.
- Téléchargez le GameObject.
Utilisation d'un script Serveur :
- Créez un GameObject.
- Ajoutez un composant Require Server Script.
- Définissez le champ Virtual Good ID sur le même ID de bien virtuel que celui de votre script serveur créé ci-dessus.
- Définissez le champ Class ID sur le même ID de classe que celui de votre script serveur créé ci-dessus.
- Ajoutez un composant Room Furniture (Ajouter un composant -> Room Furniture)
- Maintenant, cet objet chargera le script serveur créé ci-dessus dans la région où il est placé.
- Vous pouvez également ajouter un composant Scripting Runtime à ce GameObject. (Ajouter un composant -> Scripting Runtime).
Événements
Contrairement au scripting client où vous devez créer des crochets/liens vers des événements, les scripts serveur ne vous demandent que de déclarer cette fonction sans créer aucun crochet/lien.
Par exemple :
function OnAvatarJoin(id)
Space.Log(id .. " joined the scene.")
end
Vous pouvez trouver les événements des scripts serveur ici.
Projet d'exemple
Le projet d'exemple Trivia Box est une bonne démonstration de l'utilisation des scripts serveur.
Vous pouvez y accéder ici et télécharger ses fichiers open-source.
Merci
[Ce guide est encore en cours de réalisation. Veuillez signaler les problèmes ici]