Gunivers-Lib – Une librairie de développement dans Minecraft !

Publié le 03 Mar 2018 à 04:03 par

Désormais lancé dans la création d’outil de map-making et plus seulement de map, la communauté de Gunivers nous offre aujourd’hui son tout nouveau projet : la Gunivers-Lib. À l’instar des outils habituellement connus (MCedit, WorldEdit, Lgdir, etc.), celui-ci se démarque en prenant la forme, non pas de plugin logiciel ou NoMod, mais bel et bien celle d’une librairie, d’où son nom.

Un librairie (ou bibliothèque), est un ensemble d’éléments utiles à la réalisation de projets, souvent complexes. Cela permet aux créateurs de ne pas réinventer la roue à chaque projet (en refaisant des fonctions de base ou en reconstruisant des structures très communes). Cette librairie a donc pour objectif de contenir un maximum de fonctions générales et utiles au développement de maps (ou autres projets) Minecraft ainsi que, à terme, des structures, resource packs, recettes, progrès et autres. Le tout permettant à n’importe quel map-maker de piocher les éléments qu’il souhaite ajouter à sa map, sans pour autant avoir les compétences ou le temps pour réaliser lui-même cet élément.

Que contient elle ?

Bien que la Gunivers-lib en soit à un stade de développement très peu avancé, elle contient d’ores et déjà un grand nombre de fonctions pratiques, permettant entre autres de créer des mécaniques de jeu avancées. La réalisation d’un Lgdir (système de gestion de projectiles), jusqu’alors complexe se fait en quelques commandes. Il sera également possible de créer des systèmes d’identification des entités présentes sur votre map, ou de bien utiliser des fonctions mathématiques avancées (fonctions trigonométriques, racines carrés, etc.). Ainsi, vous n’aurez plus aucune excuse pour ne pas créer des maps utilisant des moutons multicolores lançables rebondissants de partout et qui créent des trous noirs (toute ressemblance à un jeu existant est totalement fortuite). En revanche, la librairie ne contient pour le moment pas de structure, resource pack, recette ou progrès. La communauté attend l’arrivée de la 1.13 et des data packs pour ajouter ces derniers éléments. Qui plus est, la 1.13 apportant énormément de modifications dans les fonctions, une bonne partie de la librairie est déjà en train d’être réécrite et des nouvelles possibilités s’offrent aux créateurs.

Comment utiliser les fonctions ?

L’utilisation de la librairie peut ne pas paraître évidente pour certains et ce pour une raison simple : les fonctions de Minecraft ne sont pas vraiment des fonctions comme on en a l’habitude dans les autres langages (avec des paramètres et des retours). Gunivers a donc « simulé » ces paramètres et retours pour faciliter l’utilisation aux développeurs de longue date et pour faciliter l’explication aux autres. Ainsi, chaque fonction dispose d’un en-tête vous permettant de comprendre :

  • Les prérequis (requierements) : score(s) et/ou autre(s) élément(s) à mettre en place afin que le système puisse fonctionner ;
  • Les paramètres (input) : score(s) et/ou éléments(s) que la fonction va utiliser comme données pour exécuter sa tâche ;
  • Les retours (output) : score(s) et/ou autre(s) élément(s) que la fonction utilisera pour conserver les résultats (vous pourrez alors récupérer les résultats sur ces scores/éléments) ;
  • Autre : certaines fonctions peuvent avoir un fonctionnement assez différent (même si c’est rare). Tout est alors décrit dans l’entête ou dans un fichier ReadMe présent dans le dossier contenant la fonction.

Ainsi, prenons l’exemple d’une fonction prenant 2 variables en paramètre et retournant 2 autres variables. Ces deux variables devront contenir respectivement la somme et le produit des deux variables en paramètre. La marche à suivre est la suivante :


Gunivers recommande vivement d’installer le logiciel Notepad++ (un éditeur de texte avancé) ainsi que leur add-on, le CSH (un colorateur syntaxique facilitant la lecture des fonctions).

Liste des fonctions

