Ah bon, des contributeurs du projet qui lisent cette news ? ;-)
Répondons donc aux deux-trois questions, dans l'ordre :
- C'est un peu exagéré de parler de « moteur de scripts » (oui, je sais, c'est pourtant dit comme ça dans l'annonce). Les fichiers de configuration de Wesnoth sont écrits en ce qui a été nommé « WML », ou « Wesnoth Markup Language » (à ne pas confondre avec le Wireless Markup Language pour les pages WAP). Ce format est, comme son nom l'indique, avant tout un langage de markup et non un langage de script. À l'origine, le WML est prévu pour écrire des trucs, en gros, comme ça :
Ici, le WML est utilisé de manière purement descriptive, afin de représenter des structures de données. Ça ressemble à du XML, mais en moins verbeux, et en plus commode à taper par un humain.
Avec l'évolution du jeu et des besoins des concepteurs de scénarios, de nombreux raffinements sont apparus : macros, différents types d'événements, « filtres » permettant de spécifier précisément dans quelles conditions les événements ont lieu, variables, etc. Bien que ne remettant pas en cause la nature « markup » des fichiers de configuration, celles-ci permettent de scripter à peu près n'importe quoi. Il semblerait même que ça serait Turing-complet. Ça permet de faire des scénarios très évolués, mais ça reste accessible aux non-programmeurs, vu que, pour les scénarios simples, ça reste du markup tout bête.
La réponse à la question « pourquoi un langage de script développé exprès » est donc « parce que ce n'est pas, à la base, un langage de scripts, mais juste un langage de balisage. »
Ceci dit, la question d'intégrer un langage de scripts existant pour les scénarios, comme, disons, Ruby, Python ou Lua, s'est maintes fois posée. L'objection principale à ce développement étant essentiellement : « On a le WML. C'est simple à utiliser, et les créateurs de campagnes savent déjà l'utiliser. À quoi bon introduire un nouveau langage, maintenant ? »
- Seconde question : « Est-ce que les ressources graphiques et sonores du jeu sont aussi sous GPL ? » - la réponse sera plus courte : oui.
- Pour ce qui est du post-mortem... Bah, on est pas morts, hein :-) La version 1.0 est une étape importante, mais n'est pas une fin.
Toutefois, les textes suivants, écrits par David White alias Sirp, le développeur en chef de Wesnoth, illustrent bien l'approche employée pour développer BfW :
[^] # Re: Questions techniques
Posté par Ayin . En réponse à la dépêche Internet, le 2 octobre 2005 - Wesnoth 1.0. Évalué à 7.
Répondons donc aux deux-trois questions, dans l'ordre :
- C'est un peu exagéré de parler de « moteur de scripts » (oui, je sais, c'est pourtant dit comme ça dans l'annonce). Les fichiers de configuration de Wesnoth sont écrits en ce qui a été nommé « WML », ou « Wesnoth Markup Language » (à ne pas confondre avec le Wireless Markup Language pour les pages WAP). Ce format est, comme son nom l'indique, avant tout un langage de markup et non un langage de script. À l'origine, le WML est prévu pour écrire des trucs, en gros, comme ça :
[scenario]
[unit]
name="Robert"
type="Elven l33tmaster"
x,y=12,23
xp=100
[/unit]
...
[/scenario]
Ici, le WML est utilisé de manière purement descriptive, afin de représenter des structures de données. Ça ressemble à du XML, mais en moins verbeux, et en plus commode à taper par un humain.
Avec l'évolution du jeu et des besoins des concepteurs de scénarios, de nombreux raffinements sont apparus : macros, différents types d'événements, « filtres » permettant de spécifier précisément dans quelles conditions les événements ont lieu, variables, etc. Bien que ne remettant pas en cause la nature « markup » des fichiers de configuration, celles-ci permettent de scripter à peu près n'importe quoi. Il semblerait même que ça serait Turing-complet. Ça permet de faire des scénarios très évolués, mais ça reste accessible aux non-programmeurs, vu que, pour les scénarios simples, ça reste du markup tout bête.
La réponse à la question « pourquoi un langage de script développé exprès » est donc « parce que ce n'est pas, à la base, un langage de scripts, mais juste un langage de balisage. »
Ceci dit, la question d'intégrer un langage de scripts existant pour les scénarios, comme, disons, Ruby, Python ou Lua, s'est maintes fois posée. L'objection principale à ce développement étant essentiellement : « On a le WML. C'est simple à utiliser, et les créateurs de campagnes savent déjà l'utiliser. À quoi bon introduire un nouveau langage, maintenant ? »
- Seconde question : « Est-ce que les ressources graphiques et sonores du jeu sont aussi sous GPL ? » - la réponse sera plus courte : oui.
- Pour ce qui est du post-mortem... Bah, on est pas morts, hein :-) La version 1.0 est une étape importante, mais n'est pas une fin.
Toutefois, les textes suivants, écrits par David White alias Sirp, le développeur en chef de Wesnoth, illustrent bien l'approche employée pour développer BfW :
How to Write a Game: The Wesnothian Approach
http://www.wesnoth.org/forum/viewtopic.php?t=3294(...)
C++ and games programming: the Wesnothian Approach
http://www.wesnoth.org/forum/viewtopic.php?t=6509(...)