(Beta) Mining Contracts

Discussion and information relevant to creating special missions, new ships, skins etc.

Moderators: another_commander, winston

diagoras
Competent
Competent
Posts: 55
Joined: Fri Oct 02, 2015 12:37 pm

Re: (Beta) Mining Contracts

Post by diagoras »

spara wrote:
I love the flavor texts of contracts as they really add to the game.
Thank you, but english legalspeak is definitely not my strong side :-) There is a lot of room for improvement in the context of flavoring.
spara wrote:
However, I think that from player's point of view, it's better to go mining first (no hurry, just meditate and mine) and then visit a hermit and see if there's a contract to be filled. I can see the idea of adding some deadlines and excitement of filling them, but as a miner, I usually venture far with no time limits. You know, just me and the rocks kind of thing.
Hm... I understand you. Though, I feel you are talking about mining with more advanced fast ships with witchdrive and several dozen tons of cargo space. While I was creating this extension more with Start Choices "Miner" in mind - you know, 12t, 0.1 LM and hitchhiking for wormholes. When you are operating Transporter, there is no place for meditative side of mining - you launch from Rock Hermit, painfully slowly approach closest rock, fire laser at it and pray for splinters not to fly away faster then your top speed. Then after collecting only 12t, you are full and can not continue without docking. Fucking job, not hipster bullshit ;-)

Though, actually, nothing prevents you from filling up Cobra Mk.3 with 35t of minerals in your usual meditative style and only then check Rock Hermits interface for contracts in range of 30-40t - usually there is one or two. If appropriate contract is slightly below your cargo tonnage - you sell surplus on market or just launch with it and continue your journey. If contract is slightly above - you either mine shortage from closest rock and redock to gather your reward, or just manually terminate contract after dispatching main cargo - this way you'll still have your pay minus small forfeit.
spara wrote:
And the open contracts could fill up over time by NPCs too (simulated or real). And when the contract is full, a shipment full of minerals could launch and head for the main station. And naturally new contracts should open over time to keep the market accepting minerals.
OK, I like this idea about contract fulfillment sometimes triggering launch of freighter heading to main station. Such thing would definitely add to atmosphere. Though, my couple days of free time for oolite are over and I do not know when I can continue adding complex features like this. That's why I was asking if anyone would want to adopt expansion - I'm right now only good for small fine-tuning of contract generation parameters.
User avatar
spara
---- E L I T E ----
---- E L I T E ----
Posts: 2676
Joined: Wed Aug 15, 2012 4:19 am
Location: Finland

Re: (Beta) Mining Contracts

Post by spara »

With Mining Transporter, the first thing to buy are the injectors. After that, it gets a lot nicer. So the most tedious part of the Miner Start lasts for 600 credits. For that, it would be nice to have some accelerator. The contracts would suit just fine, assuming there's enough material around the hermit. Which gave me another idea :D . And here it goes:

After taking the contract, the OXP would make sure, that there are always asteroids around the station until the contract has been filled. This could be done by counting the number of asteroids around the station when the player launches and again when the player docks. Then the difference would be spawned back. A bit like my Asteroid Tweaks OXP currently does.
diagoras
Competent
Competent
Posts: 55
Joined: Fri Oct 02, 2015 12:37 pm

Re: (Beta) Mining Contracts

Post by diagoras »

spara wrote:
After taking the contract, the OXP would make sure, that there are always asteroids around the station until the contract has been filled. This could be done by counting the number of asteroids around the station when the player launches and again when the player docks. Then the difference would be spawned back. A bit like my Asteroid Tweaks OXP currently does.
Great idea! I myself haven't hit a problem of asteroid depletion, because I play in short bursts, and when you load saved game system is repopulated. But for people who want to lift off their miner in one thrust this definitely can become an annoyance. Asteroid respawn sounds like important feature - I'll try carving some time to add it.

By the way, about your Asteroid Tweaks OXP - it looks like there will be feature reduplication if I'll implement asteroid respawn myself. What would be better - to mark your OXP as conflicting, or add its detection and turn off my respawn in case?
User avatar
spara
---- E L I T E ----
---- E L I T E ----
Posts: 2676
Joined: Wed Aug 15, 2012 4:19 am
Location: Finland

Re: (Beta) Mining Contracts

Post by spara »

diagoras wrote:
spara wrote:
After taking the contract, the OXP would make sure, that there are always asteroids around the station until the contract has been filled. This could be done by counting the number of asteroids around the station when the player launches and again when the player docks. Then the difference would be spawned back. A bit like my Asteroid Tweaks OXP currently does.
Great idea! I myself haven't hit a problem of asteroid depletion, because I play in short bursts, and when you load saved game system is repopulated. But for people who want to lift off their miner in one thrust this definitely can become an annoyance. Asteroid respawn sounds like important feature - I'll try carving some time to add it.

By the way, about your Asteroid Tweaks OXP - it looks like there will be feature reduplication if I'll implement asteroid respawn myself. What would be better - to mark your OXP as conflicting, or add its detection and turn off my respawn in case?
I think we should link them so that your OXP goes first, spawns X asteroids and reports that to Asteroid Tweaks somehow. Then Asteroid Tweaks OXP fires and subtracts those from the number it wants to spawn and spawns the difference. For example your OXP could fire at shipWillDockWithStation and mine at shipDockedWithStation. In addition your OXP should contain a public variable telling how many asteroids just got spawned. The variable should be zeroed at launch from station.
diagoras
Competent
Competent
Posts: 55
Joined: Fri Oct 02, 2015 12:37 pm

Re: (Beta) Mining Contracts

Post by diagoras »

spara wrote:
I think we should link them so that your OXP goes first, spawns X asteroids and reports that to Asteroid Tweaks somehow. Then Asteroid Tweaks OXP fires and subtracts those from the number it wants to spawn and spawns the difference. For example your OXP could fire at shipWillDockWithStation and mine at shipDockedWithStation. In addition your OXP should contain a public variable telling how many asteroids just got spawned. The variable should be zeroed at launch from station.
Hm... If we are going to make our scripts aware of each other, from architectural perspective it would be better to outsource spawning code to your script completely - it is specially about spawning asteroids after all :-) What if I will store statistics of how many alloys and minerals have been delivered by player on contract terms in some public variable, and you will decide using this information how many asteroids you should respawn around Rock Hermit instead of your usual algorithm?
User avatar
spara
---- E L I T E ----
---- E L I T E ----
Posts: 2676
Joined: Wed Aug 15, 2012 4:19 am
Location: Finland

Re: (Beta) Mining Contracts

Post by spara »

diagoras wrote:
spara wrote:
I think we should link them so that your OXP goes first, spawns X asteroids and reports that to Asteroid Tweaks somehow. Then Asteroid Tweaks OXP fires and subtracts those from the number it wants to spawn and spawns the difference. For example your OXP could fire at shipWillDockWithStation and mine at shipDockedWithStation. In addition your OXP should contain a public variable telling how many asteroids just got spawned. The variable should be zeroed at launch from station.
Hm... If we are going to make our scripts aware of each other, from architectural perspective it would be better to outsource spawning code to your script completely - it is specially about spawning asteroids after all :-) What if I will store statistics of how many alloys and minerals have been delivered by player on contract terms in some public variable, and you will decide using this information how many asteroids you should respawn around Rock Hermit instead of your usual algorithm?
Sure, no problem. If you just have a flag saying that there's a contract running, I can spawn asteroids around the current hermit. A public worldscript variable will do just fine.
diagoras
Competent
Competent
Posts: 55
Joined: Fri Oct 02, 2015 12:37 pm

Re: (Beta) Mining Contracts

Post by diagoras »

spara wrote:
Sure, no problem. If you just have a flag saying that there's a contract running, I can spawn asteroids around the current hermit. A public worldscript variable will do just fine.
Done. Variable is named "MC_active". Grab file here: http://bitbucket.org/diagoras/oolite/do ... s_1.3a.oxz - I will upload it as official release as soon as you'll say it's ok.
User avatar
spara
---- E L I T E ----
---- E L I T E ----
Posts: 2676
Joined: Wed Aug 15, 2012 4:19 am
Location: Finland

Re: (Beta) Mining Contracts

Post by spara »

diagoras wrote:
spara wrote:
Sure, no problem. If you just have a flag saying that there's a contract running, I can spawn asteroids around the current hermit. A public worldscript variable will do just fine.
Done. Variable is named "MC_active". Grab file here: http://bitbucket.org/diagoras/oolite/do ... s_1.3a.oxz - I will upload it as official release as soon as you'll say it's ok.
While testing the new version, this kept popping into my log:

Code: Select all

01:03:23.766 [script.javaScript.exception.unexpectedType]: ***** JavaScript exception (miningcontracts 1.3): TypeError: choice is null
01:03:23.767 [script.javaScript.exception.unexpectedType]:       /home/spara/.Oolite/AddOns/MiningContracts_1.3a.oxz/Scripts/miningcontracts.js, line 256.
I'll put the new version of asteroid tweaks up tomorrow. Got to sleep now.
diagoras
Competent
Competent
Posts: 55
Joined: Fri Oct 02, 2015 12:37 pm

Re: (Beta) Mining Contracts

Post by diagoras »

spara wrote:
While testing the new version, this kept popping into my log:

Code: Select all

01:03:23.766 [script.javaScript.exception.unexpectedType]: ***** JavaScript exception (miningcontracts 1.3): TypeError: choice is null
01:03:23.767 [script.javaScript.exception.unexpectedType]:       /home/spara/.Oolite/AddOns/MiningContracts_1.3a.oxz/Scripts/miningcontracts.js, line 256.
That's very strange. I have been testing same file right now, took one contract, partially delivered cargo, prematurely terminated it and grabbed my reward - all without seeing single TypeError in log. Can you confirm that you have uninstalled previous version from Extension Manager and then relaunched with this file holding Shift?
User avatar
spara
---- E L I T E ----
---- E L I T E ----
Posts: 2676
Joined: Wed Aug 15, 2012 4:19 am
Location: Finland

Re: (Beta) Mining Contracts

Post by spara »

diagoras wrote:
spara wrote:
While testing the new version, this kept popping into my log:

Code: Select all

01:03:23.766 [script.javaScript.exception.unexpectedType]: ***** JavaScript exception (miningcontracts 1.3): TypeError: choice is null
01:03:23.767 [script.javaScript.exception.unexpectedType]:       /home/spara/.Oolite/AddOns/MiningContracts_1.3a.oxz/Scripts/miningcontracts.js, line 256.
That's very strange. I have been testing same file right now, took one contract, partially delivered cargo, prematurely terminated it and grabbed my reward - all without seeing single TypeError in log. Can you confirm that you have uninstalled previous version from Extension Manager and then relaunched with this file holding Shift?
Easy to reproduce, just launch while the contract detail screen is open before selecting "Sign contract".

A couple of notes about the oxp
* You might want to cap the number of available contracts to five or something. I once had something like 10 and it felt a bit silly.
* "recieved" should be "received".
* If you ever develop this further, you might want to separate the textual content from the code to missiontext.plist and descriptions.plist files.
* How does Ms-Pl license differ from CC-BY-NC-SA 4.0? Just the main points. CC is the most common license used here.
diagoras
Competent
Competent
Posts: 55
Joined: Fri Oct 02, 2015 12:37 pm

Re: (Beta) Mining Contracts

Post by diagoras »

