Page 1 of 2

Permanent GalDrive OXP

Posted: Mon Nov 14, 2011 10:27 pm
by Wildeblood
Sensible GalDrive OXP ver. 0.9
Date: November 20th, 2011

http://www.boxcn.net/s/0721l5ga2anm0qyu5o2n

This OXP removes the traditional, 5000cr, one-shot, "Galactic Hyperdrive" from the game, and re-implements it as a 40000cr, permanently-installed "Long-Range Hyperdrive". This changes Oolite's gameplay somewhat - it will be deemed an obvious improvement by some players and heresy by others. To use, place the Sensible GalDrive OXP into your "AddOns" folder.

After purchasing the Long-Range Hyperdrive from any planet of technical level 11 or higher, use the prime-able equipment (N-key) menu to arm or disarm the hyperdrive. Whenever the hyperdrive is armed, you can make a long-range jump to a new galactic sector in the familiar way (g-key by default).
There you go. That's as far as I've got with this idea.

See also: Switeck's Quantum Drive System v0.2 and my GalDrive Programmers.

Re: Permanent GalDrive OXP

Posted: Mon Nov 14, 2011 10:35 pm
by RyanHoots
Wildeblood wrote:
Sensible GalDrive OXP ver. 0.8
Date: November 15th, 2011

http://www.boxcn.net/s/m8syt8h6h0rr9mbecm52

This OXP removes the traditional, 5000cr, one-shot, "Galactic Hyperdrive" from the game, and re-implements it as a 40000cr, permanently-installed "Long-Range Hyperdrive". This changes Oolite's gameplay somewhat - it will be deemed an obvious improvement by some players and heresy by others. To use, place the Sensible GalDrive OXP into your "AddOns" folder.

After purchasing the Long-Range Hyperdrive from any planet of technical level 11 or higher, use the prime-able equipment (N-key) menu to arm or disarm the hyperdrive. Whenever the hyperdrive is armed, you can make a long-range jump to a new galactic sector in the familiar way (g-key by default).
There you go. That's as far as I've got with this idea.
It's a very good idea. The normal wutchspace drive needs fuel, so why can't this one? How about five light years to go to a new galaxy?

Re: Permanent GalDrive OXP

