arma_3:createurs_de_missions:tips_en_tout_genre

Ceci est une ancienne révision du document !


Arma 3 scripting pour les créateurs de missions

Vaste sujet ! Il s'agit ici de décrire de façon rapide les principales caractéristiques du développement de scripts afin de faire gagner du temps pour les premiers pas. Il s'adresse aux personnes qui disposent d'une culture générale en codage informatique ou aux développeurs confirmés qui débarquent dans le scripting Arma et dans le code des jeux en ligne plus généralement. On renverra à des ressources détaillées pour chaque rubrique.

Pour exécuter du code, on peut (ou on doit selon les cas) :

  • S'appuyer sur de scripts particuliers exécutés lors du lancement de la mission (init.sqf, initServer.sqf, etc.). Attention, ces scripts sont exécutés dans un ordre spécifique et sur des localités différentes en fonction du type de jeu (single player, multiplayer).
  • Utiliser des événements propres à chaque objet, en particulier l'init de l'objet, qui est éxécuté une seule fois lors de la création de l'objet par la moteur de jeu
  • Utiliser des conditions en s'appuyant sur les déclencheurs (trigger) du jeu
  • Utiliser les événements prédéfinis dans le moteur de jeu
  • Utiliser des boucles qui s'exécutent de façon continue ou conditionnelle.
Dans un environnement distribué tel qu'un jeu en ligne, le code s'exécute de façon asynchrone. L'ordre d'exécution du code est géré par un moteur d'ordonnancement particulier (scheduler).

C'est un sujet clé et non trivial :-). Pour commencer, il faut savoir que le code est exécuté sur une des “localités” suivantes :

Les scripteurs Arma ont (souvent) une pratique plus laxiste, du coup plus souple (mais potentiellement bordélique). Par exemple, il est possible d'affecter des groupes à GAIA de façon conditionnelle.

Du fait que les espaces (de nommage, localité, etc.) et les types sont complexes, il existe des fonctions dédiées à la manipulation des variables : setVariable et getVariable.

Pour aller plus loin…

Une variable (ou une fonction) est disponible dans un espace de nommage donné. Par exemple, la mission a un espace de nommage dédié (missionNameSpace). Idem pour le profil d'un utilisateur (profileNamespace).

A compléter !

Pour aller plus loin…

En cours de mission (en appuyant sur la touche Echap) ou en cours d'édition de mission via l'éditeur de mission Eden (Ctrl+D), on accède à la console de débogage. Attention, les droits d'accès à la console durant la mission se paramètrent via Eden par le menu Attributs → Général, onglet Etats.

La console permet diverses choses, en particulier d'exécuter du code à la volée et de surveiller jusqu'à 4 variables.

Des messages de débogage peuvent être affiché via la commande systemChat. Un outre, un journal d'exécution est disponible sur chaque PC (fichier rpt)

  • arma_3/createurs_de_missions/tips_en_tout_genre.1541349625.txt.gz
  • Dernière modification: 2019/09/03 21:52
  • (modification externe)