Jump to content
×
×
  • Create New...

[Source] Compiler: Pourquoi? comment?


Kijaru
 Share

Recommended Posts

  • Funkiest

Niveau requis  Débutant

Temps estimé :  20 minutes

Bonjour à tous ! 😀

 

Aujourd'hui, petites explications sur la compilation: pourquoi compiler son propre game/db/lanceur? Comment ça se passe? C'est compliqué?

 

Pré-requis:

Aucun

 

I. Les codes sources, kesako?

 

Révélation

 

Un code source, c'est quoi?


Le "code source" nous permet d'écrire des choses compréhensibles par les humains, et utilisables par l'ordinateur, via des langages de programmation.

L'ordinateur ne peut lire que ce qui s'appelle du "binaire", c'est à dire une suite de 0 et de 1 incompréhensible pour nous.

 

010001100111010101101110011010110111100100101101010001010110110101110101

"Funky-Emu" en binaire

 

Un langage de programmation, c'est une manière d'écrire en langage humain des instructions qu'on pourra ensuite "traduire" en langage machine, le binaire.

Retenez bien cette notion de "traduction", c'est important pour la suite 😉

 

Par exemple, pour écrire "Hello, World!", on peut le faire via:

 

Le C

Révélation

#include <stdio.h>

main()
{
    printf("Hello, world\n");
}

 

 

Le Python

Révélation

print "Hello, world!"

 

 

Le Java

Révélation

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, world!"); 
    }
}

 

 

Et des langages de programmation, il en existe des milliers ! Plus ou moins ésotériques, plus ou moins simples, ils ont tous leur objectifs propres.

 

Metin2 utilise quatre langages de programmation: le C++, le C, le Python, et le LUA.
Le C et le C++ pour le code source du jeu, le Python et le LUA pour les scripts et les quêtes.

 

II. La compilation

 

Révélation

 

Compiler un programme, ça consiste en quoi?


C'est traduire le langage humain (Python, C++, Java, etc...) en langage machine (binaire), avec un outil qui s'appelle un compilateur.

 

image.png.d4343c4605986fde8c7d7b298bac683b.png

 

 

Pour compiler, on se sert par exemple de Visual Studio (Windows), ou de Gmake (sur FreeBSD), qui ont leur fonctionnement propre.

 

Info. Pour Metin2, on se sert généralement de Gmake pour compiler la partie serveur du jeu (le game et la db), et de Visual Studio pour compiler le lanceur client. On peut très bien utiliser Visual Studio pour compiler le serveur et le client cela dit.

 

La question est: peut-on utiliser un programme compilé avec Gmake, mais dans Windows?

La réponse courte est: non. Le compilateur que vous utilisez définit la manière dont le programme sera interprété, et donc définit le(s) système(s) d'exploitation qui pourront l'utiliser.

 

 

III. Les avantages de la compilation

 

Révélation

 

Quand vous voulez modifier quelque chose dans la game, par exemple ajouter les orbes dans les magasins:

  • Sans les sources, vous devez chercher une DIFF pour la bonne révision du game, l'appliquer, prier pour que ça marche.
  • Avec le code source, vous ouvrez un fichier, vous modifiez deux lignes, et c'est fini! 

 

Plus besoin de DIFF, de modifications barbares: vous pouvez TOUT faire proprement, et quand je dis tout, je pèse mes mots: avec le code source, vous pouvez modifier le jeu en totalité!


C'est comme ça que vous pouvez, par exemple, ajouter des races comme le Lycan, ajouter des systèmes, protéger plus efficacement votre client, etc...

 

 

Voilà, ce petit tutoriel est fini, n’hésitez pas à laisser un commentaire si quelque chose manque, ou que vous avez besoin d'éclaircissements ! 🤗

 

Edited by Alex43
  • J'adore 16
  • J'aime 1
Link to comment
Share on other sites

  • 3 years later...
  • 2 weeks later...
  • 2 months later...
 Share



  • Flux d'Activité

    1. 0

      Projet Genesis

    2. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    3. 0

      Metin2 Champions - Accès anticipé

    4. 0

      Barbok

    5. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    6. 2

      Partage Émulateur 2.63

    7. 2

      Partage Émulateur 2.63

  • Recently Browsing

    • No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.