Alors voilà, je vous propose un tutoriel pour la création de mod KSP. N'en trouvant pas moi-même, je me suis dit que c'était à mon tour d'apporter ma pierre à l'édifice. Ce tutoriel auras donc pour but de vous expliquer (aussi bien que je le peux) la création de mod, mais cette fois-ci du côté C# .
Petite précision : Je n'ai pas pour cible de vous apprendre le : C# , cependant je peux le faire si tel est votre souhait.
Toutes les remarques et surtout les négatives, sont bienvenue. Vous avez besoin de précisions ? Une faute d'orthographe ? Je me suis trompé ? N'hésitez pas non plus et venez me le dire.
Aller ça commence maintenant :
Partie 1 : Les premiers pas.
Le but de cette partie est de vous familiariser avec les outils et les fichiers de Kerbal Space Program, à travers le plus simple des mods, le "Hello World".
Nous allons donc voir comment rajouté des fonctionnalités à une part afin de pouvoir être plus à l'aise quand on voudra créer des mods plus complexes.
Partie 1.1 : Installation de l'environnement de développement (IDE)
Les mods de KSP sont écrit en C#. Il vous faut donc un logiciel permettant d'éditer et de compiler votre programme. Le plus utilisé est VisualStudio. C'est celui que je vais utiliser pour ce tutoriel. Mais il en existe d’autre comme MonoDevelop et SharpDevelop.
Liens de téléchargements :
- VisualStudio : http://www.visualstudio.com/downloads/d ... -studio-vs
- MonoDevelop : http://www.monodevelop.com/download/
- SharpDevelop : http://www.icsharpcode.net/OpenSource/SD/Download/
Outil additionnel mais indispensable :
Pour développer en C#, j'utilise un outil qui permet d'ajouter beaucoup de fonctionnalité de refactoring à VisualStudio, il est payant. Mais je suis sûr que vous le trouverais par vous-même. Il s'agit de Resharper, par l'éditeur JetBrains.
Liens de téléchargements :
- Resharper : https://www.jetbrains.com/resharper/
Partie 1.2 : Configuration de votre premier projet de MOD KSP
Une fois VisualStudio lancé, créé un nouveau projet. Notre mod sera une application de type Librairie, il faut donc sélectionné le type de projet correspondant :

Cliquez alors sur [OK], votre projet créé, il vous faut maintenant le configurer afin de tester vos plugins simplement. Nous allons donc créer un répertoire de sortie de compilation qui contiendrat votre plugin une fois compilé. Dans le répertoire de votre solution/projet, créez les dossiers Output, Plugins et Parts en suivant cette arborescence :

Ensuite, de retour dans votre IDE, faite un clic droit sur votre projet [1] puis "properties" [2] / "Build" [3] puis sélectionné la configuration "Release" [4]. Après cela, sélectionnez le menu "Browse" et mettez le chemin vers le répertoire "Output/Plugins" préalablement créé [5].

Enfin, cliquez sur le menu "Advenced..." [6] et mettez le champ "Debug-info" à "none". Puis validez l'ensemble (en sauvegardant) .
Une fois tout cela effectué, vous pouvez alors compiler votre projet en appuyant sur [Ctrl][Shift] et le message suivant apparaît alors dans la console.
Code : Tout sélectionner
1>------ Rebuild All started: Project: MonPremierModKSP, Configuration: Release Any CPU ------
1> MonPremierModKSP -> c:\users\kriyss\documents\visual studio 2013\Projects\MonPremierModKSP\Output\Plugins\MonPremierModKSP.dll
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
Partie 1.3 : Petit script d'aide
Une fois que votre fichier dll apparaît dans votre dossier output, il faut le mettre dans votre dossier d’installation de KSP. Et il faut bien l'avouer, on n'as pas envie de le faire à la main à chaque fois... Je vous propose donc un petit script afin de le faire automatiquement :
Code : Tout sélectionner
@echo off
set SOURCE = "CHEMIN/VERS/VOTRE/REPERTOIRE/OUTPUT"
set DEST = "CHEMIN/VERS/VOTRE/REPERTOIRE/DE/JEU/KSP/POUR/LE/DEVELOPPEMENT"
xcopy %SOURCE% %DEST% /D /E /C /R /I /K /Y
call KSP.exe

