Ship Pricing OXP

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

Moderators: another_commander, winston

User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

Ship Pricing OXP

Post by Lestradae »

Hi all,

I invested some thought in this lately and came up with the not completely new idea of letting the game calculate the prices based on the ship stats. That would have a lot of good consequences. For example, Uber ships would no longer be so Uber if you had to work really long to aquire them. And the quality of a ship would directly reflect into how difficult or easy it was to aquire.

I have devised a suggestion how such a calculation could look like. It even produces rather fitting prices. Example results would be, for example:

A flying strut: 276 Cr
Adder: 29.500 Cr
Gecko: 70.760 Cr
Asp MkII: 120.960 Cr
Cobra MkIII: 150.000 Cr
Python: 177.650 Cr
Tesoura: 432.000 Cr
Fer-de-Lance (0.6 LS): 606.500 Cr
Anaconda: 714.150 Cr
Imperial Courier: 972.000 Cr
Benulobiweed Firefly: 1.110.400 Cr
Super Cobra: 1.622.000 Cr
The Ultimate Uber Ship*: 345.610.000 Cr

* The Ultimate Uber Ship has all the highest stats that I found for any ship - but combined in one ship

The calculation would take a Cobra MkIII with a base value of 150.000 Cr and then modify the price according to the stat differences in combination.

That would look as follows:

Basic Ship:

Cobra MkIII:
* Extended Cargo Capacity: 35 tons
* Speed: 0.35 LS
* Energy Banks: 4
* Missile Slots: 4
* Possible Equipment: All
* Manoeuvrability (Pitch/Roll): 1.5
* Gun Mounts: All 4
* Energy recharge rate: 4
* Price without Equipment: 150.000 Cr

Suggestion for price calculation:

* Cobra MkIII as standard with Standard Price: 150.000 Cr

* Extended Cargo Capacity: Price is raised/lowered 20%/10% per 20 additional/smaller Cargo Bay

* Speed: Price is doubled (each time)/lowered 20% per 0.1 LS jump up/down

* Energy Banks: Price is raised/lowered 20%/10% per additional/fewer Energy Bank

* Missile Slots: Price is raised/lowered 20%/10% per additional/fewer Missile Slots

* Possible Equipment: Price is taken down 10% per essential equipment piece not available

* Manoeuvrability (Pitch/Roll): Price is raised/lowered 20% per 0.5 additional/lower Pitch/Roll

* Gun Mounts: Price is lowered 10% per unavailable, 5% per reduced capacity Gun Mount

* Energy recharge rate: Price is raised/lowered 20%/10% per 1 additional/lower Energy recharge rate

* Price without Equipment is result of 150.000 Cr multiplied by all multipliers!

Three example calculations might look like this:

Gecko:
Extended Cargo Capacity: 3 tons (Price lowered 20% for non-existing cargo space) M=0.8
Speed: 0.30 LS (0.05 LS down, price lowered 10% as slower) M=0.9
Energy Banks: 3 (1 Energy Bank less, price lowered 10%) M=0.9
Missile Slots: 4 (Price stays as is) M=1.0
Possible Equipment: No MilSh, No ECC (Price lowered 20% as 2 essential EQ N/A) M=0.8
Manoeuvrability (Pitch/Roll): 2.25 (Price raised 30% as 0.75 additional Pitch/Roll) M=1.3
Gun Mounts: 1 (Price lowered 30% for 3 unavailable Gun Mounts) M=0.7
Energy recharge rate: 4 (Price stays as is) M=1.0
Price without Equipment: 150.000 Cr * 0.7 * 0.8"2 * 0.9"2 * 1.3 ~ 47.2% ~ 70.760 Cr

Tesoura:
Extended Cargo Capacity: 135 tons (Price raised 100% due to big cargo space) M=2.0
Speed: 0.30 LS (0.05 LS down, price lowered 10% as slower) M=0.9
Energy Banks: 7 (3 Energy Banks more, price raised 60%) M=1.6
Missile Slots: 4 (Price stays as is) M=1.0
Possible Equipment: All (Price stays as is) M=1.0
Manoeuvrability (Pitch/Roll): 1.5 (Price stays as is) M=1.0
Gun Mounts: 4 (Price stays as is) M=1.0
Energy recharge rate: 4 (Price stays as is) M=1.0
Price without Equipment: 150.000 Cr * 0.9 * 1.6 * 2 ~ 288% ~ 432.000 Cr

Imperial Courier:
Extended Cargo Capacity: 135 tons (Price raised 100% due to big cargo space) M=2.0
Speed: 0.35 LS (Price stays as is) M=1.0
Energy Banks: 8 (4 Energy Banks more, price raised 80%) M=1.8
Missile Slots: 8 (4 Missile Slots more, price raised 80%) M=1.8
Possible Equipment: All (Price stays as is) M=1.0
Manoeuvrability (Pitch/Roll): 1.5 (Price stays as is) M=1.0
Gun Mounts: 4 (Price stays as is) M=1.0
Energy recharge rate: 4 (Price stays as is) M=1.0
Price without Equipment: 150.000 Cr * 1.8"2 * 2 ~ 648% ~ 972.000 Cr

This is a serious suggestion. I can`t imagine this being too difficult to implement, as the maths is rather simple.

I have posted a list of the detailed calculation in the above list in the Suggestions Forum. Have fun trying this out on other ships.

Ahruman has answered this suggestion that
I have no intention of changing the pricing of the built-in ships, or of forcing particular pricing on OXP writers. However, your formula could be of interest in pricing new OXP ships, or evaluating the überness off new OXP ships.
OK. So, I asked myself, would it be technically possible to create an oxp that changed all ship prices, be they original ships or oxp ones, according to this formula?

Because then, I would like to make something like that (together with someone who can script) and players could individually decide for themselves if they find this a good idea that fits for them or not.

Someone interested?
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Re: Ship Pricing OXP

Post by JensAyton »

Lestradae wrote:
OK. So, I asked myself, would it be technically possible to create an oxp that changed all ship prices, be they original ships or oxp ones, according to this formula?
Currently, only by overriding their shipdata.plist entries, so there is no way to make it apply to all OXPs.

Enabling JavaScript scripts to manipulate the shipyard could be interesting, but would require internal redesign that I don’t want to schedule for before the MNSR.
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

shipdata.plist

Post by Lestradae »

Hi you, who sits to the right hand of Giles! :D
Currently, only by overriding their shipdata.plist entries, so there is no way to make it apply to all OXPs.
Would it not be possible to write an oxp that only consisted of a shipdata.plist which contained all ships any oxp uses up-to-date with the new prices factured in by hand?
Enabling JavaScript scripts to manipulate the shipyard could be interesting, but would require internal redesign that I don’t want to schedule for before the MNSR.
So I guess its not something that might be done on a quiet afternoon hour ... :wink:

I can imagine what kind of work you invest in the NMSR ... but the ship prices are really ... absurd. Well. If I can convince you somehow ... anyhow ... :D let me know ...

PS: Had another weird idea. What if I change all shipdata.plists by hand and ask all oxp-builders reachable if they are ok with changing their ship`s values?

Questions, questions ... with me they will never end.

Right on Archangel! :)

L
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Re: shipdata.plist

Post by JensAyton »

Lestradae wrote:
Would it not be possible to write an oxp that only consisted of a shipdata.plist which contained all ships any oxp uses up-to-date with the new prices factured in by hand?
Yes. As long as you call it zzzzSomething.oxp, and required that users have every other OXP installed (so the models and textures are available).
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

I would have to ...

Post by Lestradae »

As long as you call it zzzzSomething.oxp
That ZZZZ thingy would be for the load order, yes? So that its ship prices override all others?
and required that users have every other OXP installed (so the models and textures are available).
Ah, that`s bad. :( So what would happen if the ZZZZ Ship Pricing oxp is there, but a player doesn`t have all the ship oxps available? Sorry for this kind of stupid questions, but I am very slowly learning how this all works from scratch ...

Thanks for your patience :)

L
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Re: I would have to ...

Post by JensAyton »

Lestradae wrote:
That ZZZZ thingy would be for the load order, yes? So that its ship prices override all others?
Yes.
Ah, that`s bad. :( So what would happen if the ZZZZ Ship Pricing oxp is there, but a player doesn`t have all the ship oxps available?
I think 1.70 would just spit out a lot of errors. 1.65 would almost certainly crash.
User avatar
Hoopy
---- E L I T E ----
---- E L I T E ----
Posts: 438
Joined: Wed Oct 03, 2007 8:54 pm
Location: Durham, England

Post by Hoopy »

I thought you could use javascript to check to see if another OXP was loaded. That way you could just change the prices of ships that were present and not change those that aren't.
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

Hoopy wrote:
I thought you could use javascript to check to see if another OXP was loaded. That way you could just change the prices of ships that were present and not change those that aren't.
We’ve already established that JavaScript can’t manipulate the shipyard. :-)
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

Lestradae wrote:
OK. So, I asked myself, would it be technically possible to create an oxp that changed all ship prices, be they original ships or oxp ones, according to this formula?
I don't see a point in changing the pricing of ships created by other scriptwriters. There is always a reason for that prise. But not always well thought of. The concept for prising is good but it should be for ship designers to be used. Make an easy to use list for prise values and put that on the scripting area on wiki as guideline for other scripters. When the values are good thought of, it will be useful as it will help to not create uberships. Such ships should than become too expensive to obtain.

But the individual scriptwriter should have the last decision.
User avatar
Disembodied
Jedi Spam Assassin
Jedi Spam Assassin
Posts: 6881
Joined: Thu Jul 12, 2007 10:54 pm
Location: Carter's Snort

Post by Disembodied »

That's true, I think... after all, a ship-creator might want to overprice a ship, to reflect added social status for any pilot flying one. Designer-label ships! But Lestradae's calculations do seem to provide an excellent guide to pricing ships by their statistics, before the manufacturer adds on extras for walnut interiors, metallic paint, built-in surround-smell odourising systems etc.
User avatar
TGHC
---- E L I T E ----
---- E L I T E ----
Posts: 2157
Joined: Mon Jan 31, 2005 4:16 pm
Location: Berkshire, UK

Post by TGHC »

Disembodied wrote:
built-in surround-smell odourising systems etc.
Eeeeew, the mind boggles!
The Grey Haired Commander has spoken!
OK so I'm a PC user - "you know whats scary? Out of billions of sperm I was the fastest"
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

Have started work on my first oxp ...

Post by Lestradae »

This is not my first idea, but the first idea that I am actually doing more than planning for.

I have started work on the Zzzz Ship Pricing.oxp! The first testversion should be out in a week or so and will contain revised ship pricing according to the ship`s statistics.

The test oxp will include all standard player ships, the illicit unlock ships, the Tesoura and the old and new Imperial Cruiser. My first experiments have shown the method indicated by Ahruman to be working. I have no idea how the game reacts to this if some of the ships the oxp is adressing aren`t actually available - well, we will find out soon.
I don't see a point in changing the pricing of ships created by other scriptwriters. There is always a reason for that prise. But not always well thought of.
Yeah ... exactly :)
Make an easy to use list for prise values and put that on the scripting area on wiki as guideline for other scripters.
My oxp is going to contain a Word-File that lists all the stats of all the ships it contains. (Careful, spoilers ahead!)

And in the meantime I could use a little help from everyone around here ... if you find the time, could you please :shock: post or PM me the following stats of your oxp ships, as this is a major pain in the iron ass to find out via shipdata.plist? Namely:

* Exact ship name in the game

* It`s chance to appear in a shipyard

* Such a shipyard`s minimal Tech Level

* It`s extended (maximum) Cargo Capacity (that is, if Cargo Bay Extension is available for it)

* Maximum Speed (as appears ingame)

* Amount of Energy Banks (number ingame)

* Amount of Missile Slots

* Possible Equipment (can it use MilShields, Shield Boosters, does it have Cargo Bay Extension Capacity - those three are relevant)

* It`s Pitch & Roll values both

* Which of the four Gun Mounts can be used? Are there restricted ones? (Like only Beam Laser etc.)

* The Energy Recharge Rate (as in the wiki)

... I need these for the revised Ship Prices.

The format should look something like this:

Ship Name -Chance to Appear-Minimal Tech Level-Extended Cargo-Capacity-Maximum Speed-Energy Banks-Missile Slots-Possible Equipment-Pitch/Roll-Gun Mounts-Energy Recharge Rate

Benulobiweed Firefly 35 t 0.755 LS 1 3 No ECC 2.0/1.8 Fore, Aft 2.5 1.110.400 Cr

Boa 125 t 0.24 LS 7 4 No MilSh & ECC 2.8/1.0 All 3.0 315.200 Cr

Boa Class Cruiser 175 t 0.312 LS 8 5 No ECC 2.5/1.0 All 3.2 679.900 Cr

Fer-de-Lance 12 t 0.60 LS 2 2 No ECC 3.6/1.0 All 4.5 606.500 Cr

Gecko 3 t 0.30 LS 3 4 No MilSh & ECC 3.0/1.5 Fore 4.0 70.760 Cr

Imperial Courier (Old) 135 t 0.35 LS 8 8 All 2.0/1.0 All 4.0 972.000 Cr

etc. etc.

In return, there will be complete ship stat lists for all buyable ships be included in the oxp.

Looking forwards to your replies & feedback,

