# Orbiter is now open source

#### zetacod3

##### New member
It's been a while ...

Dear Orbiter users and developers,

I haven't been around this place in quite some time, and for personal reasons haven't been able to push Orbiter development along for a few years now. In order to keep Orbiter alive and allow others to work on it, I have decided to publish the sources under an open source license:

This is essentially the 2016 Edition with some minor (and at least one major) fixes. I hope this is of use to somebody. The code is somewhat unorganised and sparsely documented, but it should compile and leave you with a working Orbiter installation. Note that the repository doesn't include all the required planetary textures, so you need to install those separately (e.g. by reusing an existing Orbiter 2016 installation - this is explained in the Readme and only requires setting a CMake option before configuring the build).

I am still hoping to work on future enhancements of Orbiter, but I can't make any promises or commitments. One of the most pressing issues is switching the code over to 64-bit, but this requires ditching the DX7 dependency (and ideally replacing it with DX11), but that is a major undertaking which I may or may not be able to do).

Please let me know of any compilation problems or any other issues with the repository, either here or by raising an issue on github. I am also happy to consider merge requests.

Happy coding!
This is Amazing! I can't wait to make some assets for the game!

#### Djowin

##### New member
Dear Dr Martin,
Thank you for this gift and all your incredible job on Orbiter for so many years !

#### jedidia

##### shoemaker without legs
I have a joystick library that someone might be able to integrate into Orbiter for improved joystick support.
Hmmm, might be a bit too windows specific (not really possible to tell without documentation, but at least the repository name suggests it). I can't be sure of course, but I kind of expect one direction of push to be to make orbiter more multi-platform friendly if that's at all feasible.

Ah, you're using irrKlang in there... How fitting, considering I once crammed the whole Irrlicht engine inside an orbiter UI window...

#### WolfAngriff

##### The NSEU (Never Satisfied End User)
Hello everyone !

First, of course, thanks to Dr Schweiger and all of you working on the stuff.

BUT : is it possible to have a short explanation on what's going on, as to give news on the french speaking forum ? I mean, i understand english, but i'm not a programmer, nor a designer, and for me it's like extra-terrestrial language ! So, if someone has a few minutes to give simple explanations to a non initiated human being, i'd be able to transmit news to my friends about those historical events without simply copy-paste in an automated translator. I think it's very important for the community to know more about what's happening. You can send it to me via PM and then i'll delete this post if you think it polludes the thread. Just tell me, i'll understand.

Again, thanx to all of you !

#### jarmonik

##### Well-known member
Orbiter Contributor
Beta Tester
I thought that the html help compiler (hhc.exe) is part of the VS toolset so everybody has it (at least for me, find_package seems to find it in a Windows toolkit). But maybe that isn't true for all VS installations? In that case I'll add it to the requirements for compiling the docs. Does the error still occur if you disable building the docs? Note you may have to pull the latest master to apply Face's fix to some docs even built with the flag unset.
Yes, it will still occur because the html-help library is required by following function and a few others: I'll install the Html Help package form archive.org and see how it goes.

C:
void OpenHelp (HWND hWnd, HINSTANCE hInstance, const char *file, const char *topic)
{
char topic_file[256];
sprintf (topic_file, "%s.htm", topic);
HtmlHelp (hWnd, file, HH_DISPLAY_TOPIC, (DWORD)topic_file); //  <---------
}

#### malcontent

##### Off on a Comet
Martin, thanks for building this incredible program and supporting the community around it. This is the closest one can get to the experience of space flight in front of a screen, I can land on the moon with free software, it's absolutely incredible. The dedicated mod community here I'm sure will push this to further greatness.

#### malcontent

##### Off on a Comet
Hello everyone !

First, of course, thanks to Dr Schweiger and all of you working on the stuff.

BUT : is it possible to have a short explanation on what's going on, as to give news on the french speaking forum ? I mean, i understand english, but i'm not a programmer, nor a designer, and for me it's like extra-terrestrial language ! So, if someone has a few minutes to give simple explanations to a non initiated human being, i'd be able to transmit news to my friends about those historical events without simply copy-paste in an automated translator. I think it's very important for the community to know more about what's happening. You can send it to me via PM and then i'll delete this post if you think it polludes the thread. Just tell me, i'll understand.

Again, thanx to all of you !

The source code to actually make (compile) the program was only in Martin's possession. He maintained possession of the program and how it could be distributed. He has released this code under the MIT license, one of the most permissive licenses, which says that the only requirement is that he must be credited with creating the code/documentation, in whole, or in part, and therefore you can do basically whatever the hell you want to do with it so long as you attach his name to it.

See: https://fr.m.wikipedia.org/wiki/Licence_MIT

#### jedidia

