LaboCraft

Ici vous trouverez un ensemble de recherches sur les outils et fonctionnalités que nous développons dans Rennecraft

  • Rennescraft 2016 à la journée Numéripro

    Le 19 mai dernier le projet Rennescraft était présenté au salon Numéripro, organisé par le Master USSETIC de la faculté Rennes 2 Haute Bretagne et se déroulant en parallèle des off du Stunfest. Ce salon, axé autour des innovations et questions numériques dans les domaines du culturel et du social, notamment de la médiation, a permis à divers acteurs rennais de se rencontrer autour d’une table ronde et de présenter leurs divers projets dans l’optique de réussir à définir ce qu’est la médiation numérique. Cet article est une retranscription de la réponse apportée par l’équipe Rennescraft au cours de cette table ronde, après une présentation plus générale du projet au cours d’une après-midi où divers stands et intervenants étaient présents.  
        On pourrait tenter de définir la médiation numérique ainsi : La médiation numérique est une démarche visant à mettre en oeuvre des dispositifs de flux (animation de communautés), des dispositifs passerelles (la gestion/diffusion de contenus) et des dispositifs ponctuels (métiers de l’information – documentation) pour favoriser l’accès organisé ou fortuit, l’appropriation et la dissémination de contenus à des fins de diffusion des savoirs et des savoir-faire. La médiation numérique n’est ni de la communication ni du marketing public mais une médiation par et vers le numérique. Cette définition nous est donnée sur le site Bibliobsession, à laquelle on peut ajouter que ces visées sont tout à la fois éducatives (sensibilisation, initiation, approfondissement . . .), récréatives (loisir) et citoyennes ( être acteur de la vie de la cité), comme l’ont rappelées les assises de la médiation numérique en 2011.   Dans cette optique l’utilisation du jeu vidéo semble tout à fait intéressante et ce pour plusieurs raisons : tout d’abord parce qu’il s’agit d’une activité particulièrement ludique mais aussi riche en matière de culture populaire. C’est aussi un vecteur que l’on peut considérer comme inédit en matière de potentiel créatif, tout particulièrement pour les enfants et les jeunes, dont le jeu vidéo fait aujourd’hui partie intégrante des pratiques culturelles;   C’est ce parti pris que l’association 3HitCombo a choisi en engageant une réflexion autour du jeu vidéo Minecraft et de son usage dans le cadre d’une médiation urbaine numérique.  13240728_822483444523799_6534499846208029793_n Crée par Markus Persson, aka Notch, en 2009, et première réalisation de la société Mojang, le jeu était à la base prévu pour être jouable uniquement par navigateur, avant de s’ouvrir aux windows, mac et linux, notamment grâce à l’utilisation du programme java. Il est depuis sorti sur androïd, iOS, plateformes Xbox et Playstation ainsi que sur WIIU en décembre 2015. Minecraft est un jeu de type « bac à sable », cette appellation signifie que le joueur y est libre de définir ses propres objectifs grâce au panel d’outils fourni par les développeurs, la durée de vie du jeu ne se voit donc plus limitée au seul contenu initial de celui-ci, c’est la créativité du joueur qui devient le moteur de l’aventure. Il existe ici deux modes de jeu : la survie qui vous voit avancer prudemment, récoltant de précieuses ressources afin d’éviter les divers périls présents, notamment la nuit où des monstres apparaissent. Là l’exploration se révèle primordiale tout comme le craft, c’est-à-dire la faculté d’assembler divers éléments pour en créer de nouveaux. Et il y a aussi le créatif, où le joueurs à tout les éléments clef en main pour construire ce qu’il souhaite sans se soucier des terreurs nocturnes réservées au survival. Ici pas de craft, chaque élément du jeu vous est accessible dès le départ. Le choix, plus précisément, de Minecraft tient en trois points : tout d’abord le jeu est célèbre auprès des jeunes, une véritable communauté s’étant formé autour de lui, il est donc plus simple de les intéresser par ce biais que par un autre qu’ils reconnaîtraient moins. Mais il s’avère aussi très simple à prendre en main par les néophytes, et facile à expliquer de part ses caractéristiques de “lego virtuel”. Enfin, il s’adonne très bien à tout type de médiation de part son aspect bac à sable, son ouverture dans ses objectifs et la quasi infinité d’éléments pouvant être mis en place. Cela tenant aussi bien à ses caractéristiques inhérentes qu’à son aspect entièrement moddable.   Le projet Rennescraft quant à lui naît en 2013 après l’intervention de l’association 3HitCombo à l’Université Foraine rennaise, sur l’invitation d’Hugues Aubin, dans une optique d’expérimentation autour de Minecraft et du dispositif Raspberry Pi. La ville de Rennes s’intéresse alors  au projet qui est présenté une nouvelle fois lors du showroom Connexité, à titre d’exemple de médiation autour de l’urbanisme numérique. Le but est alors de s’atteler à la reproduction de la ville de Rennes au sein du jeu vidéo Minecraft. L’édition 2016 de Rennescraft est héritière de cette vision tout en se donnant de nouveaux objectifs : tout d’abord la mise en place d’un terrain de jeu contribuant à une médiation urbaine, axée autour du projet Rennes2030. Ce point-ci sera notamment évoqué avec les zones de Baud Chardonnet et l’ancien Technicentre SNCF, proche de la gare. Mais le but est aussi de faire découvrir et redécouvrir l’environnement et le patrimoine rennais aux participants et de faire émerger des propositions de construction. Cela passe aussi bien par une nouvelle appréhension de  l’organisation d’une ville que par la mise en valeur de ses moyens de vie. En parallèle les participants découvrent aussi des notions, métiers et outils attenant à la question de l’urbanisme. Dès lors, même si l’on peut souligner que Rennescraft n’est pas considéré comme un projet de concertation mais d’expérimentation, autour d’une médiation urbaine numérique, un des objectifs reste tout de même l’invitation faite aux participants d’exprimer leurs points de vue sur la ville.   Ces divers objectifs se concrétisent autour de deux piliers. Tout d’abord un volet IRL, nous voyant entrée en résidence à l’Hôtel à Projets Pasteur où nous accueillons les participants autour de deux moments d’accueil spécifiques, des ateliers et des permanences. Les ateliers sont découpés en deux instants. Dans un premier temps une visite de Baud Chardonnet ou du Technicentre, avec un(e) chargé(e) d’opération, présentant aux participants le lieu et expliquant les projets qui y sont prévus dans l’avenir ainsi que les hypothèses de transformations. Dans un second temps nous nous rendons à l’Hôtel Pasteur où nous mettons en pratique ce que nous avons appris et ce autour de thèmes précis : la voirie, les transports en commun, les logements, commerces, lieux de vie, les problématiques liées à la topographie, à l’environnement etc. Les ateliers sont sur inscriptions mais ne sont pas payants. Les permanences invitent les participants à revenir afin de continuer leurs réalisations mais c’est aussi un temps d’ouverture aux personnes de passage, de présentation du projet à tout ceux que cela peut intéresser. Enfin nous trouvons un volet VIRTUEL composé, tout d’abord, du serveur de jeu, accessible en online, mais aussi d’un ensemble de logiciels tel Dynmap, permettant d’afficher dans un navigateur web, en quasi-temps réel, la carte du serveur, ou encore Sketchup, permettant de travailler à partir d’une maquette virtuelle.   La reconstruction de Rennes dans le jeu, s’opérant autour de ces deux volets, s’applique au travers de trois calques : le premier est celui de la réalisation du Rennes actuel, le second celui de la construction du Rennes futur tel qu’il est prévu par le Plan Local d’Urbanisme et le dernier celui de la préparation du Rennes hypothétique tel qu’il est envisageable par les participants et le bon sens, sans entrée dans des considérations urbanistiques trop lourdes et compliquées : on garde cependant à l’esprit certaines notions comme les règles de constructions aux abords d’une voie ferrée.   Cette présentation de Rennescraft souligne son statut d’exemple de mise en place d’une médiation numérique.   Rennescraft s’est à la fois l’usage du jeu vidéo et de divers outils numériques ( Sketchup/ Dynmap / Google Map) mais aussi la mise en place d’une médiation traditionnelle s’appuyant sur les visites des futurs quartiers de Baud Chardonnet et de l’ancien Technicentre SNCF. Les deux sont intimement liés : lors de la visite sur le site nous avons en tête la reconstitution et le travail qui aura lieu dans le jeu (nous expliquons ce qui a déjà été réalisé par les groupes précédent tandis que certains participants sont déjà allés sur le dynmap voire sur le serveur) ; lorsque nous sommes dans le jeu nous exploitons les éléments mis en lumière lors de la visite.   En ayant en tête la définition donnée précédemment de la médiation numérique, nous pouvons dire que Rennescraft est une médiation PAR le numérique : au moyen du jeu vidéo on met en place une médiation urbaine tournant autour de Rennes qui permet au public de comprendre et de redécouvrir la ville mais aussi d’exprimer son point de vue sur cette dernière. Mais c’est aussi une médiation VERS le numérique : la médiation permet d’accompagner le joueur dans sa compréhension du jeu vidéo Minecraft et par extension tout ce qui est lier à l’usage technique de l’informatique, des éléments que l’on retrouve dans l’usage traditionnel d’un ordinateur. C’est aussi comprendre des notions basique de code et de sa logique, grâce au plug-in World-Edit, mais aussi voir comment on peut influencer son environnement de Travail Numérique au moyen du menu d’options du jeu où l’on encourage le joueur à se rendre et tester diverses options. C’est aussi, grâce aux ateliers, apprendre à travailler avec le logiciel skecthup, logiciel de modélisation 3D et à l’utiliser en coordination avec le jeu et la dynmap. Enfin dans le même esprit c’est apprendre à se repérer dans une réalité virtuelle, en combinant éléments numériques et visites effectuées sur le chantier, sans oublier les connaissances de chacun ayant trait à la ville. tableronde2   Face à ces remarques on peut admettre qu’il est difficile de définir précisément ce qu’est la médiation numérique : sa caractérisation est mouvante tout comme le sont ses applications et les expériences qui y sont liées. Il n’existe pas une médiation numérique mais plusieurs, notamment de par la complexité de définir en soit ce qu’est le numérique, mais aussi de part la pluralité des actions s’en réclamant : ainsi parfois ne faudrait-il pas mieux parler d’expérience dématérialisée ? La tentative de définition trouvée sur le blog Bibliobsession est celle résumant au mieux ces diverses aspirations : une médiation numérique est à la fois une médiation PAR le numérique (usage d’outils spécifiques) mais aussi VERS le numérique ( appréhension de connaissance spécifiques au médium). De ce point de vue Rennescraft est une proposition de réponse que l’on peut considérer comme adéquate, tout en s’inscrivant dans un cadre lié à l’urbanisme. Dans le même ordre d’esprit les différents participants de la table ronde sont tombés d’accord sur ce point : on ne peut donner de définition précise de ce qu’est la médiation numérique. La présentation du projet Rennescraft n’étant qu’une illustration d’une certaine application et définition de la médiation numérique, dans un cadre bien spécifique.
    Pour aller plus loin : Les stands des intervenantsLa table ronde  
  • Workshop 29/09/15 – Raspberry Pi et BungeeCord

    Les objectifs du jour

    • Installer, configurer Minecraft sur deux Raspberry Pi (version 2)
    • Installer, configurer BungeeCord sur l’un deux
    • Créer des portails permettant de passer d’un Raspberry Pi à un autre

    Installer Minecraft sur un Raspberry Pi

    L’installation de Raspbian se fait en suivant la documentation officielle: https://www.raspberrypi.org/documentation/installation/installing-images/README.md On se connecte en ssh au Raspberry Pi et on met à jour les paquets installés
    sudo apt-get update && apt-get upgrade
    On installe screen parce que ça servira plus tard
    sudo apt-get install screen
    On crée un groupe et un utilisateur minecraft
    sudo groupadd minecraft
    sudo adduser --ingroup minecraft minecraft
    On se déconnecte et on se reconnecte en tant que minecraft (important pour pouvoir lancer screen par la suite) On crée un répertoire spigot, on se positionne dedans
    mkdir spigot
    cd spigot
    On récupère un spigot.jar, soit en utilisant une version qu’on a déjà quelque part, soit en suivant les instructions à cette page: https://www.spigotmc.org/wiki/spigot-installation/. Attention, ne pas lancer la compilation sur le raspberry pi, il faut la faire sur une machine un peu performante. On copie spigot.jar dans le répertoire spigot qu’on a créé avant. On lance spigot une première fois (les paramètres de gestion de la mémoire peuvent changer en fonction de la version de java, si les bons ne sont pas utilisés, des indications sont données par spigot au lancement).
    java -Xmx512M -jar spigot.jar
    Lorsqu’il a fini de démarrer (avec un message disant qu’il faut accepter l’EULA), on l’arrete si nécessaire (« stop » au prompt) puis on modifie le fichier eula.txt en mettant « true » à la place de « false » puis on relance le serveur avec la même commande java. Le serveur doit démarrer sans erreur. Lorsqu’il a fini de démarrer, il nous donne un prompt (invite de commande) en mettant un « > » au début d’une ligne. La commande « help » permet de lister toutes les commandes disponibles, la commande « stop » permet d’arreter le serveur. Attention : il ne faut pas mettre de « / » avant les commandes. On arrête donc le serveur pour pouvoir le configurer.

    Configurer Minecraft sur un Raspberry Pi

    On récupère les plugins qui nous intéressent et on les copie dans le répertoire spigot/plugins. Pour l’instant, nous utilisons : Pour que le serveur minecraft puisse communiquer correctement avec BungeeCord, il faut modifier les paramètres suivants :
    • Dans server.properties, online_mode=false
    • Dans bukkit.yml, connection_throttle: -1
    On démarre le serveur minecraft en utilisant screen
    screen -dmS spigot java -Xmx512M -jar spigot.jar
    L’utilisation de screen fait que le terminal nous rend la main immédiatement. On peut retrouver la sortie de la commande java avec
    screen -r spigot
    Lorsqu’on est « dans spigot », on peut retourner à un terminal avec la combinaison de touches :
    Ctrl+A, Ctrl+D

    Installer BungeeCord sur un Raspberry Pi

    On se connecte en SSH avec l’utilisateur principal (par défaut : pi//raspberry) On crée un utilisateur bungee qui sera dans le groupe minecraft
    sudo adduser --ingroup minecraft bungee
    On se déconnecte et on se reconnecte en tant que bungee (important pour pouvoir lancer screen par la suite). On crée un répertoire bungee, on se positionne dedans
    mkdir bungee
    cd bungee
    On récupère un jar de BungeeCord en suivant les instructions à cette adresse : https://www.spigotmc.org/wiki/bungeecord-installation/. On copie le jar dans le répertoire créé avant. On lance BungeeCord une première fois pour qu’il crée tous ses fichiers de configuration.
    java -Xmx256M -jar BungeeCord.jar
    Lorsqu’il affiche une invite de commande, on peut l’arrêter avec la commande « end ».

    Configurer BungeeCord sur un Raspberry Pi

    La configuration de BungeeCord se fait dans le fichier « config.yml ». On commence par dupliquer le serveur « lobby » et on modifie les paramètres pour qu’ils correspondent à nos deux serveurs sur Raspberry Pi.
    servers:
      raspi_un:
        motd: 'Le premier raspi'
        address: localhost:25566
        restricted: false
      raspi_deux:
        motd: 'Le second raspi'
        address: 192.168.0.12:25565
        restricted: false
    Attention aux copié-collés, les espaces en début de ligne ont leur signification et marquent l’arborescence des données. En gras sont les paramètres que l’on peut modifier. On configure le serveur sur lequel les utilisateurs vont tomber par défaut (dans la partie « listeners »)
    default_server: raspi_un
    Notre installation étant hors ligne, on modifie « online_mode » au début du fichier;
    online_mode: false
    On peut maintenant relancer BungeeCord en passant par screen
    screen -dmS bungee java -Xmx256M -jar BungeeCord.jar

    Créer des portails pour passer d’un Raspberry Pi à un autre

    Avec un client minecraft, on se connecte à l’adresse de BungeeCord. Le client minecraft doit se comporter comme s’il se connectait au serveur « raspi_un » (configuration « default_server » de BungeeCord). Pour créer un portail, on suit les instructions à cette page : https://www.spigotmc.org/resources/bungeeportals.19/. Le nom à passer à la commande « create » étant « raspi_deux » (ou le nom du serveur vers lequel on veut aller, tel que configuré dans BungeeCord). Lorsqu’on passe dans le portail, après un petit délai, on spawn sur le serveur raspi_deux. On constate que nous n’avons pas le choix du point de spawn (c’est celui configuré pour la map).

    Permettre à des portails de spécifier les coordonnées d’arrivée

    Un test est effectué avec le plugin AdvancedPortals (http://www.curse.com/bukkit-plugins/minecraft/advanced-portals). Lorsque le plugin est installé et qu’aucun portail n’est encore créé, les logs se remplissent de stack trace (EventException: could not pass event xxx, caused by NullPointerException). Après analyse du code, il semble que ces erreurs ne surviennent que lorsqu’il n’y a pas encore de portail créé. A cet endroit : https://github.com/sekwah41/Advanced-Portals/blob/master/src/com/sekwah/advancedportals/Listeners.java#L171, il n’y a aucune vérification qui est faite sur la nullité des objets Portal et Portal.Portals. Après quelque recherches, il semblerait que ce plugin ne soit plus maintenu et que d’autres problèmes surviennent même si on ne s’arrête pas aux erreurs précédentes. Il semblerait qu’une solution plus récente pour répondre à notre problématique serait le fork de BungeeSuite fait par AddStarMC, nommé geSuite (https://github.com/AddstarMC/geSuit). L’installation et le test de ces plugins sera l’objet du prochain workshop.

    Conclusion

    • On sait installer et configurer Minecraft et BungeeCord sur Raspberry Pi. On sait qu’il est possible de passer d’un serveur à un autre in-game.
    • Il faut qu’on trouve un moyen de passer d’un serveur à un autre en choisissant les coordonnées d’arrivée.
    • L’information sur la configuration et les différent plugins Minecraft n’est pas très à jour et dure à trouver.

    Objectifs des prochains Workshop

    • Tests de charge sur des Raspberry Pi
    • Portails inter-raspi
  • Poser les bases et les emprises des bâtiments

    capt_rennescraft_01
    Tout commence par l'emprise des bâtiments de Rennes

    Tout commence par l’emprise des bâtiments de Rennes

    À partir des données fournies par le SIG de rennes, puis de l’utilisation de WorldPainter pour faire sortir de terre les grandes lignes de la carte