Page 1 of 7

Station Approaches and manual docking

Posted: Fri Sep 12, 2008 11:17 pm
by Micha
Hi guys,
I've just come back to Oolite after a long hiatus and first of all, great stuff - keep up all the good dev work! (Both core & OXP)

Got a few comments about station approaches though, especially after finally getting around to getting a docking computer (which I'm afraid, still appears to be the old model which has the nasty tendency to run you -into- the station rather than docking half the time..).

Why is it the docking computer can request for docking clearance but the player can't? Would be nice to manually request docking clearance from a station in order to start a manual docking run without having a bleeding Python come screaming out when you're on the last couple 100m's of the approach.... :) This would make manual docking a fair bit nicer, and you can still have Station Approach giving you a slot in the docking queue for which you should wait and all that.

Continuing on, in the event that said Python does not run into me, I've had it happen several times that it hyperjumps right in front of me and guess what, yep, I fall into it's wormhole and end up lightyears from where I want to be. So would be nice to force a hyperspace-exclusion zone around stations (or even a certain distance from the planet). As per the novella, this could take the form of 'official' jump-points a little distance away which everybody would be encouraged to use (perhaps lower chance of witch-space engine failure?)

Thoughts? Comments? Sorry if this has been raised before - I have read a fair bit of the posts but by no means all of them.

Cheers,
Cmdr Micha.

Posted: Sat Sep 13, 2008 9:17 pm
by DaddyHoggy
Micha - welcome (back?!) I agree about docking.

It would be nice to request a manual dock and then be told - OK you have a one minute slot starting in 10...9....8... etc

And nothing will come out of the station (unless it's a rogue pilot - just to keep it interesting) until your minute is up.

And yes, ships shouldn't jump until they're beyond the nav beacon but they do... :roll:

Posted: Sun Sep 14, 2008 12:08 am
by pagroove
100% agree with this suggestion and welcome to the boards 8)

Posted: Fri Sep 19, 2008 11:24 am
by 0235
that is a great idea, my first ever dock and a python came rolling out and boom! there goes my first docking attempt. if it gets made, im getting it.

Posted: Fri Sep 19, 2008 12:50 pm
by Micha
I've started digging through the code and it looks like this is already in the works based on the latest svn checkout.

In StationEntity.m there's a method called acceptDockingClearanceRequestFrom which seems to implement bits of this suggestion, but it's not called from anywhere yet.

Can I get a verification that someone is working on this before I start hacking away?

Posted: Sat Sep 20, 2008 9:01 am
by another_commander
Micha wrote:
I've started digging through the code and it looks like this is already in the works based on the latest svn checkout.

In StationEntity.m there's a method called acceptDockingClearanceRequestFrom which seems to implement bits of this suggestion, but it's not called from anywhere yet.

Can I get a verification that someone is working on this before I start hacking away?
This code has been in since at least 1.65. It is most likely part of the improvements Giles had planned for a subsequent release, that were left unattended when he retired from the project. I guess it is safe to say (please someone shout at me if I am wrong) that noone is working on this particular part at the moment, so feel free to hack away.

And, BTW, now that you pointed this method out, there are some hardcoded strings in English there, which should probably have to be moved out to descriptions.plist for i18n purposes. Good catch.

Posted: Sat Sep 20, 2008 12:23 pm
by Micha
Ok thanks, I'l see what I can do then. Don't hold your breaths though - learning ObjC as I go :)

Posted: Sat Sep 20, 2008 1:35 pm
by another_commander
I've spent an hour or so with it and came up with a basic implementation:
To request clearance, the player must target the main station and press 'L'. The station will then grant or deny clearance, based on player's legal status, inbound traffic and outbound traffic. However, after seeing it in action, I am somewhat hesitant as to what to do with it, because it seems a bit unnecessary, to be honest. Granting or denying docking clearance does not really "do" anything.
- If you are fugitive, the station will deny permission to dock. Then, so what? You can always approach and dock as usual anyway.
- If you do not request clearance and just dock, nothing happens. Here, there is the idea of penalizing pilots who dock without clearance. This could potentially cover the first case scenario too, but for me it is not recommended. The fines have to be very low anyway, to avoid ending the game early for the newer Jamesons.
- If you request clearance and it is granted, you are supposed to have two minutes all for yourself to make the approach. But then again, even if you stand in front of the docking bay for hours, with or without clearance, nothing will come out, because that is the way it is programmed. Ideally, new code will have to be written to deal with the pilots who just stop in front of the door and go for a coffee or something and block all traffic. At this point, things start becoming more complicated and station AI upgrades may be in order.