Posted: Mon Nov 14, 2011 11:40 pm
by Kaks
If you consider it 'sensible' for it to consume fuel (i.e. if you're diverging from the canon 'all galactic drive requirements are self-contained') it could well stand to reason that the permanent gal drive might need more fuel than a standard 7ly hop...

Why not a full 7ly tank plus an external 3ly fuel pod? :twisted:



Still, - and I know, I am repeating myself - this idea would be a lot more sensible if you didn't make changes to standard equipment that actually 'break' one of the standard Oolite missions.
As it is now, this oxp makes it extremely unlikely for the nova mission to ever happen, and - in case it acutally happens - it would make an already difficult to solve problem into one that's basically impossible to solve without prior knowledge.

Re: Permanent GalDrive OXP

Posted: Tue Nov 15, 2011 12:05 am
by Mauiby de Fug
Suggestion: why not simply make it only available to be bought after the nova mission has taken place, explanation being that the tragedy of a planet having been destroyed and the difficulties faced by those helping to evacuate inspired its creation?

Re: Permanent GalDrive OXP

Posted: Tue Nov 15, 2011 12:07 am
by DaddyHoggy
Mauiby de Fug wrote:
Suggestion: why not simply make it only available to be bought after the nova mission has taken place, explanation being that the tragedy of a planet having been destroyed and the difficulties faced by those helping to evacuate inspired its creation?
Good suggestion/compromise - except it won't satisfy/pacify the "now now now" element...

Re: Permanent GalDrive OXP

Posted: Tue Nov 15, 2011 7:15 am
by maik
Wildeblood wrote:
There you go. That's as far as I've got with this idea.
Added it to the WIP section of the [wiki]OXP List[/wiki].

Re: Permanent GalDrive OXP

Posted: Tue Nov 15, 2011 11:33 am
by Kaks
Mauiby de Fug wrote:
Suggestion: why not simply make it only available to be bought after the nova mission has taken place, explanation being that the tragedy of a planet having been destroyed and the difficulties faced by those helping to evacuate inspired its creation?
Suddenly more sensible already! :D

Maybe a random number of jumps afterward you get news on docking that due to safety concerns blah, blah... mind you, the new gal drive would still make things more difficult for a pilot in a similar situation...

Re: Permanent GalDrive OXP

Posted: Tue Nov 15, 2011 12:01 pm
by Cmdr. Maegil
As long as the core galdrive still exists alongside with the permanent one, it can always be rationalized as a company using the event to launch and advertise (read spin-doctor) a new must-have safety gadget - possibly interacting with YAH and the newscasts...Astral phenomena are known to produce this kind of overreaction in RL.

Re: Permanent GalDrive OXP

Posted: Tue Nov 15, 2011 12:08 pm
by Wildeblood
Mauiby de Fug wrote:
Suggestion: why not simply make it only available to be bought after the nova mission has taken place, explanation being that the tragedy of a planet having been destroyed and the difficulties faced by those helping to evacuate inspired its creation?
I would have thought the oobvious thing to do was only make it available in Sector 8.

Re: Permanent GalDrive OXP

Posted: Tue Nov 15, 2011 12:53 pm
by Smivs
Wildeblood wrote:
I would have thought the oobvious thing to do was only make it available in Sector 8.
Why not design a little mission which allows you to win one when you get to G8? The native missions end after G5 and this would be a nice little extra.

Re: Permanent GalDrive OXP

Posted: Tue Nov 15, 2011 5:37 pm
by Thargoid
Umm, Nova starts with a fuel leak, and the new drive thingie needs a full tank to work.

So where is the issue, other than people using an extra fuel tank, which breaks the mission anyway...? For me the new one doesn't break anything (indeed it unbreaks something, as the current one can be used to escape the nova system).

Re: Permanent GalDrive OXP

Posted: Fri Dec 16, 2011 9:36 am
by Wildeblood
Kaks wrote:
Still, - and I know, I am repeating myself - this idea would be a lot more sensible if you didn't make changes to standard equipment that actually 'break' one of the standard Oolite missions.
As it is now, this oxp makes it extremely unlikely for the nova mission to ever happen, and - in case it acutally happens - it would make an already difficult to solve problem into one that's basically impossible to solve without prior knowledge.
Righto, I just did the mission in question. The result was an almost 1 megabyte log file full of this junk:-
Latest.log wrote:
17:13:34.736 [ai.error.stackOverflow.dump]: 7: route1traderAI.plist: HEAD_FOR_PLANET
17:13:34.736 [ai.error.stackOverflow.dump]: 6: exitingTraderAI.plist: EXIT_SYSTEM
17:13:34.736 [ai.error.stackOverflow.dump]: 5: route1traderAI.plist: HEAD_FOR_PLANET
17:13:34.736 [ai.error.stackOverflow.dump]: 4: exitingTraderAI.plist: EXIT_SYSTEM
17:13:34.736 [ai.error.stackOverflow.dump]: 3: route1traderAI.plist: HEAD_FOR_PLANET
17:13:34.736 [ai.error.stackOverflow.dump]: 2: exitingTraderAI.plist: EXIT_SYSTEM
17:13:34.737 [ai.error.stackOverflow.dump]: 1: route1traderAI.plist: HEAD_FOR_PLANET
17:13:34.737 [ai.error.stackOverflow.dump]: 0: exitingTraderAI.plist: EXIT_SYSTEM
17:13:34.737 [exception]: Squashing exception OoliteException:AI stack overflow for <ShipEntity 0xa549088>{"Sidewinder Scout Ship" position: (12671.9, 1111.07, 593688) scanClass: CLASS_NEUTRAL status: STATUS_IN_FLIGHT} in AI handler route1traderAI.plist:GO_TO_STATION.NO_STATION_FOUND
17:13:35.222 [ai.error.stackOverflow]: ***** ERROR: AI stack overflow for <ShipEntity 0x20bb43b8>{"Sidewinder Scout Ship"} in exitingTraderAI.plist: EXIT_SYSTEM -- stack:

17:13:35.222 [ai.error.stackOverflow.dump]: 31: escortAI.plist: FLYING_ESCORT
17:13:35.223 [ai.error.stackOverflow.dump]: 30: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.223 [ai.error.stackOverflow.dump]: 29: route1traderAI.plist: GO_TO_STATION
17:13:35.223 [ai.error.stackOverflow.dump]: 28: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.223 [ai.error.stackOverflow.dump]: 27: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.223 [ai.error.stackOverflow.dump]: 26: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.223 [ai.error.stackOverflow.dump]: 25: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.223 [ai.error.stackOverflow.dump]: 24: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.223 [ai.error.stackOverflow.dump]: 23: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.223 [ai.error.stackOverflow.dump]: 22: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.223 [ai.error.stackOverflow.dump]: 21: route1traderAI.plist: GO_TO_STATION
17:13:35.223 [ai.error.stackOverflow.dump]: 20: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.223 [ai.error.stackOverflow.dump]: 19: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.223 [ai.error.stackOverflow.dump]: 18: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.223 [ai.error.stackOverflow.dump]: 17: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.223 [ai.error.stackOverflow.dump]: 16: gotoWaypointAI.plist: GO_TO_WAYPOINT
17:13:35.223 [ai.error.stackOverflow.dump]: 15: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.223 [ai.error.stackOverflow.dump]: 14: route1traderAI.plist: GO_TO_STATION
17:13:35.223 [ai.error.stackOverflow.dump]: 13: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.223 [ai.error.stackOverflow.dump]: 12: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.223 [ai.error.stackOverflow.dump]: 11: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.223 [ai.error.stackOverflow.dump]: 10: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.223 [ai.error.stackOverflow.dump]: 9: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.224 [ai.error.stackOverflow.dump]: 8: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.224 [ai.error.stackOverflow.dump]: 7: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.224 [ai.error.stackOverflow.dump]: 6: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.224 [ai.error.stackOverflow.dump]: 5: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.224 [ai.error.stackOverflow.dump]: 4: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.224 [ai.error.stackOverflow.dump]: 3: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.224 [ai.error.stackOverflow.dump]: 2: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.224 [ai.error.stackOverflow.dump]: 1: exitingTraderAI.plist: EXIT_SYSTEM
17:13:35.224 [ai.error.stackOverflow.dump]: 0: route1traderAI.plist: HEAD_FOR_PLANET
17:13:35.224 [exception]: Squashing exception OoliteException:AI stack overflow for <ShipEntity 0x20bb43b8>{"Sidewinder Scout Ship" position: (1605.23, 8365.99, 597061) scanClass: CLASS_NEUTRAL status: STATUS_IN_FLIGHT} in AI handler exitingTraderAI.plist:EXIT_SYSTEM.WITCHSPACE UNAVAILABLE
17:19:25.151 [texture.load.unknownType]: Can't use ../AddOns/Wildefire Avionics.oxp as a texture - extension "oxp" does not identify a known type.
17:20:26.850 [gameController.exitApp]: .GNUstepDefaults synchronized.

Closing log at 2011-12-16 17:20:26 +0800.

Re: Permanent GalDrive OXP

Posted: Fri Dec 16, 2011 1:44 pm
by Eric Walch
Wildeblood wrote:
Righto, I just did the mission in question. The result was an almost 1 megabyte log file full of this junk:-
By the look of it, there are multiple bugs here.

The stack overflow is because of 'exitingTraderAI' uses a "setAITo:" when failing to jump. That raises the stack, but the AI it jumps to has no 'exitAI' command by which it could return. I'll change that to a "switchAITo:" command.

That still would lead to hopping between two AIs because it can't find a station as arriving trader and has not enough fuel as exiting-trader.

But the main bug seems to be the addition of traders in a system that has no station at all :P

EDIT to above.

I think we introduced this bug by adding the 'hyperspace_motor' motor to the sidewinder. Normally the nova mission uses the special command 'sendAllShipsAway' That command gives all ships a full fueltank and sets them in an exitingTraderAI. In the past this was enough to send all ships away, but now the ones without hyperspace motor are trapped in the system. Although, that being trapped in the system was sort of the intention of the hyperspace_motor :lol:

Re: Permanent GalDrive OXP

Posted: Fri Dec 16, 2011 3:40 pm
by Eric Walch
Doing some tests by excluding the ships with hyperspace motor in the 'sendAllShipsAway()' code helps a bit. Escorts are now unaffected and follow their mother through their wormhole.

During experimenting, I found also some buggy oxps that use a role "none". That role is a NONO in use. All kind of code used this role to exclude ships from being added.
e.g.
some code adds a 'none' station to a system. (that used to work, but does not longer)
the sendAllShipsAway(0 code uses this role to prevent copies from being added at the witchpoint. But when there exists ships with a 'none' role, the whole entry point gets covered with such ships. One that I found had the name "weapons Array' but there were dozens of those ships near the entry point :(

Clearly a bug in XeptatisSword :twisted:

Re: Permanent GalDrive OXP

Posted: Fri Dec 16, 2011 4:06 pm
by Wildeblood
Eric Walch wrote:
Doing some tests by excluding the ships with hyperspace motor in the 'sendAllShipsAway()' code helps a bit. Escorts are now unaffected and follow their mother through their wormhole.
With, or without?