Tutoriel PocketMine-MP – Créer votre serveur pour Minecraft Bedrock ! [Windows/Linux et MacOS]

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
Bonjour et bienvenue dans ce tutoriel où je vais vous apprendre à créer votre serveur pour Minecraft Bedrock sur une machine Windows, Linux ou MacOS. Pour être sûr que nous sommes bien sur la même longueur d'onde, je vous invite à lire ce guide pour mieux comprendre de quoi je parle en disant « Minecraft Bedrock ».

Maintenant que tout est clair, passons au vif du sujet. Que ce que PocketMine-MP (PMMP) ?

PMMP est un « logiciel serveur » pour Minecraft Bedrock. Il faut savoir que PMMP n'est clairement pas le seul « logiciel serveur » disponible mais c'est l'un des rares qui est encore mis à jour et qui a un bon avancement permettant son usage (ainsi qu'une communautée active). Pour avoir une liste des autres projets, je vous invite à consulter cette page.
Sur Java, vous connaissez sûrement Spigot et bien là c'est pareil sauf que cela permet d'accueillir les joueurs de Minecraft Bedrock. Bien que les fonctionnalités et plugins offerts par PMMP soient à ce jour moindre que celles offertes par Spigot, tout ceci tend à rapidement se développer avec l'essor de Minecraft Bedrock.

Il faut également savoir que le fonctionnement interne est très différent. En effet, Minecraft Java et Minecraft Bedrock ne sont pas écrits dans les mêmes langages et n'utilisent donc pas les mêmes protocoles pour faire transiter des données. Ainsi, les « logiciels serveur » pour Minecraft Java sont écrit en Java et ceux pour Minecraft Bedrock sont écrit en Php et c'est effectivement le cas de PMMP.

Avant de passer à la mise en place du serveur, voici quelques prérequis :
  • avoir installé Php 7.2 avec certaines extensions (une partie du tutoriel plus bas est dédiée à la mise en place de Php) ;
  • avoir une machine (VPS ou serveur dédié de préférence sous une distribution Linux) pour installer le serveur dessus avec une fréquence correcte et un processeur plutôt similaire à ceux utilisé pour héberger des serveurs Minecraft Java ;
  • 1 GB de mémoire vive (RAM) au minimum ;

Il est recommandé d'avoir un minimum de connaissances en installation de serveurs (sous Java) et des connaissances de base en UNIX si vous êtes sous Linux.

Note : PMMP ne supporte pas les systèmes 32 bits, si c'est le cas de votre machine, il faudra la changer.

Pour Windows uniquement : Vous devez vérifier que Microsoft Visual C++ 2017 Redistributable est correctement installé sur votre système pour ne pas avoir de problèmes avec Php.


Installation des prérequis :

Si vous possédez déjà Php 7.2, nous n'avez pas besoin de suivre cette partie du tutoriel. Vous pouvez vérifier votre éventuelle version Php grâce à la commande : php -v.