Partie 1.4 : Hello World!!
Bon, cette fois on y est. On va enfin créer notre premier mod. Dans un premier temps, il nous faut que l'on puisse rajouter de l'intelligence à une part.
Je vais donc en prendre une des part de ksp, disons la batterie z-1kBattery qui se trouve dans {DossierInstalationKSPDev}\GameData\Squad\Parts\Electrical\z-1kBattery. Il faut donc prendre tout ce dossier et venir le copier dans votre repértoire {VotreMOD}/Output/Parts. Ensuite renommer le dossier en MonPremierModKSP.
Ce dossier est composé de plusieurs fichiers, dont un qui nous intéresse plus particulièrement : le fichier z-1kBattery.cfg.
C'est ce fichier qui permet au jeu de savoir ce que fait la part, combien elle coûte, sa description ainsi que plein d'autres informations. Comme nous voulons modifier cette pièce, nous allons renommer le fichier de configuration en monPremierModKSP.cfg. A ce stade, vous devriez avoir cette arborescence :

Une fois tout renommé, ouvrez votre fichier monPremierModKSP.cfg et modifiez le comme ceci :
{
// --- general parameters ---
name = Mon premier mod KSP
module = Part
author = Kriyss
// --- asset parameters ---
mesh = model.mu
rescaleFactor = 1
node_stack_top = 0.0, 0.1108553, 0.0, 0.0, 1.0, 0.0
node_stack_bottom = 0.0, -0.1108553, 0.0, 0.0, 1.0, 0.0
// --- editor parameters ---
TechRequired = largeElectrics
entryCost = 8200
cost = 880
category = Utility
subcategory = 0
title = Mon Premier Mod KSP
manufacturer = Kriyss
description = Votre premier item modifié.
// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
attachRules = 1,0,1,1,0
// --- standard part parameters ---
mass = 0.05
dragModelType = default
maximum_drag = 0.2
minimum_drag = 0.2
angularDrag = 1
crashTolerance = 8
maxTemp = 3200
MODULE
{
name = MonPremierModKSP
}
RESOURCE
{
name = ElectricCharge
amount = 1000
maxAmount = 1000
}
}
Si vous lancer votre jeu avec le petit script .bat que je vous ai donné. Vous devriez avoir ces deux pièces dans votre éditeur :

Maintenant nous allons donner à notre part une intelligence. Pour cela, revenez sur VisualStudo et renommez votre fichier "Class1" en "MonPremierModKSP" .
Ensuite, il faut indiquer à notre projet où sont les librairies de ksp et de unity. Pour faire cela il faut faire un clic droit sur notre projet et ajouter deux références :

Ensuite il faut cliquer sur "Browse",

Aller dans votre répertoire de jeu ksp et prenez les fichiers “Assembly-CSharp.dll ” et “UnityEngine.dll ” contenu dans le dossier "KSP_DATA/Managed "
Vous devriez maintenant avoir cette fenêtre :

Cliquez alors sur [OK], et vous devriez alors voir dans votre explorer de solution les références nouvellement ajoutées :

Voici enfin notre premier mod :

Bon, concrètement que fait ce petit bout de code ridicule ? Et bien il permet d'afficher une fenêtre avec code titre "Titre de la fenêtre" et comme message : "Hello les kerbals".
Cette fenêtre ne s'affiche pas dans l'éditeur, il faut donc créer une fusée sans oublier notre nouvelle part et la mettre sur l'espace de lancement pour voir les effets de notre mod. La fenêtre serra en au à gauche de votre écran et vous pourrais la bouger à votre convenance.

Partie 1.5 : Un peu de style
Vous pouvez le dire, c'est assez moche. On vas donc un peu personnalisé notre fenêtre pour qu'elle ressemble un peu plus à l'univers de KSP.
Stylisons un peu :

Le résultat :

Partie 1.6 : Pour allez plus loin...
C'est la fin de la première partie, je sais c'est passé trop vite


L'intégralité du code ce trouve ici : https://github.com/kriyss/ksp-tuto.
Pour le style je vous recommande la documentation de Unity3D vers ce lien : http://docs.unity3d.com/ScriptReference/GUIStyle.html
Si vous avez le moindre problème n'hésitez surtout pas.
Et n'oubliez pas que c'est en moddant que l'on devient moddeur.