ATTENTION IL Y A DES MATHS !!!! Voilà, j’ai fait fuir ceux qui ne sont pas prêts pour la suite…

  • Math
    • Sin : Calcule le sinus d’un angle ;
    • Cos : Calcule le cosinus d’un angle ;
    • Tan : Calcule la tangente d’un angle ;
    • Arcsin : Calcule l’arc-sinus d’un angle ;
    • Arccos : Calcule l’arc-cosinus d’un angle ;
    • Arctan : Calcule l’arc-tangente d’un angle ;
    • Divide : Permet de réaliser une division « normale » (et non euclidienne/entière comme le propose le jeu) ;
    • Factorial : Permet de calculer le factoriel d’un nombre ;
    • Pow : Permet de calculer un nombre donné à une puissance donnée ;
    • GCD : Permet de calculer le plus grand commun diviseur de deux nombres.
  • Health
    • Advanced : Permet de gérer la vie d’une entité via un scoreboard.
  • Id
    • GetSUID : Permet d’obtenir un identifiant simple ;
    • GetCUID : Permet d’obtenir un identifiant chaîné (sans « trou » entre les identifiants causé par la mort d’une entité possédant un UID) ;
    • UpdateCUID : Permet de maintenir la chaîne des CUID ;
    • Check : Permet de comparer les différents identifiants des entités.
  • Inventory
    • ActiveSlot : Permet de détecter l’emplacement de l’inventaire utilisé par le joueur ;
    • IsOffHand : Permet de détecter si le joueur utilise sa deuxième main.
  • Location
    • Get : Permet d’obtenir la position d’une entité ;
    • GetDistanceToTargetID : Permet de calculer la distance entre deux entités ;
    • RelativeToTargetID : Permet de calculer la position par rapport à une autre entité ;
    • Set : Permet de placer une entité aux coordonnées données (pouvant donc servir de TP à base de variables) ;
    • Biome : Permet de détecter le biome dans lequel le joueur se trouve.
  • Orientation
    • Get : Permet d’obtenir l’orientation d’une entité ;
    • GetPhiByVector & GetThetaByVector : Permet d’obtenir l’orientation à partir d’un vecteur donné ;
    • RelativeToTargetID : Permet d’obtenir l’orientation par rapport à une autre entité ;
    • Rotate : Permet de mettre en mouvement l’orientation de l’entité.
  • Vector
    • GetByOrientation : Calcule un vecteur à partir de l’orientation de l’entité ;
    • GetByTargetID : Calcule un vecteur jusqu’à l’entité ciblée ;
    • RelativeToTargetID : Calcule la différence entre les vecteurs de deux entités ;
    • Addition : Calcule la somme de deux vecteurs ;
    • GetLenght : Calcule la longueur du vecteur ;
    • Normalize : Replace les vecteurs entre les bornes limites données ;
    • Move : Permet de mettre l’entité en mouvement selon son vecteur.

Il est compliqué de décrire en détail la totalité des fonctions ici. Vous retrouverez la liste complète avec des descriptifs détaillés sur le site de Gunivers.

Comme dit plus haut, cette librairie est un outil pouvant s’avérer très pratique pour la création de maps plus complexes permettant, par exemple, de gérer véritablement le déplacement des entités (telles que les porte-armures) en y simulant la gravité à l’aide des vecteurs de la trigonométrie avec de simples fonctions à appeler et de simples paramètres à changer (la map Witchery utilise cet outil). Mais c’est aussi là l’un des principaux problèmes de cette dernière : l’utilisation de cette librairie peut paraître compliquée de prime abord, à devoir naviguer entre le jeu et les fonctions afin de voir leur spécificité et leur utilisation. Il est donc conseillé d’avoir de bonnes bases dans le domaine du bloc de commande afin de pouvoir s’en sortir.

Site officiel & téléchargement

Ce projet naissant étant très ambitieux pour seulement deux/trois personnes, il est possible à tous ceux qui le souhaitent de contribuer au développement de ce dernier, que ce soit dans la réalisation de functions, structures, ou de models à ajouter au data pack à l’arrivée de la 1.13.

Oromis

Command-blocker slimesque.

Correcteur(s)

Dartasen
TheShining

7 commentaires

Trier par : VOTESDATE

  1. GCD permet de calculer le plus grand diviseur commun et pas le plus grand dénominateur commun de deux nombres ( ça n’existe pas un dénominateur d’un nombre )

  2. « Ce projet naissant étant très ambitieux » ah ça oui ^^ C’est super d’avoir présenté ça, merci :3

Les commentaires sont fermés.

Recherche d'articles

Article à lire

Annonce

Partenaires

fantabob

Rejoignez nous !