See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: Silbervogel pour Orbiter: mon premier add-on...  (Read 32165 times)

0 Members and 1 Guest are viewing this topic.

Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
07 August 2016, 17:05:28
Salut!
Après avoir un peu volé dans Orbiter, j'ai décidé de m'attaquer à la création de mon premier add-on.
Je voulais faire quelque chose d'original et de simple à faire, impliquant aussi peu de systèmes compliqués que possible, j'ai donc décidé de répliquer le Silbervogel dans Orbiter.

Pour ceux qui ne savent pas ce qu'est le Silbervolgel, il s'agit d'un projet de bombardier suborbital imaginé en 1944 par Eugen Sänger. L'idée était qu'en utilisant les rebonds sur l'atmosphère consécutifs à un lancement balistique, on pourrait atteindre un rayon d'action impensable pour des appareils plus conventionnels. Un vol typique devait s'effectuer comme suivant:

-Accélération le long d'un rail de trois (ou quatre selon les sources) kilomètres de long à l'aide d'un moteur-fusée de 600 tonnes de poussée. LA vitesse en sortie de rail est de 800 km/h.



-Une fois Mach 1.5 atteint (au bout de 40 secondes de combustion, soit une accélération de 5.2 G), le booster est largué et le pilote met en route son moteur fusée principal (d'une poussée de 120 tonnes) pour atteindre les 145 km d'altitude. Une fois le carburant épuisé, la trajectoire devient balistique.



-Au cours de la descente, le gain de portance consécutif à l'augmentation de la pression atmosphérique fait rebondir l'engin, ce qui lui permet par rebond successif d'atteindre des objectifs très lointains. Au cas où les rebonds seraient insuffisants, l'emploi de quatre (ou deux selon les versions de l'appareil) moteurs-fusée auxiliaires d'une poussée de 12 tonnes chacun permet de compenser le manque d'énergie.



-Après avoir survolé sa cible (typiquement, les Etats-Unis), le bombardier continue sa route et finit par se poser au Japon.

Pourquoi ai-je choisi cet appareil? Plusieurs raisons à cela:
-C'est une machine simple, aussi bien sur le plan des systèmes embarqués (pas de pilotage automatique, sauf un maintien d'angle d'attaque prédéterminé, pas d'ordinateur de bord...) que sur celui de l'emploi en général (pas de manœuvres orbitales complexes).

-Le fait qu'il n'ai jamais volé me laisse une plus grande marge de manœuvre niveau réalisme.

- Enfin, j'adore son look.  :)

Je viens de finir le modèle 3D, et je vais m'attaquer à la rédaction du fichier de configuration sous Notepad. Si j'arrive à avoir un rendu qui me plait, je verrai pour intégrer un cockpit 2D basique regroupant les quelques interrupteurs nécessaires à la mise en oeuvre de la machine, voir quelques animations (gouvernes, trains). Le truc est que je connais les grandes bases du C++, mais que je n'ai jamais bidouillé de DLL...

Pour l'instant, ça donne ça (modèle non texturé):

Le vaisseau



Le booster



L'ensemble sur le rail de lancement



Voilà voilà...  :)

i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline Maxorbiter

  • LordCroussette
  • Legend
  • ******
  • Posts: 2372
  • Country: Canada ca
  • Karma: 204
    • J'écris des fanfictions!
Reply #1 - 07 August 2016, 18:36:37
WOW ! :eek:

Je vais suivre ce project avec impatience !
Par contre, fait attention a ne pas mettre trop de polygones, les "low-end PC" vont avoir du mal a le gerer sinon. :)



Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #2 - 07 August 2016, 19:16:00
Ca commence bien, Visual Studio 2015 ne me permet pas de compiler des DLL compatibles avec autre chose que Windows 10...  :worry:



Bon, je vais voir si je trouve autre chose...

i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #3 - 07 August 2016, 19:22:09
C'est normal, il faut pas choisir Universal Windows qui est la nouvelle API windows. Il faut choisir dans Visual C++ un projet de librairie dynamique (.dll) et ensuite indiquer VS2015 les chemins vers les dossiers \Orbitersdk\include et \Orbitersdk\lib.



Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #4 - 07 August 2016, 19:26:44
Heu... Dans l'onglet Visual C++, le sous-menu Windows (Universal) est le seul qui me propose de faire un projet DLL. Je vais fouiller.

