Orbiter Shipyard Project: Gathering ideas

Artlav

Aperiodic traveller
Addon Developer
Beta Tester
Joined
Jan 7, 2008
Messages
5,814
Reaction score
869
Points
203
Location
Earth
Website
orbides.org
Preferred Pronouns
she/her
Orbiter Shipyard project aims at creating a graphical Orbiter vessel editor&creator.
Proposed here: http://www.orbiter-forum.com/showthread.php?t=5284
Initial idea from over there: http://orbiter.dansteph.com/forum/read.php?f=1&i=20661&t=20661

What is done so far:

The vessel module generator, capable of generating a dll vessel with defined:
1. Basic parameters (size, mass, pmi, cross section, rotation drag, touchdown points, etc, etc)
2. Engine and fuel parameters (N fuel tanks, M engines, G engine groups, most of linking combinations)
3. Engine exhaust streams
4. Meshes and their visibility settings
5. Animations (single-level tree, multiple components)

Vessels are insulated one from each other, defined by a typical cfg file, no limits on naming and amount.

Planned generator capabilities are:
1. Panels
2. VC's
3. Airfoils, landing gears, other meaning-filled animations
4. UMMU and crew
5. Bells and whistles.

Now, the idea is that it is a nice graphical interfaced vessel editor, and here is where i hit the ground.

My ideas of a nice graphical interface are somewhat undefined and biased towards console&compiler type-and-run interface.
In any case, World Studio was supposed to be an user-friendly interface, which it clearly wasn't.

That gets us to the point of this thread:
Add-on developers, how do you define a "nice graphical interfaced vessel editor" you would want to use?

What will be a good way to define animations?
What will be a good way to edit panels and VC's?
What will be a good way to input various parameters of a vessel?

Please share your ideas. There aren't much composed yet, so anything can be accepted.

The basic system lines are like on the image below, and are subject to discussion too.
The 3D part will be able to render and run the vessel Orbiter-precise, thanks to OGLA engine. Above that is a touch and pick extension, allowing for specifying groups and locations on the mesh, as well as dragging parts around.
I considered to make the parts that are positionable to be defined in the 3D section, and their non-visible parameters typed in on the windows at the sides.

The animations definition are the biggest problem now - considerations included a flash-like time line with points marked on it, with some sort of drag-and-record scheme, or element-by-element definition drag scheme.

The animation interface part is the most undefined.

os-081116-1.jpg
 
Last edited:
What will be a good way to define animations?

If you could make something work like the picture attached, that might be a good start.

The developer can, while in Orbiter, define the points and rotational vectors and view it / change it to his/her satisfaction.
 

Attachments

  • animation.JPG
    animation.JPG
    14.6 KB · Views: 86
There is a function like this in Space Combat (link below if you are interested), which is sort of an incomplete spacegoing version of X-Plane (i.e. the creator appears to have lost interest for the time being). There is an editor which allows building shapes, specifying masses, types of propulsion and the like. If you specify a nuclear pulse drive, for example, the editor places it on the "drawing board" with the pusher plate, shock absorber, etc. already modeled. You can add a rotating habitat module which also changes attitudes during acceleration to provide for constant gravity. Tanks are appropriately sized for density of material (hydrogen, nuclear saltwater, and the rest of it). Isp and thrust are there. The models produced in Space Combat are a bit on the ugly side. I believe this is mainly due to the included textures, although I do prefer the default exhaust texture in Space Combat. I have made essentially the same ship for both Space Combat and Orbiter. Flying my completed vessels in Orbiter is much more rewarding, but creating them for Space Combat was much easier.
Something really spiffy in your program, in my view, would be to include volume calculation and maybe model the approximate structural mass that the size and shape of vessel would have, heat radiation requirements for closed-cycle propulsion, some rough factors for life support capacity based on size of ship, duration of mission. Maybe there could be "reality levels" or "technology levels" allowing everything from current materials to nano-diamondoid-lightweight-superstrong stuff. Some sort of paintshop for the completed ship would be cool too.

Link referred to above: http://www.x-plane.com/SpaceCombat.html

Richard
 
I think the easiest way to do the basic stuff would be a "Windows wizard" type interface, asking you to add main fuel, main engines, groups... and then at the end of each segment (segment being engine and fuel, RCS and control surfaces,...), if you'd like to add additional things... which would just run the wizard for a certain segment around.