Bottomline: If it is to be done properly, it will probably require a lot more work than what it initially looks like. As it is now, I am afraid it has more potential to take away rather than offer anything to the game's atmosphere.

Posted: Sat Sep 20, 2008 4:07 pm
by Thargoid
How about using the buoy rather than the station? The player has to approach it for docking clearance (the target and press L etc). Then the station can carry on as normal, until everything is granted, then perhaps the buoy can issue a message or something (lights?) and the player has their two minutes. And it would deal with the fugitive question, as the traffic keeps on coming out so there's the crash risk.

Players would then have to fly to the aegis of the buoy and wait there until cleared. It has the added bonus of then automagically bringing them onto the correct line for docking.

As to fines, why not have them relating to the players rank to get over spacebaring the new Jamesons? Have them just get a telling off until they reach say Competent, and then get fined as by then they're supposed to live up to their rank?

And the area between station and buoy could become a "no waiting" zone, enforced perhaps by a viper or two, or maybe a Galcop tow-away truck ;)

Posted: Sat Sep 20, 2008 5:26 pm
by Micha
another_commander wrote:
I've spent an hour or so with it and came up with a basic implementation:
Ouch! You sure know how to make a guy feel inadequate :)

How do you mean it doesn't 'do' anything? The main idea was that once you've got docking clearance it would prevent other ships from launching within your docking window - you're suggesting this was already part of the code? *slightly confused* It also IMHO adds to the atmosphere of the game by making you talk to station control.

I hadn't given too much thought to if you're denied docking due to legal status to be honest. Perhaps if you try to request docking clearance when fugitive it alerts the station authorities and the station launches Vipers to chase you away - but as you say that then makes the changes more pervasive.

Fines (or even legal status downgrades) for docking without clearance is a good idea. As [green]Thargoid[/green] pointed out, Jamesons maybe only get a warning for the first few transgressions.

Posted: Sat Sep 20, 2008 9:49 pm
by another_commander
Micha wrote:
Ouch! You sure know how to make a guy feel inadequate :)
Nah, pretty much everything was already there, I just added a new key binding, really ;-)
How do you mean it doesn't 'do' anything? The main idea was that once you've got docking clearance it would prevent other ships from launching within your docking window - you're suggesting this was already part of the code? *slightly confused* It also IMHO adds to the atmosphere of the game by making you talk to station control.
Yes, once clearance has been granted, ships stop launching for two minutes. This was already in the original code. It adds to the atmosphere when you talk to the station, but it all falls apart when you realize that much more needs to be done in order for the small details to get ironed out and the whole system to work as intended. As it is, it is not really a clearance you are getting, just a pause in traffic. Proper clearance would mean permission to enter, with related penalties if protocol is not followed.
I hadn't given too much thought to if you're denied docking due to legal status to be honest. Perhaps if you try to request docking clearance when fugitive it alerts the station authorities and the station launches Vipers to chase you away - but as you say that then makes the changes more pervasive.

Fines (or even legal status downgrades) for docking without clearance is a good idea. As [green]Thargoid[/green] pointed out, Jamesons maybe only get a warning for the first few transgressions.
All these ideas are welcome and sound interesting. They can be considered for future additions.

Posted: Sun Sep 21, 2008 1:10 pm
by another_commander
The very basic implementation for docking clearance request has been inserted into SVN revision 1765. Bleeding edge warriors, please test and comment. To compile the feature in, you must define the macro DOCKING_CLEARANCE_ENABLED. For Windows/Linux, this can be done by adding the definition to the C/OBJC flags in the GNUmakefile.

This is not quite ready to go in as a full feature for reasons explained above. Any ideas to make it better will be welcome. Also, be aware that due to the changes in descriptions.plist, you will need to hold Shift down when starting Oolite the first time you run after building it.

Posted: Sun Sep 21, 2008 5:54 pm
by Griff
daft suggestion: maybe we could just put a great big turret at the enterance of the station docking bay that blasts any ship that comes to close without having first asked for docking permission?
ooh, maybe you could buy a bit of kit that cancels npc's docking request just as they are about to enter the bay.

Posted: Sun Sep 21, 2008 6:11 pm
by Thargoid
Or add something highly technical and futuristic - a door? ;)

Posted: Sun Sep 21, 2008 6:43 pm
by Micha
Blast doors would be the most obvious change to prevent fugitives from docking - but that'd only be considerable once we can save at pirate stations et al as otherwise the game would be pretty much over if you ever reach fugitive status.