Archive:Jeu en réseau avec OSC: MultiPass For Freedom
Ce wiki a été archivé en 2018.
Le nouveau wiki se trouve à: ressources.labomedia.org Les fonctionnalités sont désactivées: vous pouvez faire une recherche sur Google site:https://wiki.labomedia.org et découvrir La Labomedia. |
Ce jeu a évolué, une nouvelle version tout en python3.4 avec json et sans OSC
Ce jeu utilise le Multicast et le module python txosc.
Le Multicast permet de diffuser et collecter des données entre tous les connectés.
- Jeu en réseau Massivement multi-joueurs en OSC, en local (MMO), j’exagère un peu, on est en local, le "massivement" sera 10 joueurs.
- Serveur avec script en python 2.7 UDP MultiCast
- Jeu dans Blender 2.62 (python3.2)
Ressources
Lancer un script en python 3
Pour lancer un script en python3, le shebang #! /usr/bin/python3 ne suffit pas, il faut lancer en console
python3 votre_script.py
Geany
sudo apt-get install geany geany-plugins
Un éditeur plus évolué que gedit : Geany. Il permet d'avoir la liste des Symboles, le plier/déplier, et de lancer le script directement.
Il faut installer geany et geany-plugins. Pour définir la version de python utilisée en cliquant sur "Exécuter", aller à Construire, Définir les commandes de construction, Case Excécuter: python/%e ou python3/%e
Il est possible de le configurer pour avoir la doc python intégrée, des sauvegardes automatiques, de débugger, d'envoyer les fichiers sur git ou svn.
Get instant documentation in Python
Eclipse
Ultime niveau du programmeur.
- pydev pour python.
- wiki.blender.org explique comment créer la doc des modules/fonctions Blender.
- BGE-Code-Completion-in-Pydev pour l'installation de l'auto complétion.
OSC.py pour python3.2
twisted et txosc n'ont pas encore été porté en python3. OSC.py de pyOSC a tout ce qu'il faut pour créer un client/serveur. Il sera utilisé dans Blender en python 3.2
Routage
Liens Ressources vers Wikipedia:
Le routage est le mécanisme par lequel des chemins sont sélectionnés dans un réseau pour acheminer les données d'un expéditeur jusqu'à un ou plusieurs destinataires.
Le serveur de jeu doit envoyer des données à tous les joueurs: c'est du routage ! Image Wikipedia:
Unicast
Broadcast
Multicast
twisted
sudo apt-get install python-twisted
txosc un module python qui utilise twisted
txosc our envoyer recevoir en OSC:
Developpé par
- Arjan Scherpenisse <arjan@scherpenisse.net> scherpenisse.net/
- Alexandre Quessy <alexandre@quessy.net> alexandre.quessy.net
Ce module est inclus dans mes fichiers, sinon pour l'installer:
sudo apt-get install python-txosc
Multicast
En résumé, le Multicast permet à des clients et des serveurs de se connecter sur tous la même adresse (ip, port):
La plupart des routeurs ( celui qui vous donne votre adresse ip avec le dhcp et vous connecte à internet ) supporte le Multicast. En IPV4, les adresses entre 224.0.0.9 et 224.0.0.255 sont réservées au Multicast.
Plus de détails sur le Multicast
Principe du jeu
Toutes les datas sont toujours dans des bundles, pour que les transferts et traitements soient très rapides, et ne pas ralentir le jeu. L'IP du serveur est envoyée toutes les secondes sur le Multicast, ce qui permet au client de connaître cette adresse pour envoyer sur le serveur.
Game Server | Réseau | Routeur | Réseau | Joueur Lambda |
---|---|---|---|---|
Serveur :
|
eth | Routeur du réseau local | eth |
Joueur :
|
Client / Serveur
- Serveur:
- Sur le réseau du routeur
- Peut être utilisé pour lancer un joueur
- Reçoit en Unicast en UDP
- Joueur Client:
- Sur le réseau du routeur
- Reception en Multicast en UDP
- Envoi en Unicast en UDP
Blender 2.62 avec python 3.2
- Les versions 2.5x et 2.6x utilisent obligatoirement python 3
- twisted et txosc n'existent pas en python3. La version de twisted python3 est en cours en 2013.
- Les versions avant 2.62 ont un bug dans le blenderplayer
- La réception des messages OSC est fait avec le module socket et decodeOSC de OSC.py. Le script Multicast dans Blender 2.6.
- L'envoi des messages OSC est fait avec OSCClient de OSC.py
Fichiers
Le python est plus propre: merci à Gérard Swinnen.
- Rendre exécutable MultiPassForFreedom_Server, puis clic pour lancer le server
- Rendre exécutable MultiPassForFreedom_Client, puis clic pour lancer un joueur, un seul joueur par PC.
Le fichier pour xubuntu 12.04
Juin 2013 : Toujours des bugs mais tous les niveaux sont jouables
- Blender 2.62 ou plus, twisted doivent être installés. Les versions avant 2.62 ont des bugs dans le blenderplayer.
Blender 2.6x ne tourne qu'avec python 3. Problème Python 3 :
- Les recherches sur internet en python 3 donnent très peu de réponses.
- Beaucoup de modules n'ont pas été portés, et s'ils le sont, la doc est très limitée.
Utilisation dans d'autres projets
Exemple de soft qui envoient ou recoivent OSC
- Ardour, Blender with python script, EyesWeb, liblo, a C library for Unix, Max/MSP, OSCulator, Processing, Pure Data, Quartz Composer, Reaktor, SuperCollider, TouchOSC, Traktor DJ Studio, Veejay, VirtualDJ, vvvv.