lundi, juin 18, 2007

Intégration d'un langage de script : LUA


LUA qu'est-ce que c'est ?

Il s'agit d'un langage de script libre qui a été inventé en dans le but d'être rapide et compact (95 à 185 Ko pour la version 5.0.2, selon le compilateur utilisé et le système cible).

De nombreuses applications l'intègrent, dont notamment des jeux comme World of Warcraft et des applications comme Adobe Photoshop Lightroom. LUA rempli des tâches aussi variées que définir des variables d'environnement, associer des évènements aux composants d'une interface ou gérer l'I.A. des personnages non joueurs.

LUA est un langage extensible. Le système de meta-tables permet de créer des structures de données complexes et de gérer les relations qui les lient entre elles. Ainsi, certaines extensions de LUA gèrent les classes, l'héritage et permettent de les lier à des instances d'un programme.

Ainsi, on peut définir ses classes en C++ et les passer en paramètres à une fonction LUA qui les traitera avant de les retourner au programme appelant.

Procéder ainsi à plussieures avantages :

  • L'écriture d'un script LUA est facile et réalisable par tous.
  • Il n'y a pas de compilation nécessaire.
  • Un script peut être généré à la volée par une application tierce et être chargée à chaud dans un programme en cours d'exécution.
  • Combiné au Xml, il permet de réaliser des interfaces très souples.

Il existe de nombreuses implémentations de LUA pour les différent langages de programmation dont LuaNET pour le C# et LuaBinaries pour C/C++.

Et Links of Power dans tout ça ?

J'ai décidé d'utiliser LUA pour l'implémentation du serveur de jeu. Sa souplesse me permet de créer des relations logique avancées entres les éléments du jeu sans avoir à redéfinir la structure même du serveur. Avec cette approche, l'évolution du gameplay est sans limite.

Actuellement, LUA gère :
  • La création des comptes
  • La création des avatars
  • Les déplacements autorisés sur la carte
  • Les interactions de joueurs à joueurs
.. et très bientôt,
  • Le commerce
  • L'I.A. des personnages non joueurs
  • Et plus généralement, toutes les règles du jeu..
Pour aller un peu plus loin.

Il existe de nombreux tutorials pour apprendre à employer LUA dont ceux de Daniel Schuller ( en anglais ) que vous pouvez trouver ici :


Aucun commentaire: