<sect> Convention concernant les fichiers

<sect1>Séparateur de nom de fichier.
<p>
Plusieurs normes existent pour découper un nom de fichier en répertoires,
sous répertoires et fichiers. Par exemple, sous Windows, ces différents
paramètres sont séparés par des contre-obliques (backslash), comme
dans 'C:\Arkhart-data\README-fr.txt'. Sous unix, l'oblique simple (slash)
fait office de séparateur : '/home/toto/Arkhart-data/README-fr.txt'.

Afin de garder une cohérence dans les noms de fichiers (le développement
se faisant sur linux et windows), une norme a été choisie, et il s'agit de la
norme unix. Cela signifie que les différentes parties d'un nom de fichier doivent
être séparées par des obliques.

<sect1>Principe du 'montage'
<p>
Ce principe a aussi été emprunté à Unix, et simplifie l'accès aux données du
jeu, indépendamment de leur emplacement d'installation. L'idée, c'est de donner
un nom-raccourci à un répertoire, et accéder aux données en utilisant ce nom-raccourci
et non plus en utilisant le répertoire. Pour être plus clair on va prendre un exemple.
Chez Nino, les données sont installées dans : <em>C:/Arkhart</em>.
Nino, qui fait une carte avec l'éditeur de carte, Worlded utilise une texture située dans
ce répertoire, en donnant le chemin complet du fichier :
	<em>C:/Arkhart/data/textures/ground-grass.jpg</em>.
Ca marche... Fier de son travail, il veut envoyer cette carte à une amie (elle s'appelle
Amélie mais ça importe peu pour la suite), des problèmes arrivent. En effet Amélie a
installé le jeu dans <em>C:/Jeu/Arkhart</em>, et quand elle démarre le jeu, celui-ci ne
peux pas retrouver la texture...

La solution à ce problème ? On crée un point de montage '{game}' qui correspond au
répertoire ou est installé le jeu, puis quand on veux accéder à un fichier de donnée du
jeu, on utilise ce point de montage :
	<em>{game}/data/textures/ground-grass.jpg</em>.
Et là Nino n'a plus de problème quand il envoie sa carte à Amélie. En effet, chez elle le
répertoire correspondant à {game} est <em>C:\Jeu\Arkhart</em>...

De plus, étant assez fainéant, Nino (éh oui, toujours lui) en a marre de taper
'{game}/data/...', il a donc l'idée lumineuse de créer plusieurs points de montage qui
lui faciliteront le travail (comme quoi il a compris le principe). Les voilà :
<itemize>
<item> {models} => {game}/data/models
<item> {textures} => {game}/data/textures
<item> {shaders} => {game}/data/shaders
<item> {scripts} => {game}/scripts
</itemize>

<sect1> Autres conseils
<p>
Les noms des fichiers doivent de préférence être en minuscules, pour que ce soit plus
facile de s'en souvenir (d'autant que les systèmes comme Unix font une différence entre
les majuscules et les minuscules dans les noms des fichiers). Les caractères autorisés
sont les lettres de a à z, les chiffres de 0 à 9, le tiret (-), le blanc souligné (_) et le point.

<sect1> Formats de fichier
<p>
Liste des formats de fichier supportés par Arkhart, et notes concernant chacun des
formats.

<sect2>Textures
<p>
  Seules les textures 8bits en niveaux de gris, et 24bits avec palette sont supportées.
  Elles peuvent de plus avoir un canal alpha (canal de transparence). Les formats
  supportés correspondent aux formats portables les plus courants : JPEG, PNG,
  et TGA.

<sect2>Matériaux
<p>
  Ce sont des fichiers qui définissent les propriétés visuelles (luminosité, texture,
  etc) et physiques (température, type de matériel, etc.) d'un objet. Les matériaux
  sont parfois contenus dans les modèles (3DS, MDL), mais parfois ils ont leur propre
  fichier. Le seul format de matériel reconnu est un format texte assez simple (fichiers
  *.mat), dont la syntaxe est décrite dans la section Matériaux.

<sect2> Modèles
<p>
 Pour l'instant, seuls les modèles en format Autodesk (.3DS) et
 HalfLife (.MDL) sont supportés. Remarque concernant les modèles dans le
 format 3DS : les noms de matériaux doivent de préférence être explicites. De plus,
les matériaux à l'intérieur du fichier peuvent être remplacés par des matériaux externes.
Ex: le modèle 'daphyring.3ds' possède  un matériel appelé 'front'. Avant d'utiliser le
matériel contenu dans le modèle, le moteur cherchera un fichier de définition de matériel
appelé 'daphyring/front.mat'.