I think that way you could ensure that nobody misses the must-have steps.
 
An interface for animations will never be quite user-friendly I'm afraid, since the whole task is a bit complicated. I think it would have to look similiar like in a 3d-programm, ie:

all the visual controls for scaling, rotating and moving groups, combined with a "keyframe capture" (which of course doesn't capture the frame but the operations that led to this frame). Then a speed modifier where you can define how long it should take for the keyframe to be reached. Plus the option to merge different animations into one. E.g. when you have a deploying landing gear, that you can do the animations seperate for each wheel and then stuff them together so the output will be a simultanious animation.

I don't think it could get much more simple. This all by itself allready is a hell of a lot of work...
 
Well, for making animations it would already be helpful to place reference points in 3D and maybe have also only cross sections drawn.
 
There is an editor which allows building shapes, specifying masses, types of propulsion and the like. If you specify a nuclear pulse drive, for example, the editor places it on the "drawing board" with the pusher plate, shock absorber, etc. already modeled.
Sounds like Spore. I guess an editor that good will take much more time and a modeler to make well.
I can't find the actual editor in or around the provided link, btw.

I think the easiest way to do the basic stuff would be a "Windows wizard" type interface...
I think that way you could ensure that nobody misses the must-have steps.
Sounds like somewhat slow&boring way to do it.

Must have steps not to be missed? Like what?
If you don't add engines or fuel, it won't fly. If you don't add meshes you won't see it, if you don't add UMMU, streams or animations - it's your choice.

all the visual controls for scaling, rotating and moving groups, combined with a "keyframe capture" (which of course doesn't capture the frame but the operations that led to this frame). Then a speed modifier where you can define how long it should take for the keyframe to be reached. Plus the option to merge different animations into one. E.g. when you have a deploying landing gear, that you can do the animations seperate for each wheel and then stuff them together so the output will be a simultanious animation.
Hm, keyframe capture mode - each group operation adds a new component to the currently active set, then you drag the timings?
Merge and split features - will be.
Visual controls - i was thinking 3ds max style.

The current concept is in the screenshots below.

Well, for making animations it would already be helpful to place reference points in 3D and maybe have also only cross sections drawn.
Cross sections - kind of like in the ar81's mesh wizard with straight projection? So you could see only a specific plane, and work in it?
Might be done.



Status:
Animation definition:
os-081117-1.jpg


Mesh parts loading dialog:
os-081117-3.jpg


Mesh parts loading preview:
os-081117-2.jpg
 
I would prefer life support or consumables like O2,CO2 a.s.o. heating and cooling of the ship, random failure generator and a 2d panel as you already mentioned.

As i am modelling a ship right now and animating it via spacecraft.dll i would also ask for beta-testing your generator.

Thank you very much for your idea, it would make ship creating much more easier and i am sure alot of people would start creating ships.

regards
jtiberius
 
Hm, keyframe capture mode - each group operation adds a new component to the currently active set, then you drag the timings?
Merge and split features - will be.
Visual controls - i was thinking 3ds max style.

Yeah, that's pretty much what I had in mind. :)
 
Just a question here...

Will this program actually write out C++ code and compile it?
If so, it'd be cool if the program also released the code, so further modifications could be made.
 
I would also love to beta test while upgrading an old and creating a new one.
Probably come up with some ideas for the bells and whistles on the way.
If it could spit out a .cpp file besides the .dll would be great indeed.
 
Just a question here...

Will this program actually write out C++ code and compile it?
If so, it'd be cool if the program also released the code, so further modifications could be made.
Making this program a C++ compiler would perhaps be excess and unnecessary work. The program could easily create .cpp, .h, etc files which could then be compiled using a third party compiler.

That would give greater flexibility, ie the ability to edit the source code when the developers skills improve (assuming they want to learn C++ and better their earlier addons.)
 
Sounds like Spore. I guess an editor that good will take much more time and a modeler to make well.
I can't find the actual editor in or around the provided link, btw.

IIRC, the editor in Space Combat is built into the program itself.

The editor for X-Plane is something along the same lines, and something I've always wanted to see in Orbiter.

Both editors take prepackaged simple meshes (The space-combat editor has some not-so-simple meshes too) and distort them based on parameters that the user gives to make the final product. You probably wouldn't need any really difficult to model mesh types, just simple geometric solids.
 
I would prefer life support or consumables like O2,CO2 a.s.o. heating and cooling of the ship, random failure generator and a 2d panel as you already mentioned.
Hm, i once tried to make a general purpose vessel systems add-on, around O2003, that ended up in Hius. If it is good enough, then electrical systems at least are possible. But it needs to get to panel designer stage before this could be seriously considered.

In a generic ship designer, what kind of components and interfaces should be used for systems simulation?
One side is the panels/VC's designer with ability to define switches and gauges, on the other side a system designer with abilities to assign power drains to the animations, engines, etc and define links and power sources.
Crew and consumables are a different beast, i have no experience in designing that kind of systems.

Advices are welcome, all in all.

As i am modelling a ship right now and animating it via spacecraft.dll i would also ask for beta-testing your generator.
And so it has to be at least as good as spacecraft3.dll, which is noticeably ahead now even in the feature set. As the testing goes, thanks for the offer, i guess i'll try a closed beta-testing near the end this time.

Will this program actually write out C++ code and compile it?
No, that would require a compiler to be in it, and i neither have mine C++ one, nor GCC can generate Orbiter modules.
So what it does is linking the already-compiled templates with data segments it generates into a final dll.
The resulting dll can then be re-opened, edited, and re-linking, so it will have sc3's advantage of "don't like it -> rewrite it" tweaking.

eveningsky339 said:
it'd be cool if the program also released the code, so further modifications could be made.
...
The program could easily create .cpp, .h, etc files which could then be compiled using a third party compiler.
That would give greater flexibility, ie the ability to edit the source code when the developers skills improve (assuming they want to learn C++ and better their earlier addons.)
I guess it could just be doable too - all that is needed is to output data segments as .h files.
But i'd like to get it running productively first.

IIRC, the editor in Space Combat is built into the program itself.
That's it exactly - how do i use it? No key combination i tried works, and there is no manual to fall back to.
Also, the joystick calibration is off...
 
Sounds like this will become a great program.
BTW What are bells and whistles? Has that something to do with sound?
 
I would prefer life support or consumables like O2,CO2 a.s.o. heating and cooling of the ship, random failure generator and a 2d panel as you already mentioned.

Ar81's Orbinomics (I hope I've spelled right) will handle that, and random failure generator is an option on Orbiter's Launchpad.
 
Crew and consumables are a different beast, i have no experience in designing that kind of systems.
It should be pretty easy. Use the same coding methods you already use for 02 consumption, but replace 02 with consumables instead. For example, just as a crew would use up a certain amount of 02 per day, they would also use up a certain amount of consumables per day, based on the number of the crew.

Are you able to model 02 consumption based on crew size? (ie 20 crew members consume more than 10 crew members)
 
Mesh parts loading preview:
os-081117-2.jpg
Can you rotate the preview?
---------------------------------------------------------------------
About UMMU: Remember to add the option to choose if it's needed a pilot/comander for the ship to work. Think the Space Shuttle which needs crew, but SaturnV in spite of carring people it don't needs the crew to fly.
(or you can think about the XR2 and Default DG with the no matter's AddOn:
[ame="http://www.orbithangar.com/searchid.php?ID=3210"]DeltaGlider UMMU[/ame])
----------------------------------------------------------------------
Status:
Animation definition:
os-081117-1.jpg
:speakcool:You can choose the key to activate the animation!
-----------------------------------------------------------------------
The size parameter should be in meters (eg.: "8 meters" rather "8")
-----------------------------------------------------------------------
What will be a good way to edit panels and VC's?
What about if the Shipyard acts like if the VC's mesh were a spaceship, but with the difference that you select the clicking area of the cockpit instead saying the key input. Then you would add animations to switch and maybe gauges (like with the spaceship itself) to be activated to chosen conditions like being pressed or some values change (eg.: wind speed).
------------------------------------------------------------------------
I would prefer life support or consumables like O2,CO2 a.s.o. heating and cooling of the ship, random failure generator and a 2d panel as you already mentioned.

Ar81's Orbinomics (I hope I've spelled right) will handle that, and random failure generator is an option on Orbiter's Launchpad.
-------------------------------------------------------------------------

Sorry about the disorganization, but I'm in a hurry with so much to say in short time :ohsnap:.
But one more last thing for now: may I be one of the betatesters
 
so what is this a ship generator ? if it is you will see a lot more addons coming from me. :)
EDIT1:yes It is I did not read it all.
 
Back
Top