Procédure d’installation de Php 7.2 (source : https://thishosting.rocks/install-php-on-ubuntu/)
  1. Mettre à jour votre système et vos dépôts : sudo apt-get update && sudo apt-get upgrade
  2. Ajouter les paquets nécessaires et le repository dont vous aurez besoin : sudo apt-get install python-software-properties puis sudo add-apt-repository ppa:ondrej/php (pressez la touche « entrer » comme demander)
  3. Remettre à jour votre liste de packets : sudo apt-get update
  4. sudo apt-get install php7.2. Si la commande vous demandez une confirmation, écrivez simplement « y » pour accepter
  5. Vérifier que votre système tourne bien sur la bonne version de php à présent : php -v

Vous devriez avoir quelque chose de proche:
1524495874-screenshot-from-2018-04-23-14-52-17.png

Pour installer Php 7.2 sur Windows, référez-vous à ce tutoriel (Anglais).


Installation du serveur :

Maintenant que nous avons une version de Php correctement installé, nous pouvons nous occuper du serveur. Encore une fois, le processus sera différent en fonction de si vous êtes sur Windows ou non.

Nous allons d'abord créer un dossier pour installer notre serveur. Personnellement, je vais le mettre dans "home" et l'appeler "PMMP":
Code:
cd /home && sudo mkdir pmmp && cd pmmp/

Une fois dans ce dossier, on utilise le script tout fait que l'on télécharge, avec curl par exemple :
Code:
curl -sL https://get.pmmp.io | bash -s -
Note : Ce script ne doit pas être lancer en tant que root. Je pars ici du principe que vous avez des compétences de bases en systèmes Unix et donc que vous utilisez votre propre utilisateur avec des privilèges sudo.

1524495872-screenshot-from-2018-04-23-14-57-14.png


Quand c'est fait, il ne vous reste plus qu'à lancer le serveur, et oui, déjà, c'était rapide ! Il est important de notez qu'il est recommandé de le lancer en tant qu'utilisateur et non en root.

La commande pour le lancer est la suivante :
Code:
./start.sh

Rendez-vous à l’emplacement de votre choix et créer un nouveau fichier. Moi je vais l'appeler "PMMP".

Une fois fait, rendez-vous sur ce lien pour télécharger le fichier PocketMine-MP.phar. Glissez le ensuite dans votre dossier et renommez le en PocketMine-MP.phar.

Ensuite, créé un fichier start.cmd qui permettra de lancer votre serveur. Dans ce fichier, mettez ceci :
Code:
@echo off

TITLE PocketMine-MP server software for Minecraft: Pocket Edition
cd /d %~dp0

if exist bin\php\php.exe (
        set PHPRC=""
        set PHP_BINARY=bin\php\php.exe
) else (
        set PHP_BINARY=php
)

if exist PocketMine-MP.phar (
        set POCKETMINE_FILE=PocketMine-MP.phar
) else (
        if exist src\pocketmine\PocketMine.php (
                set POCKETMINE_FILE=src\pocketmine\PocketMine.php
        ) else (
                echo "Couldn't find a valid PocketMine-MP installation"
                pause
                exit 1
        )
)

if exist bin\mintty.exe (
        start "" bin\mintty.exe -o Columns=88 -o Rows=32 -o AllowBlinking=0 -o FontQuality=3 -o Font="Consolas" -o FontHeight=10 -o CursorType=0 -o CursorBlinks=1 -h error -t "PocketMine-MP" -i bin/pocketmine.ico -w max %PHP_BINARY% %POCKETMINE_FILE% --enable-ansi %*
) else (
        REM pause on exitcode != 0 so the user can see what went wrong
        %PHP_BINARY% -c bin\php %POCKETMINE_FILE% %* || pause
)

Vous pouvez ensuite double-cliquer sur le fichier pour le lancer !

PMMP va normalement vous demander de sélectionner un langage (langage qui sera utilisé uniquement pour l'installation). Il faut rentrer eng pour l'Anglais et fra pour le Français.
1524495872-screenshot-from-2018-04-23-14-59-16.png


Juste après, vous devrez accepter la licence. Pour ce faire, il suffit d'écrire :
Code:
y
1524495872-screenshot-from-2018-04-23-15-00-07.png


Encore après, il vous demande si vous souhaitez passer l’assistant d'installation. Dans mon cas, je vais écrire "y" mais vous pouvez très bien écrire "N" et suivre l'assistant pour avoir une première configuration minimale pour votre serveur.

Après avoir suivi l'assistant d'installation (ou l'avoir passé) votre serveur démarre. Au niveau de la console, vous avez les informations de base, presque comme si vous lanciez un serveur Spigot.
1524495873-screenshot-from-2018-04-23-15-03-29.png


Comme sur Spigot, les commandes sont disponibles sur la console. Ainsi, vous pouvez écrire help pour afficher l'aide ou stop pour éteindre votre serveur. Une fois votre serveur éteint, il vous est possible de le rallumer avec la même commande que vous avez faites auparavant (./start.sh sous Linux).

Par défaut, votre serveur utilise le port 19132 (port par défaut sur Minecraft Bedrock). Si vous ne le changez pas, il est inutile de le spécifiée à la connexion, Minecraft Bedrock utilisera automatiquement celui-ci.


Configuration du serveur et plugins :

PMMP présente deux fichiers de config, relativement similaire à ce que l'on trouve sur des serveurs Java : server.properties et pocketmine.yml. Dans le premier, vous pouvez configurer des options basiques : port du serveur, motd, slots, mode de jeu, etc... Je ne vais pas m'attarder sur toute la config, les champs sont à mon avis assez clairs, mais je vous rends attentifs à ce champ :
  • xbox-auth = true. Si vous laissez la valeur sur true, le serveur va s'assurer que les joueurs sont correctement identifier sur Xbox Live à la connexion. Sinon, le serveur ne fera pas cette vérification.
Dans le second fichier, vous avez des options plus avancés relatives aux timings, à l'utilisateur (le joueur) ou à la génération du monde. Je vous rends cependant attentifs à quelques options que je vous invite à modifier :
  • settings.language = "eng". Pour être bien sûr que le serveur soit en français, vous pouvez remettre fra.
  • memory.main-hard-limit = 1024. Cette limite correspond à la mémoire vive maximale allouée. Si le serveur atteint ce stade, il s'arrête immédiatement.
  • debug.commands = false. Valeur à mettre en true si vous souhaitez pouvoir utiliser les commandes de debeug, je vous le conseille, c'est toujours pratique : /gc, /status.
  • player.allow-movement-cheat = true. Si vous mettez cette valeur en false, le serveur va essayer d'empercher les joueurs de tricher avec un speed-hack ou un noclip.
Pour éviter tout problème, il est important de faire les modifications de config avec un serveur éteint et de bien s'assurer de ne pas avoir d'erreur lorsque vous le rallumez après des changements. Si tel est le cas, référez-vous au forum d'aide de PMMP (Anglais).

Je n'irai pas plus loin dans la configuration de PMMP dans ce tutoriel car vous trouvez une version plus détaillée (et en français), juste ici. Je vous invite très fortement à le lire.

Les plugins sous PMMP, comme pour les serveurs sous Java, doivent être placés dans le dossier plugins se trouvant à la racine de votre serveur. À l'heure actuelle, il n'existe qu'une petite poignée de plugins disponibles sur Poggit. Si vous souhaitez obtenir plus d'informations relatives à ces plugins, je vous invite à consulter la documentation.


C'est la fin de ce tutoriel ! Je vous remercie de l'avoir suivi et j'espère qu'il vous a été utile ! Si vous avez des questions, n'hésitez pas à les mettres en réponse !


PMMP ~ Liens utiles :

Ce tutoriel a été réalisé sur une VM tournant sous Ubuntu 16.04.3 LTS.
 
Dernière édition:
  • J'aime
Reactions: Smog418

Aang23

= 157
16 Mai 2017
176
20
75
20
Bon tutoriel ! La mise en avant de Linux est appréciable.
Je tient à spécifier que PocketMine n'est pas le seul, il existe aussi Nukkit, qui lui, fonctionne sur du Java.
 
  • J'aime
Reactions: DiscowZombie

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
Salut,

Je tient à spécifier que PocketMine n'est pas le seul, il existe aussi Nukkit, qui lui, fonctionne sur du Java.
effectivement, bonne remarque sur laquelle je suis peut-être passé un peu vite ; j'ai choisi de présenter PocketMine car c'est le plus abouti et le plus actif : en effet, on y retrouve tous les éléments du gameplay (pas le cas de tous les autres), le Github et leur forum sont actifs et surtout PM supporte déjà les plugins !
 

Smog418

Aventurier
17 Juillet 2018
4
1
4
43
Merci le tuto très complet!

J'arrive à faire tourner le serveur (done), mais je n'arrive pas à m'y connecter sur deux appareils du même réseau local avec le port 13192 ouvert sur mon routeur. Ils ne détectent pas le serveur.

Qqn a une idée pour m'aider svp?
 

Aang23

= 157
16 Mai 2017
176
20
75
20
Si tu veux t'y connecter sur le même LAN que ton serveur, tu ne doit pas utiliser l'IP externe du routeur, mais l'IP/port du serveur.
 

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
Salut,

sur ton réseau local, c'est plutôt simple, pas besoin d'ouvrir tes ports ni de chose compliquée, il suffit que les personnes sur le même réseau que toi se connecte avec l'IP locale de la machine qui héberge. Pour trouver l'IP locale de la machine qui héberge, rends-toi sur ce site (avec la machine qui héberge) : http://www.mon-ip.com/adresse-ip-locale.php et tu peux ensuite te connecter au serveur avec cette dernière !
 

Smog418

Aventurier
17 Juillet 2018
4
1
4
43
J'ai pourtant essayé les deux... Interne/externe. Mon adresse locale du serveur est le 192.168.0.100 et il ne le voit pas.

Je tenterai de prendre des captures d'écran pour vous montrer p-e?
 

Smog418

Aventurier
17 Juillet 2018
4
1
4
43
Merci du coup de pouce!

Voici mon répertoire:


Le lancement de mon serveur:


Mon ipconfig lancé sur le serveur: