Page 4 of 7
Posted: Mon Oct 13, 2008 6:27 am
by Thargoid
The cargo pods themselves originally aren't that realistic in size anyway, especially in relation to the ships carrying them. Also for me it's a little odd that 1 ton of food, radioactives and minerals would all take up the same volume, when they're of differing densities. But of course if they didn't the game would get very complex very quickly code-wise.
Plus I would say that a larger capacity cargo pod probably wouldn't be made up of linked smaller ones, as it's a (conceptually) duplication of resources and not the best use of space (as it would have internal walls). Hence why I started again when I did the bulk container pod in Pods OXP. That's just a big rectangular cargo container, with up to 10t of the main materials (or 100kg metals/200g gems).
Posted: Mon Oct 13, 2008 8:17 am
by Frame
You should see the cargo pods as space containers... They have standard size, and yes it does not make much sense that they take up the same amount of volume...
However.. Oolite was designed around tonnage, not volume.. there-in lies the explanation..
We could translate it to 1 m3 of food, instead of 1 tonnage... Then everything would fit again.. actually i´m surprised that that David and Ian, didn't choose m3 instead of tonnage. But they might wanted the save that extra letter, and tonnage was more understandable for the target group of customers... all food does not have the same density.. meat have a different density than for example broccoli. Fish meat have a different density than cow meat.. and so on...
However, that the cargo pods have the same size, makes more sense than you should think... look at any real life container ship, they all carry the same kind of container, that is different only in color.. there might be very small variations.. but their volume would be the same, but I know for a fact that the weight if said cargo is very important when pricing the transport of these containers.. more weight, needs more fuel, therefore it is more expensive...
There could be other reasons for measuring cargo in Tons, Like Mass.. in space Mass is very important, and it may be fictional historic reasons that the ton measurement stuck... In the early days of space travel.. lifting off from a planet would cost a lot.. therefore the price was measured in tons, instead of volume, and it just stuck...
There could be a way of rearranging your cargo hold, but wouldn't this be out of the scope of Oolite... the fact that there is about zero micro management in Oolite is very important in my opinion.. if you had to sit and shift cargo from one container to the next... just to loose it at the next pirate attack... that would be a bitter sweat experience...
Posted: Mon Oct 13, 2008 11:19 am
by Gunney_Plym
Funny old world isn't it
I've just re-started working on my OXP, which includes a mega-carrier, and this thread pops to the top of the stack again.
My take on the unloading of cargo from the 'Heavy' is have modular cargo pallets where, for the majority of their journey, the pallets are an entity of a parent ship. Once the parent approaches the station then the pallets become independent low performance vessels which dock with the station under autopilot.
I've tested the pallets by dropping a handful in the stations vicinity and watching them dock. Now I need to figure out how to swap the entities for ships and have them clear the parent vessel.
Posted: Mon Oct 13, 2008 12:30 pm
by Thargoid
Gunney_Plym wrote:Now I need to figure out how to swap the entities for ships and have them clear the parent vessel.
Have a look in either Rock Hermit Locator or Repair 'Bots. They both do something like that trick (moving the original off into deep space and blowing it up, then replacing it with a different entity in exactly the same position and orientation as the original).
RHL does it to switch between inactive and active beacons (rockbeacof and rockbeacon), and RB uses the same code when it fixes a RHL.
In your case you'll probably want a variant of it to spawn both the new ships and a variant on the mother carrier without the entities attached (essentially swap the complete whole parent for the unloaded parent plus the separate cargo).
Posted: Mon Oct 13, 2008 4:58 pm
by Eric Walch
Gunney_Plym wrote:Now I need to figure out how to swap the entities for ships and have them clear the parent vessel.
It's not that difficult. In buoyrepair you can find example code. Here the ship with buoy is replaced by two separate entities: a buoy and a empty ship. Then the ship leaves and the buoy stays behind.
Swapping is not that difficult, but the ship has to stand still. The exhaust is drawn at an other timing and when you move a flying ship to an other location there always will be one frame were the plume starts with the old position and ends in the new position resulting in blue flashes over your screen.
Next buoyrepair release will have another "swapping" ship. Here I even check for subentities that were blown away with the original ships and I also blow those equivalent subentities away with the replacement ship, before doing the replacement. No player will see the switch.
I noticed that when you swap a ship with a newer created one, you don't even see a flickering. When you replace a ship with one that was created earlier, you do see a small flickering. This is probably a consequence of how things are updated.
In the next release I do the switch on a slightly better way than the current release. Improved function of the buoy switch is:
Code: Select all
this.switch = function(oldShip, buoyName, buoyRole, newAIState)
{
let subentities = oldShip.subEntities
for (let i=0; i<subentities.length; i++)
{
if(subentities[i].shipDescription == buoyName) // Only release beacon if still present.
{
let newShip = oldShip.spawnOne("switchedRepairBuoyTugger"); // add replacement ship to system.
let buoy = oldShip.spawnOne(buoyRole);
buoy.AIState = "LIGHTS_OFF"
let oldOrientation = oldShip.orientation
let oldPosition = oldShip.position
let oldVector = oldShip.heading //vector with lenght 1 meter
newShip.shipDisplayName = oldShip.shipDisplayName
oldShip.setPosition(oldShip.position.multiply(100)) // to deep space
newShip.setOrientation(oldOrientation)
buoy.setOrientation(oldOrientation)
newShip.setPosition(oldPosition)
buoy.setPosition(oldPosition.add(oldVector.multiply(subentities[i].position.z)))
newShip.AIState = newAIState
oldShip.AIState = "DISAPPEAR"
}
}
}
Posted: Mon Oct 13, 2008 5:55 pm
by pagroove
Glad to see people working on this. hopefully realistic 'big ship' behaviour will be possible in the near future.
Posted: Mon Oct 13, 2008 8:05 pm
by Yodeebe
Posted: Mon Oct 13, 2008 8:14 pm
by Eric Walch
Gunney_Plym, I looked at your ship design at your wiki page. With that ship design it won't work I think. After "releasing" it will collide with the ship itself. With the buoys it was easier as they free hang behind the ship. To make releasing of subs better possible the code should change so we can "disappear" a ship with a nice command. My currently used method has some minor but unwanted side effects. Writing new code would be much easier when we would have a remove method, that does the same as the current explode method but without the explosion itself. In that case one could just remove the sub and replace it with its single entity equivalent.
I experimented a bit in that way with the explode function. But exploding had as side effect that both parts get hit, suffer damage and starting to fly apart because of the explosion. For just releasing this looks bad. Maybe it is a good scripting request to have a true remove method in JS.
Posted: Mon Oct 13, 2008 8:44 pm
by Gunney_Plym
Thanks Eric. The other style I had in mind was to hang pallets (what I call the cargo pods) either side of a central spine rather than between the upper and lower rails. Rather than having the pallets navigating between the rails they could simply 'drop' away from the Heavy before coming under power and boosting to the station. I think that this would be much easier to achieve.
This would have the advantage of allowing a stronger ship structure but with the counter that the Loadmaster would have a much harder job balancing the ship. Yes, I know that it's a game and such considerations don't actually apply, however I think that thinking in real world terms and real world effects can enhance the atmosphere of a game. This mainly comes from the table-top gaming (sad D&D and the like gaming admission
) that I do but the idea applies equally here.
Posted: Wed Oct 15, 2008 10:27 am
by Thargoid
Sounds like it's going to be an interesting ship
As you've got this variant on how to do it nicely covered, I'm going to have a quick script-play with doing it the other way. A fairly generic large hauler (as yet undesigned) that arrives and then a selection of small tender-style transfer craft come both from it and from the station to unload/reload it.
Had a bit of time yesterday so I've got some draft AIs and scripting together, now just need to test them (will borrow a like-ship or two for that temporarily) and see how it goes.
But due to my travelling in the next couple of weeks I doubt it's going to be in a beta-release state anytime soon
Posted: Thu Oct 16, 2008 10:32 am
by Eric Walch
Gunney_Plym wrote:Thanks Eric. The other style I had in mind was to hang pallets (what I call the cargo pods) either side of a central spine rather than between the upper and lower rails.
Ahruman was so kind to add a
remove option in the next release. With this it will be easier to release your cargo. You read in the orientation and position of the container-subentity, remove it and that replace it with the same entity as single entity.
From now on the design of the ship becomes important. With your ship the containers have to move downward to leave the ship. And because ships can only fly forward, you must design the containers with the z-axis downward. That means you must mount them 90 degr. rotated. But that is just a "1" in the right place in the subentity definition in ship data.
When the container has an AI to fly forward for a few seconds after it came into existence, it will free itself from the ship.
This will be a much easier approach that how I did it with the buoy release. Specially for a more complex ship like yours with many subentities.
Posted: Mon Oct 27, 2008 11:23 pm
by Gunney_Plym
Eric Walch wrote:Ahruman was so kind to add a remove option in the next release. With this it will be easier to release your cargo. You read in the orientation and position of the container-subentity, remove it and that replace it with the same entity as single entity.
From now on the design of the ship becomes important. With your ship the containers have to move downward to leave the ship. And because ships can only fly forward, you must design the containers with the z-axis downward. That means you must mount them 90 degr. rotated. But that is just a "1" in the right place in the subentity definition in ship data.
Even though I haven't got as far as the scripting I can see how the removal technique would be much easier.
I have finally got the hang of rotating sub-entities which is important in the model as the pallets get rotated about two axes, all that quarterion (spelling
) stuff made my head hurt
I ended up writing the calculations into an Excel spreadsheet.
I'll take a screenshot of the new ship, 'Titan', in-game and post tomorrow.
I've decided to keep the Goliath model as well but it will not so dynamic as the Titan.
DaddyHoggy "Large Haulers"
Posted: Tue Oct 28, 2008 10:47 am
by Cpt. Farrterlott 3rd
Hi. There
are large haulers, I me self have a pcc (Python class cruiser), 160 ton cargo. Sometimes I find it hard to fill it. Though the side contracts make it worth while. Amazzing what carrying a few hundred or thousands of Kilos of gold, platnium or grams of gems will do for your credits! In relation to the golden circle (M25 round London) Large haulers don't really go inside. 18 Wheelers (44 tons) tend to stick to real motorways. They are a booger when it's raining, bit like having to deal with 4 hostiles in a boulder field coz someone didn't destroy an asteroid fully! My Old boss and Commander, Garrott used to make the run from Scotland to England to France to Italy to France to Spain to France to England and back to Scotland in a trusty old 44 tonner with 18 wheels.
I have all the bells and whistles on my pcc (handles like a standard cobra mk3. or is that just my flying?) And manage to make a credit or million.
p.s. My rating is Deadly. Getting close to 3500 kills. 1.3Million Cr. still saving up for the super cobra so I can get rid of this 18 wheeler.
Cargo
Posted: Tue Oct 28, 2008 10:57 am
by Cpt. Farrterlott 3rd
Sorry Thargy But if you want it to be real to real, go play Elite. the last one I seen was applying real physics to space travel aswell. No such thing as stopping and turning round! Never heard of the Tardis? Bigger in than out and mass don't matter. So as far as Oolite is concerned for me, My engine and hold space was designed by Dr Who.
Re: Cargo
Posted: Tue Oct 28, 2008 11:51 am
by ClymAngus
Cpt. Farrterlott 3rd wrote:Sorry Thargy But if you want it to be real to real, go play Elite. the last one I seen was applying real physics to space travel aswell. No such thing as stopping and turning round! Never heard of the Tardis? Bigger in than out and mass don't matter. So as far as Oolite is concerned for me, My engine and hold space was designed by Dr Who.
I think we fixed this one already over on the paper models thread;
"You see the main reason anaconda's cost so much is the dimensional expansion stasis field situated in the hold. Just remember whilst the compression process is graded, so that it doesn't rip apart any organics moving through it, it's advisable to NEVER EVER turn off the field after the hold has exceeded 90% of it's "normal space" limit.
Unless of course you want to turn your anaconda into a crude mass bomb. Which due to recent terrorist attacks (filling up on radioactives and pop your field in the upper atmosphere above the continent you want to poison) carries a Galcorp standard, 3 generation genetic death sentence."