##### shoemaker without legs
I think it's very important for the community to know more about what's happening.
The short of it: The community is now able to directly modify Orbiter at the core, not just write add-ons for it. That means that bugs and feature requests that could previously only have been addressed by the Doctor can now be addressed by anyone with the necessary skill, time and motivation on their hands. Beyond that, one could take the orbiter core as a basis for a project and change it to ones needs and build a completely new application on top of it that wouldn't necessarily fit Orbiters vision. The license even permits use of the code in commercial projects, so if somebody intends to write a realistic space game they could use orbiter as an engine to have some solid ground to stand on.

As for what's going on right now with all of that, the community isn't exactly organised yet and there's a lot of ideas flying around, but a serious push to make orbiter use all the 64 bits modern computer systems have available has already started. The current version of orbiter is still built for 32 bits, which has implications on available memory and performance (especially since Orbiters coordinate system uses 64-bit variables, which require some costly overhead on a 32-bit system).

#### Artlav

##### Aperiodic traveller
Beta Tester
That's one hell of a Tuesday. Looks like i picked the wrong decade to quit Orbiter.

Thank you Martin for keeping this gem going for all this time, it definitely shaped my life and interests from the early years.

And it's good to see this community so revitalized.

#### Ripley

##### Tutorial translator
Donator
Out of the top of my head, what I would very warmly welcome as starting out-of-the-box Orbiter experience is:
• complete (as in definitive) multi axis joystick support;
• sound (be it Dansteph's or Dbeachy's, or both);
• latest TransX (and possibly IMFD) included. I never understood why Martin never merged the latest developed TransX, but kept on including that oldish "bugged" version inside vanilla Orbiter;
• other MFDs...
...And of course
• collision detection
• less bumpy 3D terrain

#### WolfAngriff

##### The NSEU (Never Satisfied End User)
OK, clear enough now. Thanx for the answer. I think i'll come here one time in a week as to take some infos.

64 bit... Wow...

#### Owenmck

I agree that collision detection and perhaps vessels being destroyed when they impact either; other vessels or the ground (nothing to fancy, just a visible explosion and the vessel disappears, kind of like how it happens in KSP) should definitely have some focus.

#### jedidia

##### shoemaker without legs
Proper damage simulation should and always could have been implemented by the vessel itself (and in some cases was). Collision detection and some physics backend that does the heavy lifting for it would be a cool thing, though. But it would also make vessel development more complicated, and that's a bit of an issue. Essentially, the reworked touchdown points for Orbiter2016 already gave us an equivalent to a collision mesh (admittedly without normals), though it only worked with the ground, but a lot of developers already had serious trouble implementing that (myself included).

#### Xyon

##### Puts the Fun in Dysfunctional
Moderator
Webmaster
GFX Staff
Donator
Beta Tester
Proper damage simulation should and always could have been implemented by the vessel itself (and in some cases was). Collision detection and some physics backend that does the heavy lifting for it would be a cool thing, though. But it would also make vessel development more complicated, and that's a bit of an issue. Essentially, the reworked touchdown points for Orbiter2016 already gave us an equivalent to a collision mesh (admittedly without normals), though it only worked with the ground, but a lot of developers already had serious trouble implementing that (myself included).
Collision detection in the core is the key thing, then you pass that event back to the vehicle and let it handle that how it wants internally - along with a bunch of resultant state changes, no doubt.

#### JDat

##### Active member
I have a joystick library that someone might be able to integrate into Orbiter for improved joystick support.

#### Face

##### Well-known member
Orbiter Contributor
Beta Tester
Well, there is nothing wrong with trying it for his own. In the end, Martin's repo will be the "blessed" one - similar to Torvald's Linux repo - and he must decide what makes it in and what not. Git is certainly the perfect system for this kind of development. My suggestion would be that he also builds up a network of "lieutenants", lest the work-load might get overwhelming.

#### N_Molson

Donator
Wow, ground-breaking news! Thanks for this, I'm confident it is a good and wise decision. ?

I wish you the best success in your medical research, the recent events have proven us how important that field is! ???

And we'll still be there in 10 years ?

#### Owenmck

The vessel could have some values in the configuration file, that tell Orbiter at what impact speed / temperature it should destroy the vessel, and if those values are not exceeded, then it lets the vessel’s own code deal with it. That would allow a global destruction of vessels, whilst still allowing smaller damages and failures

#### Urwumpe

##### Not funny anymore
Donator
The vessel could have some values in the configuration file, that tell Orbiter at what impact speed / temperature it should destroy the vessel, and if those values are not exceeded, then it lets the vessel’s own code deal with it. That would allow a global destruction of vessels, whilst still allowing smaller damages and failures

But much smarter would be simply using a generic DLL for the vessel, that supports a more or less sophisticated damage model.

Even if its just a configuration file based vessel - you could simply add a module to it, that handles such damages. AFAIR, my old Mayfly.dll module contained this already.

#### GLS

##### Well-known member
Orbiter Contributor
My suggestion would be that he also builds up a network of "lieutenants", lest the work-load might get overwhelming.
Software-style mafia: a network of capos kicking up changes to the boss.

Replies
7
Views
810
Replies
74
Views
5K
Replies
1
Views
104
Replies
0
Views
242
Replies
50
Views
5K