L

PS: I feel honoured by
Lestradae's calculations do seem to provide an excellent guide to pricing ships by their statistics
and
Make an easy to use list for prise values and put that on the scripting area on wiki as guideline for other scripters.
I therefore humbly suggest that if someone would want to do this (I have posted the whole method) the whole formulaic price system can be put anywhere onto the Oolite Boards & wiki! So, by all means and purposes, put the idea into the wiki ... while I am still struggling through shipdata & shipyard plists and the uploading and zipping processes for the oxp. You will have to bear with me ... :?
Last edited by Lestradae on Fri Feb 29, 2008 1:25 pm, edited 1 time in total.
User avatar
Hoopy
---- E L I T E ----
---- E L I T E ----
Posts: 438
Joined: Wed Oct 03, 2007 8:54 pm
Location: Durham, England

Post by Hoopy »

@Ahruhman
Is it not possible to have javascipt and old style scripting in the same OXP? If so the js could see what else was installed and then tell the old script which prices to change...
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

@Hoopy

Post by Lestradae »

Is it not possible to have javascipt and old style scripting in the same OXP? If so the js could see what else was installed and then tell the old script which prices to change...
Could it be ... can I hope ... that you might help me with the creation of this oxp? :shock:

Would it be possible with Java Script to read out the relevant ship data from the oxps available and then calculate the price with the formula, instead of entering each and every calculated price by hand?

As that way, it would be fast & easy to include ships from new oxps much faster than with my intended method ...

Cooperative :?: greetings,

L
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

Here is a bit of text I`ve written so far ...

Post by Lestradae »

Overview
--------

It all started when I was unnerved at the absurd ship pricing in Oolite. Why should you pay so much money for an Asp MkII if it`s really such a let-down from the Jameson`s Cobra MkIII? And aren`t the ultra-fast Benulobiweed ships, the Imperial Courier Battleship and the better-in-all-and-everything SuperCobra Uber ships, to be shunned by the honest player?

I thought not. What was missing for me was a method of accurate pricing, that actually had some kind of relation to any ship`s performance. So I devised a method to derive a more realistic ship pricing from the ship stats. How large is its Cargo Bay? How fast is it? Can every piece of equipment be fitted in? And, most importantly, is it a ship that unites loads of different bonuses (SuperCobra) or maluses (Adder) at once?

I believe this OXP solves the problem of Uber ships and strange prices alike. Now, if you like to own an Asp MkII just for fun, you don`t have to pay twice the price of a Cobra MkIII to do it. If you want to fly the SuperCobra but it felt like cheating, not any more. Because now you`ll have to earn it - by paying 1.6 million Credits ...

In the early and middle stages of the game, you will know that if you buy a ship with more of something, you pay more. And the other way around. Oolite now realistically trades off cargo space against speed against handling and so on - giving you as the player transparent choices of what you are going for. You can work yourself up a continuous ladder of better and better ships.

I think that the Ship Pricing OXP could even open new Vistas of gameplay for Deadly & Elite veteran Commanders. Seen everything? Won against anything? Well, now you might buy and fight some Dreadnought Carrier with 1000 tons of Cargo, 10 Energy Banks & Missile Slots that can fly at 0.75 LS! You will just have to earn an unprecedented 60 million Credits first. So the game will still have to offer the Elite veteran in his Iron Ass SuperCobra something to strive for.

This is my first OXP, and the first time in the last twenty years that I tried my hand at something remotely resembling programming, so bear with me. If you find any bugs or performance issues that are not already listed here, feel free to PM me and I`ll see what I can do about it.


Revised Ship Prices
-------------------

Flying strut: 276 Cr
Adder: 29.500 Cr
Cobra MkI: 33.080 Cr
Moray Medical Boat: 61.840 Cr
Gecko: 70.760 Cr
Moray Star Boat: 80.300 Cr
Asp MkII: 120.960 Cr
Cobra MkIII: 150.000 Cr
Python: 177.650 Cr
Boa: 315.200 Cr
Tesoura: 432.000 Cr
Fer-de-Lance: 606.500 Cr
Boa Class Cruiser: 679.900 Cr
Anaconda: 714.150 Cr
Imperial Courier (New Vs.):
Imperial Courier (Old Vs.): 972.000 Cr
Benulobiweed Firefly: 1.110.400 Cr*
Super Cobra: 1.622.000 Cr*
The Ultimate Uber Ship: 345.610.000 Cr**

* Revised pricing not yet implemented
** Fictional ultimate Uber Uber ship
Post Reply