spara wrote:
Easy to reproduce, just launch while the contract detail screen is open before selecting "Sign contract".
Bug located and squashed - thank you. It was there from first version due not very clear wording in wiki docs. And I though it have appeared in 1.3a - with literally two strings added in very unrelated place it made my eyes anime-wide :-)
spara wrote:
* You might want to cap the number of available contracts to five or something. I once had something like 10 and it felt a bit silly.
I understand why you may feel so, but I'm not sure I want to do anything about it. Right now contracts are generated by fair-dealing Poisson process, which means that there can be moments without any contracts at all as well as with large number of them. I think uncertainty like this adds to immersion - elite universe lives its own life, and player can't rely on it offering him wide range of juicy choices or dry jobless desert. Though, if you think that there should be less contracts on average, I may agree with you. Now companies are offering new contracts at average rate of 2 per hour. Do you think 1.5 per hour or even 1 per hour will be better?
spara wrote:
* "recieved" should be "received".
Thank you! I hate when crap like this slips from under my fingers.
spara wrote:
* If you ever develop this further, you might want to separate the textual content from the code to missiontext.plist and descriptions.plist files.
Yup, I understand why it's a good practice. Looking at relevant part of docs is in my TODO list for the future, but I'm not sure when this future will come.
spara wrote:
* How does Ms-Pl license differ from CC-BY-NC-SA 4.0? Just the main points. CC is the most common license used here.
1) It is shorter - I like licenses that fit on one side of A4
2) It is not copyleft and allows distribution of derived works in binary form without source, though many probably won't take this as virtue
3) It has clause against patent trolls similar to one in GPLv3 (not important for oolite probably, but generally nice thing)
4) It explicitly forbids distribution of source code under different licenses - you may freely combine Ms-PL code with code under any other licenses that do not forbid it themselves, but can not claim that such combination as a whole is licensed under different license. You must say something like "part of this work is distributed on terms of Ms-PL" when you describe licensing of combined work.

I use Ms-PL as default license of choice when I code, but if anyone needs my code on different terms, they usually just need to ask - I'm not purist about it.

Will release 1.3 officially in couple of hours.
diagoras
Competent
Competent
Posts: 55
Joined: Fri Oct 02, 2015 12:37 pm

Re: (Beta) Mining Contracts

Post by diagoras »

1.4 out.

Iceteroids are not required now (thanks to Diziet Sma) and contracts for alloys made less frequent.
User avatar
spara
---- E L I T E ----
---- E L I T E ----
Posts: 2676
Joined: Wed Aug 15, 2012 4:19 am
Location: Finland

Re: (Beta) Mining Contracts

Post by spara »

Tested this one out with more extensively together with new versions of Start Choices and Asteroid Tweaks. And it's a blast 8) . I would say that it's a must, if someone fancies a miner start.

The new version of Start Choices will include Injectors as a starting equipment for the mining transporter. Even with injectors it's slow, But it's totally playable.

Asteroid tweaks has a new formula for spawning asteroids back that monitors the surroundings of hermits and if asteroids are missing they get spawned back. Since this would make it too easy to cheat with the Ore Processor, there are limits for spawning. If the number of asteroids around the hermit goes below the upper limit and there's a shortage on asteroids, it will get new asteroids. If the number goes below the lower limit, it won't get any new asteroids. The idea is that with Mining Transporter just mining for minerals the field replenishes itself, but with Ore Processor you have to be very careful not to dry the field out. Needs more testing and balancing, but I'm getting there.

So here are few comments/suggestions:

* Once I have taken a contract, it would be nice to see the strictest deadline in the manifest
* When comparing deals, it would be nice to see price/tonne somewhere.
* It's a bit unclear how the paying goes. Do I get something for every unit I dispatch, or do I have to deliver everything to get payment? The contract should say it clearly. I would prefer some minimal payment per tonne on delivery and some final payment on final delivery.
* And finally, if there's room in the contract screen, I would like to see my credits for reference.

I'll be playing more and fine tune the supporting OXPs. Once more, great job and great OXP :D .

edit:

* It would also be nice to see how much minerals I am going to dispatch. Something like "Dispatch cargo (6t)".
* The contract should clearly say what happens, if I leave the system in the middle of the contract. And why am I not allowed to leave system? It's the deadline that counts, not where I get the minerals from. Right?
diagoras
Competent
Competent
Posts: 55
Joined: Fri Oct 02, 2015 12:37 pm

Re: (Beta) Mining Contracts

Post by diagoras »