EDIT: voici tous les choix qui me sont proposés:



Pas de DLL autre que celle d'Universal Windows  :sad:


Au passage, dois-je utiliser le SDK de 2010 ou passer directement sous celui de 2015?


« Last Edit: 07 August 2016, 19:34:40 by Hawxx »
i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #5 - 07 August 2016, 19:43:18
Okay j'ai trouvé.
Je suis idiot.

i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #6 - 07 August 2016, 19:48:03
Ca fait longtemps que j'ai pas touché à C++ dans Visual Studio lol, normalement c'est un projet DLL avec Win32. Mais là comme il y a pas, faut prendre Projet Win32 je pense.


Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #7 - 07 August 2016, 19:56:52
Oui c'est ca. En fait il faut créer un projet Win32, puis une fois que ce projet est créé spécifier que l'on veut une .dll...

i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #8 - 07 August 2016, 20:03:38
Bon, ça ne compile toujours pas, même avec les répertoires lib et include, mais on progresse...

EDIT: Je n'arrive même pas à compiler le CPP de la ShuttlePB de base sans avoir un tas d'erreurs de lien (2001 et 2019). Pourtant, le code est celui du SDK et j'ai bien configuré les répertoires VC++





Bon, je vais fouiller un peu le net.

« Last Edit: 07 August 2016, 22:04:39 by Hawxx »
i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline Milouse

  • Legend
  • ******
  • Posts: 1927
  • Country: France fr
  • Karma: 216
Reply #9 - 08 August 2016, 11:57:17
Bonjour,

Bon courage pour ce premier projet ! :top:


Milouse


Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #10 - 08 August 2016, 14:13:59
Merci! Si tu sais comment résoudre mon problème, je suis preneur... :)

i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline Milouse

  • Legend
  • ******
  • Posts: 1927
  • Country: France fr
  • Karma: 216
Reply #11 - 09 August 2016, 11:50:32
Bonjour,

Malheureusement non. :sad:
J'avais suivi le tuto de Dansteph jusqu'à la compilation de la dll du ShuttlePB, à l'époque. Tout au plus, je dirais qu'il faut définir plusieurs répertoires pour les Includes, ainsi que pour les bibliothèques, et qu'il faut faire attention à l'ordre dans lequel on les déclare...
Est-ce que Visual Studio 2015 se suffit à lui-même, ou faut-il installer d'autres ressources ? :)


Milouse


Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #12 - 09 August 2016, 12:33:12
J'ai aussi suivi ledit tuto...sauf qu'il n'est plus vraiment à jour  :sad:

La bibliothèque lib64 (celle qui doit être mise en dernier d'après Dan) n'existe visiblement plus sous 2010, et n'est pas présente dans le SDK du simu. Partant de là...



Si j'arrive à finir cet addon, je jure solennellement de rédiger un tuto sur le paramétrage de VS 2015 pour la réalisation de dll destinés à Orbiter 2010.  :)

i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #13 - 09 August 2016, 14:49:22
Ce qui à l'air de manquer c'est une grande partie de l'accès à la SDK... Je dirais Orbiter.lib au vu des manques de résolution.


Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #14 - 09 August 2016, 14:58:38
Pourtant, Orbiter.lib est contenu dans le dossier Lib que j'indique à VS :(
Je vais essayer de tout indiquer un  par un...

i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #15 - 09 August 2016, 19:49:04
HAHA!
LE TRIOMPHE DE L'HUMAIN SUR LA MACHINE!


i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline antoo

  • Legend
  • ******
  • Posts: 3659
  • Country: France fr
  • Karma: 179
  • MSFS ❤️
Reply #16 - 09 August 2016, 20:53:12
C'est très beau! hâte de voir es textures, BRAVO !

---------------------------------------------------------------------------------------------------
"ET C´EST PARTI!!" Youri Gagarine au lancement de vostok 1 le 12 avril 1961

Offline jacquesmomo

  • Le budget !!!
  • Legend
  • ******
  • Posts: 7463
  • Country: France fr
  • Karma: 614
  • Plus on rate, plus on a de chances de réussir !..
Reply #17 - 09 August 2016, 21:46:30
:prof: Un tuto pour installer/configurer/bidouiller le tout pour que ça compile en voilà une idée qu'elle est pas mauvaise...  :badsmile: lui, il est intéressé!!!

Mes add-ons sont là !

Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #18 - 09 August 2016, 22:17:57


Comment as-tu fait? Lier toutes les librairies une par une a marché? (lier le dossier contenant les librairies devrait le faire normalement)


Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #19 - 09 August 2016, 22:31:57
Bein c'est plus un bidouillage temporaire qu'autre chose en fait. J'ai juste remplacé le:

Code: [Select]
#include "orbitersdk.h"
Par le chemin complet, à savoir:

Code: [Select]
#include "C:\Games\Orbiter100830\Orbitersdk\include\orbitersdk.h
Donc c'est pas une vraie résolution du souci ( :sad:), c'est un bricolage. Mais je vais voir où ça me mène: soit la dll qui en résulte est portable et marche sur toutes les machines, dans ce cas tant mieux, soit ce n'est pas le cas et ça me permettra au moins de coder mon truc dans mon coin en attendant de trouver une solution définitive au problème.

Au pire je supplierai le maître des lieux de jeter un coup d’œil à mon code (mais j'ose pas encore, je ne suis pas tout à fait au fond du désespoir...). :)

i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #20 - 09 August 2016, 22:48:11
Bon. Au-delà du code pur, je m'attelle aussi (quand je n'ai pas mon PC avec moi) à définir les principaux paramètres de vol et une doctrine d'utilisation. Et là je cale sur un point.

Le booster est sensé être non-pilotable, dans le sens où il ne fait que pousser sans permettre de diriger le vaisseau (rôle qui revient au couple ailerons-gouvernes de profondeur). Seulement, sur tous les plans et les schémas, on voit clairement que la tuyère dudit booster est équipe de quatre gouvernes de contrôle de flux en graphite identiques à celles de l'A4. D’où ma perplexité: quelle est l’utilité de ces gouvernes si le booster n'est pas pilotable?.. Mystère.

i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline antoo

  • Legend
  • ******
  • Posts: 3659
  • Country: France fr
  • Karma: 179
  • MSFS ❤️
Reply #21 - 09 August 2016, 23:40:22
Ils modifient la direction de jet des gaz :) !!

---------------------------------------------------------------------------------------------------
"ET C´EST PARTI!!" Youri Gagarine au lancement de vostok 1 le 12 avril 1961

Offline Hawxx

  • Full Member
  • ***
  • Posts: 168
  • Karma: 7
Reply #22 - 10 August 2016, 00:54:31
Je sais bien. Mais tu m'explique l'intérêt de modifier la direction de la poussée si ce n'est pas pour diriger le bidule ?

i9-9920X ES/32go 3866mhz CL19/SLI nVidia 2080Ti FE/Virpil T-50

Offline Milouse

  • Legend
  • ******
  • Posts: 1927
  • Country: France fr
  • Karma: 216
Reply #23 - 10 August 2016, 12:03:37
Bonjour,

Peut-être pour pouvoir quitter le rail de lancement en toute sécurité en bout de course ? Vu la position du booster par rapport aux ailes et aux gouvernes de profondeur, je me dit que les commandes aérodynamiques doivent être neutralisées le temps de la combustion du booster, qui semble se prolonger quelque peu après l'envol.
Et à la sortie du rail, il faut bien prendre de l'incidence pour gagner en altitude et régler l'azimuth (c'est un bombardier stratégique, non ? ;) ).


Milouse


Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #24 - 10 August 2016, 19:02:05
J'ai juste remplacé [par] le chemin complet

As-tu "C:\Games\Orbiter100830\Orbitersdk\include" dans la propriété "include" de VS2015? Si oui, il ne devrait y avoir aucun effet entre la première méthode d'inclusion et la seconde.