Idea Comprehensive Orbinomics Project

BruceJohnJennerLawso

Dread Lord of the Idiots
Addon Developer
Joined
Apr 14, 2012
Messages
2,585
Reaction score
0
Points
36
I was thinking recently while looking through the UCGO docs, that the orbiter community has left UCGO heavily underdeveloped, considering its possibilities. The only addon simulating resource development/mining that I have been able to find was the lunar rock miner/refinery addons developed by ashaman42 on OHM. Would anyone be interested in helping develop this project or explain how to replicate the code that can simulate a mine/derrick/furnace etc., producing UCGO cargoes?

I was thinking that we could include the basic list Dansteph mentioned in the docs;

oxygen, fuel, food, water, hydrogen, gold, helium, metal, rock, powercell

along with maybe helium-3, Nitrogen, Deuterium

Any more ideas for cargo types valuable enough to warrant space mining?
 
I am about to start development on a stand-alone program which simulates the management of a Commercial Space Agency.

I'm hoping that we can include UCGO in this somehow - it's such a great thing!

Orbiter would be used to fly the missions. Something similiar to air-hauler:

http://www.justflight.com/product/air-hauler-boxed

Somewhere down the line, the ability to receive 'payment' for transporting supplies to the ISS or other station would be one of our goals.

Best,

Dores :D
 
I am about to start development on a stand-alone program which simulates the management of a Commercial Space Agency.

I'm hoping that we can include UCGO in this somehow - it's such a great thing!

Orbiter would be used to fly the missions. Something similiar to air-hauler:

http://www.justflight.com/product/air-hauler-boxed

Somewhere down the line, the ability to receive 'payment' for transporting supplies to the ISS or other station would be one of our goals.

Best,

Dores :D

Would you be able to help with development at all? I am progressing fairly well in my programming & modelling abilities, but I think this project needs a cooperative effort similar to the IMS, but probably wont take nearly as long. Any good resource ideas? Oh, and I know what you mean with regards to the payment issue. Somehow dragging boxes of gold around with you on an arrow freighter just seems ridiculous. Maybe the next UCGO update can add money tanks :lol:
 
There's been numerous attempts at something like this, and they mostly failed because they underestimated the ridiculously huge workload needed to do it right. And if you don't do it right, people won't use it.

Granted, UCGO gives something akin to a general cargo standard (I don't like UCGO much for its constraint to puny small containers, although I understand the reasons behind it), which is a significant advantage the other attempts didn't have yet, but you're still getting yourself into more than you might think.
Still, if you're going to try it, I wish you best of luck!
 
There's been numerous attempts at something like this, and they mostly failed because they underestimated the ridiculously huge workload needed to do it right. And if you don't do it right, people won't use it.

Granted, UCGO gives something akin to a general cargo standard (I don't like UCGO much for its constraint to puny small containers, although I understand the reasons behind it), which is a significant advantage the other attempts didn't have yet, but you're still getting yourself into more than you might think.
Still, if you're going to try it, I wish you best of luck!

Can anyone explain to me or at least outline how the miner and refinery made by ashaman42 works? I mean, compared to designing a ship, how bad can designing a drill-derrick be?
 
I second Jedidia. I thought to this often, and the difficulties seemed unbearable to me.

First you need towns, to have any sort of credibility. Human activities are organised around towns (call them bases on other planets). Those are the trading hubs.

Even going extremely simplistic, like 1 major city by continent on Earth, there's some sort of sim engine limitation there. Defining those cities like surface bases is a no-go, because you can't make custom .dll's for those.

There's only one other choice : define those cities as vessels. And there you dive in an insanity of problems. There are going to be a lot of those, because cities clearly aren't enough. Farms are required to feed cities. Oil rigs are required to feed refineries that can distillate kerosene for rockets. Chemical plants are required for the other propellants etc, etc... So this will end with planets crawling under such "vessels-infrastructures". I don't think Orbiter likes to deal with a lot of vessels ; and this is going to mean a lot of .dll's being processed each frame. Bad.

Let alone those technical aspects, each type of infrastructure need to be somehow interactive, or there is no interest. Towns need to take population into account. The supply of food, goods, or oil could be factors. It would be good to have a mesh that somehow evolves with the size of the city (buildings appearing / disappearing).

And there we can dive into micro-management : facilities could be built into cities. They would appear on the 3D world. But for that you would need money. How to get money ? Taxes (population / industrial activity-related) ? Trade (needs to be defined clearly) ?

This goes beyond crazy when I begin think to a launch complex (let's take Baikonur as an exemple, because it is pretty isolated and basically everything has to be imported). To launch rockets or spacecrafts, you would need to fuel them, of course (that alone would be a nice piece of code, especially if you want to integrate addons). So you would need to bring fuel there (by trains ? by building pipelines ?) The rocket parts would have to be built in a rocket plant (like Samara in Russia). To build rocket parts you would need materials, like aluminium, composite materials, etc... To melt aluminium you need bauxite and coal (mines). Mines need miners (from towns). Also there are the crews. They should come from a city (say Moscow), and be processed through a training center (let's say the Star City). That would cost time (years) and money.

Which bring us to the costs side : each spacecraft or vehicle should have maintenance costs. To build a rocket, you need money to pay the factories workers and engineers. Transportation should be a costly departement. You would have to invest in some public sectors like health, education, police to ensure that cities growth. Industries, farms and mines also need investment.

And notice I keep everything very simple, like the whole Solar System has 1 all-mighty ruler, without any distinction between public/private sectors. Because then we would have to add a political / geopolitical / interplanetary-political simulation.

I stop there, because my brain is going to explode ! :suicide:
 
I mean, compared to designing a ship, how bad can designing a drill-derrick be?

Oh, only a drill-derrick isn't too much work. That doesn't make an economy yet, though.

Anyways, the drill derrick in itself should be fairly easy. In the simplest version, it's just a vessel that spawns a UCGO cargo at regular intervals when active.

Defining those cities like surface bases is a no-go, because you can't make custom .dll's for those.

Not necessarily. you can have a main economics module that does all the actual work, with the cities being merely visual representations. Also, stuff like surrounding farmland etc. could just as well be simulated without visuals, as could traffic between cities. After all, it's space we're interested in mostly.
 
Last edited:
Perhaps I overstated myself. Im not thinking of a full-blown mining-transport-refinement-to consumer addon. I just think that it would be good to produce more addons like the GDI miner/refinery that could simulate more complex steps in space economics than simply using the scenario editor. Producing more miner/refinery type vessels to produce, say fuel or oxygen via deposits of water ice, and the ability to refine incredibly profitable materials such as Helium-3 or Deuterium, instead of just carrying back "moon rocks" to earth. Having a whole system to buy ships, or make money Is definitely waaay out of the question.
 
Last edited:
Not necessarily. you can have a main economics module that does all the actual work, with the cities being merely visual representations. Also, stuff like surrounding farmland etc. could just as well be simulated without visuals, as could traffic between cities. After all, it's space we're interested in mostly.

Yes, I dismissed this option because of my lack of knowledge in modules. It would be certainly better that way ; though it would require a lot of abstraction. :yes:

Having a whole system to buy ships, or make money I definitely waaay out of the question.

Ah but on Orbiter Forum, it's usually everything or nothing :lol:

Seriously, if someone wants to have a try at this, I would suggest beginning by a simple situation like :

- A "city-spaceport-hub" on Earth (preferably near the Equator) that produce goods to deliver.
- A moonbase that need those goods but produce other ones.
- You would score points for bringing back those "lunar goods" on the "Earth City".
- The faster, the more points.

Then stuff could be added step by step, like with the "lunar goods" you can refuel or build DGs.
 
Yes, I dismissed this option because of my lack of knowledge in modules. It would be certainly better that way ; though it would require a lot of abstraction. :yes:



Ah but on Orbiter Forum, it's usually everything or nothing :lol:

Seriously, if someone wants to have a try at this, I would suggest beginning by a simple situation like :

- A "city-spaceport-hub" on Earth (preferably near the Equator) that produce goods to deliver.
- A moonbase that need those goods but produce other ones.
- You would score points for bringing back those "lunar goods" on the "Earth City".
- The faster, the more points.

Then stuff could be added step by step, like with the "lunar goods" you can refuel or build DGs.

Okay, I appreciate the suggestion, but I really think that the best starting point for this is just more mines/refineries. Its probably more of an opinion, but I think any moonbase is going to have to be mostly self-sufficient, so the biggest resource question would probably be gathering water ice in order to A-use the water and B-Use electrolysis to produce O2 and H2 for life support and propellant. Does anyone understand how ashaman42s GDI addons work (UCGO function, create vessel, internal tanks?). I have looked through the UCGO docs, but the only reference to this sort of thing was the 2 page station doc-not very clear for me. Better yet, does anyone know ashaman42 and could contact him for me about this?
 
Better yet, does anyone know ashaman42 and could contact him for me about this?

Don't be afraid to send him a MP. You never know ;)
 
Don't be afraid to send him a MP. You never know ;)

What exactly is an MP? Well I can try but I just thought someone who knew him might know whether hes still interested (or even using orbiter)

And, would you be interested in helping with this project at all? I think I can figure out the Physics/economics/programming aspects of it, but I can only stand so much 3d design at a time before I go crazy
 
Last edited:
For references on orbinomics, my project. You may use this for examples, just give me credit if you do.

[ame="http://www.orbithangar.com/searchid.php?ID=5704"]VSA Manager Spreadsheet [UPDATE]#1[/ame]

:cheers:

SE
 
Does anyone understand how ashaman42s GDI addons work (UCGO function, create vessel, internal tanks?).

rather simple. I guess the first question would be: do you have at least basic knowledge of C++? if not, you have to start there.
If yes, then it's really not that hard. Internal tanks are the easiest, as orbiter already provides those, you're merely abusing them for something else than propellant (soething I'm doing in my current project for water/food/oxygen). Really nothing more to it.
Spawning a vessel is also not a big thing, the orbiter API provides all the necessary calls (if the scenario editor can do it, anyone can). I'm not familiar with UCGO, but dan usually provides very decent documentation with his SDKs, so you shouldn't ave much trouble there either. As far as I'm aware, you should not even need the Orbiter API to spawn the full containers, I think UCGO has its own calls to spawn cargoes. Might be wrong though.
Anyways, basic workings would look something like this:

Over time, fill up propellant tank with ore. When tank reaches a certain level, spawn cargo, reduce propellant in tank. That's pretty much it, shouldn't be more than some 50-ish lines of code, everything considered (header, initialisation, etc. The actual functionality shouldn't take more than 10 lines, really, at least at this basic level).
 
rather simple. I guess the first question would be: do you have at least basic knowledge of C++? if not, you have to start there.
If yes, then it's really not that hard. Internal tanks are the easiest, as orbiter already provides those, you're merely abusing them for something else than propellant (soething I'm doing in my current project for water/food/oxygen). Really nothing more to it.
Spawning a vessel is also not a big thing, the orbiter API provides all the necessary calls (if the scenario editor can do it, anyone can). I'm not familiar with UCGO, but dan usually provides very decent documentation with his SDKs, so you shouldn't ave much trouble there either. As far as I'm aware, you should not even need the Orbiter API to spawn the full containers, I think UCGO has its own calls to spawn cargoes. Might be wrong though.
Anyways, basic workings would look something like this:

Over time, fill up propellant tank with ore. When tank reaches a certain level, spawn cargo, reduce propellant in tank. That's pretty much it, shouldn't be more than some 50-ish lines of code, everything considered (header, initialisation, etc. The actual functionality shouldn't take more than 10 lines, really, at least at this basic level).

Hmmm, well I dont think theres a UCGO function to spawn cargoes, just a way for an object to infinitely ressuply a particular resource type as an attachment point. I do have some experience coding, but its still mostly basic at this point, some things come faster than others (ie thrusters, pressure dependency, Engines, Docks-no problem. For animations I needed help from another developer). Are you aware of the code needed to spawn vessels from a vessel? I havent been able to find it yet. For the actual resource tank, is that defined similar to a propellant tank or something else? (I imagine that is probably in the UCGO docs. The problem with the station doc wasnt so much Dansteph, as much as the language barrier.
 
For the actual resource tank, is that defined similar to a propellant tank or something else?

It's a propellant tank. You just don't use it as such. Of course, you ca also just have a variable storing the load, but then you'll have to update the mass manually. If mass is even a concern for such a thing...

(I imagine that is probably in the UCGO docs.

Oh, the tank has absolutely nothing to do with UCGO. Indeed, almost nothing has to do with UCGO, except the cargo you spawn.

Are you aware of the code needed to spawn vessels from a vessel?

Code:
OAPIFUNC OBJHANDLE oapiCreateVessel  ( const char *  name,  
  const char *  classname,  
  const VESSELSTATUS &  status   
 )

The toughest part is to fill out the VESSELSTATUS struct, but since you already have a vessel where you want to spawn it, you can copy its position and velocity and stuff.
 
I use something like that, it comes from a tutorial :

Code:
void NewVessel::SpawnObject(char* classname, char* ext, VECTOR3 ofs) {
  VESSELSTATUS vs;
  char name[256];
  GetStatus(vs);
  Local2Rel (ofs, vs.rpos);
  vs.eng_main = vs.eng_hovr = 0;
  vs.status = 0;
  strcpy (name, GetName()); strcat (name, ext);
  oapiCreateVessel (name, classname, vs);
};

As usual the function has to be declared in the .h file.
 
I use something like that, it comes from a tutorial :

Code:
void NewVessel::SpawnObject(char* classname, char* ext, VECTOR3 ofs) {
  VESSELSTATUS vs;
  char name[256];
  GetStatus(vs);
  Local2Rel (ofs, vs.rpos);
  vs.eng_main = vs.eng_hovr = 0;
  vs.status = 0;
  strcpy (name, GetName()); strcat (name, ext);
  oapiCreateVessel (name, classname, vs);
};

As usual the function has to be declared in the .h file.

Excellent. And can I ty it to a key in the same way as a gear animation, except using SpawnObject in place of RevertGear?

---------- Post added at 08:37 PM ---------- Previous post was at 08:15 PM ----------

Just got a message back from ashaman42, hes going to try to dig up the source code and send it. Any more help with the code is appreciated, and is there anyone out there that would like to do the modelling? I was thinking maybe just doing a water drill derrick for use on Mars/Asteroids/Europa/... as a first step. I have created a water cargo, but it isnt very good, just a retexture of the standard O2/fuel boxes
 
Back
Top