spara wrote:
Tested this one out with more extensively together with new versions of Start Choices and Asteroid Tweaks. And it's a blast 8) . I would say that it's a must, if someone fancies a miner start.
That's flattering, really :-)
spara wrote:
The new version of Start Choices will include Injectors as a starting equipment for the mining transporter. Even with injectors it's slow, But it's totally playable.
Great! I was barely holding myself from firing at this goddamn Cobra grabbing all my precious minerals while I was chasing them at 0.1 LM.
spara wrote:
Asteroid tweaks has a new formula for spawning asteroids back that monitors the surroundings of hermits and if asteroids are missing they get spawned back.
Will be looking forward to see this released. Even if I think that Ore Processor is somewhat not very lore-friendly and do not use it myself.
spara wrote:
* Once I have taken a contract, it would be nice to see the strictest deadline in the manifest
Sounds reasonable - will include in next release, I hope.
spara wrote:
* When comparing deals, it would be nice to see price/tonne somewhere.
Tempting, but no. What I like about oolite is that it is not holding your hand in minor issues. Contract summary seen in the list gives player enough information to make a decision, but do not actively helps him to make this decision. It is not that hard to do a mental tally and I'd like to keep this little obstacle as part of gameplay.
spara wrote:
* It's a bit unclear how the paying goes. Do I get something for every unit I dispatch, or do I have to deliver everything to get payment? The contract should say it clearly. I would prefer some minimal payment per tonne on delivery and some final payment on final delivery.
If terms are unclear, it's not good - I probably need to expand descriptions, thank you for pointing. Payment is received only after either fulfilling contract terms, passing deadline or premature contract termination. I don't think I want to make contracts not fully post-paid, because such harsh conditions are really fitting Elite lore - after all, miners are almost bottom of food chain. Most of them are flying cheapest ships even incapable of interstellar jumps - they are basically forced into slaving under corporations for sub-market payment. Why would this rich bastards offer contracts on better conditions to workers who have no other choice? This just begs for mission chain about miner's union, strikes and mafia, but I definitely won't be doing this.
spara wrote:
* And finally, if there's room in the contract screen, I would like to see my credits for reference.
You mean your current balance? I'll see what I can do to fit it somewhere without breaking immersion of reading announcement pinned on a call board.
spara wrote:
I'll be playing more and fine tune the supporting OXPs. Once more, great job and great OXP :D .
Thank you again for your help and support! While you are testing, can you give me some feedback on contract generation parameters so I can compare it with my own feelings? Average and dispersion of required tonnage, difficulty (given time per ton), payment depending on difficulty - all this right now is pulled out of the hat and probably need adjusting. For example, right now I'm thinking of halving down average number of contracts available - what do you think of this?
User avatar
spara
---- E L I T E ----
---- E L I T E ----
Posts: 2676
Joined: Wed Aug 15, 2012 4:19 am
Location: Finland

Re: (Beta) Mining Contracts

Post by spara »

diagoras wrote:
While you are testing, can you give me some feedback on contract generation parameters so I can compare it with my own feelings? Average and dispersion of required tonnage, difficulty (given time per ton), payment depending on difficulty - all this right now is pulled out of the hat and probably need adjusting. For example, right now I'm thinking of halving down average number of contracts available - what do you think of this?
I played for a few hours and from that I feel that the payment is about right. You work you butt off and the payroll shows how little they appreciate you. On the other hand, my account kept steadily increasing. I operated from the same hermit and all the time there were at least two contracts to select from and at most I think six. I don't think the number of contracts is a problem, the similarity of them is. Mix in contracts with better pay and very strict deadlines to get more variety. Now there's no real need to select, all contracts are easily doable. And I don't mean that they all need to be harder, just more variety.

* The contracts could be spiced/personalized a bit by using the in-game name generator. So in addition to the company name, there could be a contact person or email or something. Assuming there's room in the page naturally. Have you checked the contract texts in Random Hits? Maybe something could be borrowed from there.
* It would be nice to browse the contracts with "next" and "previous".
* What is the bounty for defaulters? Is it the size of the Forfeit penalty? If it is (and if it's not, I think it should be), then it would be nice to mention it.
* The list page could do a bit of facelifting. Something like Parcel Delivery Contracts looks like?

Code: Select all

Employer			Needed	Within	Fee		Status

Stno Industries			32t	5 hours	180.0 cr	Taken
Edre Platinum Ltd		21t	2 hours	170.0 cr	Offer
Post Reply