| 
      |  | Licence 2ème année - Projet OcamlPilot | 
 | Last update: 25-11-2023 | 
  
7. Ressources
Pour vous aider dans votre mission, je vous propose quelques fichiers non
dénués d'un certain intérêt :
7.1. Ressources pour le TP 1
- Le fichier jeu.mli contenant les
    définitions de type des objets gérés par le serveur.
- Le fichier jeu.cmi contenant la même
    chose que le .mli, mais compilé en bytecode.
- La documentation ocamldoc de
    l'interface jeu.mli
- Un nouveau toplevel supportant les threads, le module
    graphics ainsi que les primitives unix et les fichiers d'aide pour la programmation
    du client. Placez ce toplevel dans le répertoire dans lequel vous
    développez OcamlPilot et donnez vous les droits en exécution :
 chmod u+x mytop
 Lorsque vous évaluez votre code sous emacs, demandez à ce qu'emacs
    lance mytop plutôt que ocaml. Vous n'avez alors plus besoin de
    placer des #load "graphics.cma";; et autres chargements de modules dans
    votre code. Cela dit, vous avez toujours besoin des open Graphics.
- un Makefile pour pouvoir compiler vos
    oeuvres sous Linux/Windaube. Pour regénérer les dépendances entre les fichiers
    ocaml (make depend), vous aurez besoin du fichier
    depend.awk.
    
7.2. Ressources pour vous aider à programmer le client
7.3. Ressources pour vous aider à programmer le serveur
    
7.4. Ressources pour vous aider à programmer le client 3D 

- Le protocole suivi par le serveur 3D (ps
      pdf  php). C'est en fait le même qu'en
    2D, à ceci près que toutes les tailles, les angles et les positions
    sont transmis comme des réels et non des entiers.
- La texture des murs et celle du
    sol.
- Une texture contenant une police de
    caractères que vous pourrez utiliser dans le jeu (j'en parlerai un
    peu plus loin).
- Quelques exemples de programmes en Ocaml/LablGL que vous pourrez
    exécuter en lançant lablglut nom_prog.ml :
    
    - window.ml : ce
        petit programme vous montre comment ouvrir une fenêtre en
        lablGL. Cette fenêtre n'affiche rien du tout.
- timer.ml :
        ce programme vous montre comment utiliser un timer pour afficher
	dans une console une nouvelle ligne de texte toutes les 2 secondes.
- clavier.ml :
        ce programme vous montre comment gérer le clavier. Les touches
        appuyées sont affichées sur la console.
- affichage.ml :
        ce programme vous montre comment afficher un objet à l'écran en utilisant
	les begin/end.
- lumiere.ml :
        ce programme vous montre comment utiliser la lumière et les
        caractéristiques des matériaux pour changer l'aspect des objets.
- deplacement.ml :
        ce programme vous montre comment déplacer la caméra.
- stack.ml :
        ce programme vous montre comment afficher plusieurs objets en
        utilisant la pile des matrices du ModelView.
- basic_jeu.ml :
        ce programme vous montre comment combiner tous les exemples
	ci-dessus de maniere a obtenir le squelette du client ocamlpilot.
 L'étude des exemples ci-dessus devrait vous permettre de comprendre
    comment modifier votre client 2D pour obtenir un client 3D rudimentaire.
    Toutefois, sur certaines machines dont les cartes graphiques sont loin
    d'être excellentes, et en particulier sur celles de l'UFR, votre client va
    être un peu lent. De plus, son côté esthétique laissera à désirer puisque
    les murs et le sol seront de couleurs unies. Aussi, les exemples ci-dessous
    devraient vous permettre d'améliorer tout cela :
    - liste.ml :
        ce programme vous montre comment utiliser les listes pour accélérer les
	affichages.
- texture.ml :
        ce programme vous montre comment texturer des objets. Pour que le
	programme fonctionne, il faut récupérer
	la texture en question
	ainsi que le programme ocaml qui lit ce fichier
	pixmap.ml,
	pixmap.cmi,
	pixmap.cmo.
 Vous pouvez alors exécuter l'exemple grâce à la commande
	lablglut pixmap.cmo texture.ml
- texte.ml :
        ce programme vous montre comment afficher un texte à l'écran. Celui-ci
	est basé sur le texfont de Mark
	Kilgard.Je vous ai créé une archive
	texte.tgz contenant tous
        les fichiers dont vous avez besoin pour exécuter texte.ml.
	Cette archive comprend bien évidemment les sources de texfont, le fichier
	gentexfont qui permet de générer de nouvelles polices de
	caractères et showtxf qui permet de les afficher, une interface
	ocaml que j'ai réalisée et dont il suffit, pour l'utiliser, de faire un
	open Mltexfont et un mytop. L'exécution de
	texte.ml se fait en lançant mytop texte.ml.
 Notons que les différents exécutables ont été produits via les commandes
	suivantes :
 
	- gcc -c texfont.c
- gcc -o gentexfont texfont.o gentexfont.c -lglut
- gcc -o showtxf texfont.o showtxf.c -lglut
- gcc -c -I/usr/lib/ocaml ml_texfont.c
- ocamlc -c -I +lablGL mltexfont.ml
- ocamlmktop -I +lablGL -custom -o mytop.bin texfont.o  ml_texfont.o lablgl.cma lablglut.cma mltexfont.cmo
 
- viewport.ml :
        ce programme vous montre comment utiliser plusieurs viewports pour
	séparer l'affichage de l'espace de jeu et celui des instruments.
 
7.5. Ressources diverses
- Le protocole suivi par le serveur et ses clients pour converser ensemble
    (ps)    (pdf).
- Un poly précisant le style de programmation à utiliser pour
    développer OcamlPilot
    (ps)    (pdf).
- Un .emacs à mettre dans votre home
    directory. Il date un peu, mais ça fonctionne encore. En outre, j'en
    suis persuadé, le fond d'écran «mousse de papaye»
    de ce .emacs vous procurera des moments d'intense bonheur. Ce fichier est
    à placer dans votre home directory. C'est un fichier de configuration
    lu chaque fois que vous lancez un nouvel emacs.
- Le mode tuareg pour emacs. Pour
    que ce mode fonctionne correctement, il faut l'installer dans un des
    répertoires LISP d'emacs en tapant la commande :
 tar xvz -C /usr/share/emacs/site-lisp -f tuareg-mode.tar.gz
 et aussi installer le .emacs ci-dessus.
- Une image ISO à graver d'un CD linux live
    (adapatation d'une distribution knoppix). C'est
    un CD contenant tout un système Linux et ne nécessitant aucune
    installation sur disque dur : il suffit de booter sur le CD et ce dernier lance
    tout le système pour vous. Par rapport à une distrib knoppix classique,
    j'ai rajouté ocaml, ocamlpilot et le mode tuareg sur le CD, j'ai
    installé un .emacs qui supporte le tuareg et j'ai fait en sorte que
    la langue par défaut soit le français.
    
Licence 2ème année - Projet OcamlPilot