Tech Levels for ship equipment

impaktor
Posts: 1008
Joined: Fri Dec 20, 2013 9:54 am
Location: Tellus
Contact:

Tech Levels for ship equipment

Post by impaktor »

Being able to buy any and all equipment available in the game from every station is a bit boring in my opinion. I'd like to take a moment to discuss how this could be changed in pioneer.

By adding tech levels to stations, they could be more varied in what they sell. For instance, it will allow some equipment to be more scarce such as class 3 (or n+1) military drive, and not all stations might stock Advanced ECM.

In Frontier, the higher the tech level a station had, the more equipment was available for purchase. However, tech level 11 was special and equipment at that level was not available at tech level 12. These were specifically equipment associated with the military.

In original Frontier, once you had bought some special equipment you could not remove it at a station with lower tech level. This is something that might be worth thinking over.

In frontier tech levels were associated with a station. This naturally allows different stations to stock different equipment, which I think is a good way to go. If all stations in the same system have identical stock, the system feels less "alive"/dynamic.

Also, I'd like to (in the future) have special stations that might sell unique equipment, like a pirate/anarchy station will sell hidden cargo hold, where you can stash drugs or other illegal goods. Or a station with high military presence might sell some special "boosted" military equipment. These could correspond to "tech level 11" in Frontier, and are maybe only available from hand scripted systems.

In Oolite (and original Elite?) the distribution of tech levels across systems seems to be Gaussian (below shows for Galaxy #1):
Image

In frontier, it seems to be more heavy tailed, like a power law distribution or similar:
Image

Equipment tech levels from Frontier:

Code: Select all

| EQUIPMENT                 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 19 | 11 | 12 |
|---------------------------+---+---+---+---+---+---+---+---+---+----+----+----|
| XB74 Proximity Mine       | - | - | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| KL760 Homing Missile      | - | - | - | - | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| LV111 Smart Missile       | - | - | - | - | - | - | - | - | - | 10 | 11 | 12 |
| NN500 Naval missile       | - | - | - | - | - | - | - | - | - |  - | 11 |  - |
| MV1 Assault Missile       | - | - | - | - | - | - | - | - | - |  - | 11 |  - |
| MV2 Assault Missile       | - | - | - | - | - | - | - | - | - |  - | 11 |  - |
| Missile Viewer            | - | - | - | - | - | - | - | - | - |  - | 11 | 12 |
| Auto targetter            | - | - | - | - | - | - | - | - | 9 | 10 | 11 | 12 |
| Chaff Dispenser           | - | - | - | - | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| Auto Refueller            | - | - | - | - | - | - | 7 | 8 | 9 | 10 | 11 | 12 |
| Atmospheric Shielding     | - | - | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| Navigation computer       | - | - | - | - | - | - | - | 8 | 9 | 10 | 11 | 12 |
| Combat computer           | - | - | - | - | - | - | - | - | - |  - | 11 | 12 |
| Laser Cooling Booster     | - | - | - | - | - | - | - | 8 | 9 | 10 | 11 | 12 |
| Cargo Bay Life Support    | - | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| Scanner                   | - | - | - | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 1 MW Pulse Laser          | - | - | - | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| Radar Mapper              | - | - | - | - | - | - | - | - | 9 | 10 | 11 | 12 |
| E.C.M. System             | - | - | - | - | - | - | - | - | 9 | 10 | 11 | 12 |
| Automatic Pilot           | - | - | - | - | - | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| Extra Passenger Cabin     | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| Hyperspace Cloud Analyser | - | - | - | - | - | - | - | - | - | 10 | 11 | 12 |
| Shield Generator          | - | - | - | - | - | - | - | 8 | 9 | 10 | 11 | 12 |
| 5 MW Pulse Laser          | - | - | - | - | - | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| Fuel Scoop                | - | - | - | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| Cargo Scoop Conversion    | - | - | - | - | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| Interplanetary Drive      | - | - | - | - | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| MB4 Mining Machine        | - | - | - | - | - | - | - | - | - |  - | 11 | 12 |
| 1 MW Beam Laser           | - | - | - | - | - | - | 7 | 8 | 9 | 10 | 11 | 12 |
| Class 1 Hyperdrive        | - | - | - | - | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| Tractor Beam Cargo Scoop  | - | - | - | - | - | - | - | - | - | 10 | 11 | 12 |
| Energy Booster Unit       | - | - | - | - | - | - | - | - | - |  - | 11 | 12 |
| 30 MW Mining Laser        | - | - | - | - | - | - | - | 8 | 9 | 10 | 11 | 12 |
| 4 MW Beam Laser           | - | - | - | - | - | - | - | - | - | 10 | 11 | 12 |
| Naval E.C.M. System       | - | - | - | - | - | - | - | - | - |  - | 11 |  - |
| Hull Auto-Repair System   | - | - | - | - | - | - | - | - | - |  - | 11 |  - |
| Energy Bomb               | - | - | - | - | - | - | - | - | - |  - | 11 |  - |
| Escape capsule            | - | - | - | - | - | - | - | 8 | 9 | 10 | 11 | 12 |
| 20 MW Beam Laser          | - | - | - | - | - | - | - | - | - |  - | 11 |  - |
| Class 2 Hyperdrive        | - | - | - | - | - | - | 7 | 8 | 9 | 10 | 11 | 12 |
| 100 MW Beam Laser         | - | - | - | - | - | - | - | - | - | 10 | 11 | 12 |
| Class 3 Hyperdrive        | - | - | - | - | - | - | - | - | 9 | 10 | 11 | 12 |
| Class 1 Military Drive    | - | - | - | - | - | - | - | - | - |  - | 11 | 12 |
| Class 4 Hyperdrive        | - | - | - | - | - | - | - | - | - | 10 | 11 | 12 |
| Class 2 Military Drive    | - | - | - | - | - | - | - | - | - |  - | 11 |  - |
| Class 5 Hyperdrive        | - | - | - | - | - | - | - | - | - |  - |  - | 12 |
| Class 3 Military drive    | - | - | - | - | - | - | - | - | - |  - |  - | 12 |
| Class 6 Hyperdrive        | - | - | - | - | - | - | - | - | - |  - |  - | 12 |
| Class 7 Hyperdrive        | - | - | - | - | - | - | - | - | - |  - |  - | 12 |
| Small Plasma Accelerator  | - | - | - | - | - | - | - | - | - |  - |  - | 12 |
| Large Plasma Accelerator  | - | - | - | - | - | - | - | - | - |  - |  - | 12 |

From: http://www.jades.org/maps/tech_lvl.htm
For reference, this is the equipment available in pioneer today

Code: Select all

| Equiptype             | Description                                |
|-----------------------+--------------------------------------------|
| MISSILE_UNGUIDED      | unguided rocket (MISSILE)                  |
| MISSILE_GUIDED        | guided missile (MISSILE)                   |
| MISSILE_SMART         | smart missile (MISSILE)                    |
| MISSILE_NAVAL         | naval missile (MISSILE)                    |
| ATMOSPHERIC_SHIELDING | atmospheric shielding (ATMOSHIELD)         |
| ECM_BASIC             | basic ECM system (ECM)                     |
| SCANNER               | scanner (SCANNER)                          |
| ECM_ADVANCED          | advanced ECM system (ECM)                  |
| UNOCCUPIED_CABIN      | unoccupied passenger cabin (CABIN)         |
| PASSENGER_CABIN       | occupied passenger cabin (CABIN)           |
| SHIELD_GENERATOR      | shield generator (SHIELD)                  |
| LASER_COOLING_BOOSTER | laser cooling booster (LASERCOOLER)        |
| CARGO_LIFE_SUPPORT    | cargo bay life support (CARGOLIFESUPPORT)  |
| AUTOPILOT             | autopilot (AUTOPILOT)                      |
| RADAR_MAPPER          | radar mapper (RADARMAPPER)                 |
| FUEL_SCOOP            | fuel scoop (FUELSCOOP)                     |
| CARGO_SCOOP           | cargo scoop (CARGOSCOOP)                   |
| HYPERCLOUD_ANALYZER   | hyperspace cloud analyser (HYPERCLOUD)     |
| HULL_AUTOREPAIR       | hull auto-repair system (HULLAUTOREPAIR)   |
| SHIELD_ENERGY_BOOSTER | shield energy booster unit (ENERGYBOOSTER) |
| DRIVE_CLASS1          | class 1 hyperdrive (ENGINE)                |
| DRIVE_CLASS2          | class 2 hyperdrive (ENGINE)                |
| DRIVE_CLASS3          | class 3 hyperdrive (ENGINE)                |
| DRIVE_CLASS4          | class 4 hyperdrive (ENGINE)                |
| DRIVE_CLASS5          | class 5 hyperdrive (ENGINE)                |
| DRIVE_CLASS6          | class 6 hyperdrive (ENGINE)                |
| DRIVE_CLASS7          | class 7 hyperdrive (ENGINE)                |
| DRIVE_CLASS8          | class 8 hyperdrive (ENGINE)                |
| DRIVE_CLASS9          | class 9 hyperdrive (ENGINE)                |
| DRIVE_MIL1            | class 1 military drive (ENGINE)            |
| DRIVE_MIL2            | class 2 military drive (ENGINE)            |
| DRIVE_MIL3            | class 3 military drive (ENGINE)            |
| DRIVE_MIL4            | class 4 military drive (ENGINE)            |
| PULSECANNON_1MW       | 1MW pulse cannon (LASER)                   |
| PULSECANNON_DUAL_1MW  | 1MW dual-fire pulse cannon (LASER)         |
| PULSECANNON_2MW       | 2MW pulse cannon (LASER)                   |
| PULSECANNON_RAPID_2MW | 2MW rapid-fire pulse cannon (LASER)        |
| PULSECANNON_4MW       | 4MW pulse cannon (LASER)                   |
| PULSECANNON_10MW      | 10MW pulse cannon (LASER)                  |
| PULSECANNON_20MW      | 20MW pulse cannon (LASER)                  |
| MININGCANNON_17MW     | 17MW blast-mining cannon (LASER)           |
| SMALL_PLASMA_ACCEL    | small plasma accelerator (LASER)           |
| LARGE_PLASMA_ACCEL    | large plasma accelerator (LASER)           |
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Tech Levels for ship equipment

Post by FluffyFreak »

The main problem with associating a tech' level with a station type is that we only have 2 types of space or ground station available, and I almost never see the big crappy anymore.

We could really do with a way out of this. Perhaps modular (ground) starports where we place #N landing pads in an grid depending on the population...

That's an idea for another thread / project experiment perhaps.
impaktor
Posts: 1008
Joined: Fri Dec 20, 2013 9:54 am
Location: Tellus
Contact:

Re: Tech Levels for ship equipment

Post by impaktor »

Oh, by "station" I didn't mean "station type" , I meant it as in "space port".
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Tech Levels for ship equipment

Post by FluffyFreak »

Ok so this would vary on a planet-by-planet basis? It would seem strange to have differing levels of tech' available at stations on the same planet / orbit.
bszlrd
Posts: 1084
Joined: Mon Jul 01, 2013 3:25 pm
Location: Budapest HU

Re: Tech Levels for ship equipment

Post by bszlrd »

I think it's not that unrealistic to have different tech levels on the same planet. Like LAX or Heathrow compared to the outback airport of Thököl (which is still has some small international traffic).
And cargo price and availability differences would make in-sys trading and exploring a possibility. Even if the price differences are not as steep as between different systems.
And it would make sense if advanced items like robots or computers wouldn't be available on very low tech-level systems.

Another thing that came to my mind the other day Impaktor mentioned this topic. (sorry, it's a bit unrelated, but I'm not sure if it would warrant a separate topic)
There could be some kind manufacturer and/or faction based differentiation. Like if you have an OPLI ship, then it's easy to find compatible parts on SolFed systems. And also on procedural systems further out, which have bought manufacturing licenses to OPLI craft. This could mean better availability and prices for you.
On the other hand if you have a Kaluri vessel, then it will be harder to find compatible parts, so price and availability goes up in SolFed space.
Ship prices could also reflect this. You would get peanuts for your OPLI craft on New Hope.

Same for drive maintenance and repairs.
And there could be specialized workshops on the BBS, offering cheaper services for specific manufacturers.

And this could be further tuned with a reliability and complexity value for each ship.
Reliability could govern how often you need to do maintenance, and also there could be a performance degradation associated with it.
Complexity would adjust the price of equipment and maintenance further. Like an OPLI Xylophis is as complex as a hammer, so you can fix it with a hammer too. And you can easily find a mechanic who's proficient with a hammer. Workhorse crafts like Deneb or Mola could be a middle ground. But the Kaluri Pumpkinseed (and any other courier really), is more like a watch, so more care is needed, thus higher prices.
These values might or might not show up on the ship info screen and market. I'd say it would be more interesting if the player got this experience firsthand. Or with only a vague indication, like "Pristine condition", "Heavily worn", "State of the art" "Simple and straightforward" and such typical words. Or some kind of simple abstract icons.

This could add a level of admittedly abstract detail to the whole equipment/maintenance topic without going knee-deep to a wide selection of hand-created components (or procedurally generated).
So a general manufacturer and a per ship model value. And maybe an additional age value which would gradually decrease general performance, but you can bring it up with a more trough maintenance.

Also this might allow some other things like ship tuning. A mechanic could tweak a bit of these values, like increase dependability/complexity, but this would decrease general performance. Or vice-versa. Equip mounts could also be added/removed too. Like you could rig a fuel scoop on your Kanara if you want it badly, but that costs you credits up front and some general dependability/complexity. Or you can fully remove the weapon mount from your ship for a bit of dependability and cargo space. Or to adjust your propellant space <--> cargo space.
And this could also be governed by tech-level. On a low level base it's hard to find a good mechanic, so there could even be a slight decrease in performance after he finished work. But on a high-level base you might even get a bit of bonus.
This would work well with used ship adverts on the BBS too, like an offer of a highly tweaked tuning craft, or a dirt-cheap beat-down oldtimer.
Or a field repair could fix the faulty equipment which got you stranded could decrease performance and dependability a lot. Especially if your engineer crew member isn't really adept. So you need to do a proper maintenance in dock if you want your beloved ship to be in it's old shape.
impaktor
Posts: 1008
Joined: Fri Dec 20, 2013 9:54 am
Location: Tellus
Contact:

Re: Tech Levels for ship equipment

Post by impaktor »

FluffyFreak wrote:It would seem strange to have differing levels of tech' available at stations on the same planet / orbit.
This thought did occur to me. One could have uniform tech level based on parent body. But I agree with nozmajners point. There are regional variations in any city/country in most things here on Earth.
nozmajner wrote:And it would make sense if advanced items like robots or computers wouldn't be available on very low tech-level systems.
Ooh, I was just thinking about the ship equipment. By "wouldn't be available" I assume you mean it has 0t in stock, thus have a high price, thus selling it there would be good business. The alternative, to not have these items on the list at all, would mean you might not be able to sell some commodities at all, which I think is a bit too evil towards the player.
nozmajner wrote:There could be some kind manufacturer and/or faction based differentiation. Like if you have an OPLI ship, then it's easy to find compatible parts on SolFed systems.
I think a first step in this approach, which I'd like to see, is to assign the presence of each ship manufacturer in each faction. This would determine how frequent you saw their ships on sale in each faction, and also add a price increase for ship repairs in factions where the manufacturer of the ship doesn't have any distribution. Maybe in the ship repair shop there would be a text like "Greetings, we are a licensed OPLI and Kaluri service center", and other ships would be more expensive to repair.

You might still see a "foreign" ship for sale in the ship market, since people do travel across faction boundaries. Kind of how most cars in Japan are Toyota, Mitsubishi, Kia?, etc, and in US its Ford, Chrysler, GMC, etc.
Ship prices could also reflect this. You would get peanuts for your OPLI craft on New Hope.
Yeah, so buy back price from ship retailer would be way worse. This would be an indirect way of penalizing switching factions, I like that.

What about sales price when the ship hits the ship market? It could be more expensive if it lacks distribution in the faction. I know if I wanted to buy a Ford Mustang here in Europe, it would cost a lot more then in the US, since it's hardly available here; but I guess that's because demand is higher than supply. If I wanted to buy a shit car (Trabant?, Hindustan Motors?) with no distribution here it might be extra cheap, since it would be difficult to find spare parts. So you would get an incentive to go to faction X (USA) to get your hands on that sweet ship (Ford Mustang) you've sometimes spotted in your home faction ship market, but never had the money to buy.
And there could be specialized workshops on the BBS, offering cheaper services for specific manufacturers.
I guess we would just tweak the "independent" ones we currently have on the BBS then. So never allow "foreign" dealers on the BBS, and have the manufacturer in the title of the advert. Then when you're in a different faction you would actually see a difference in the BBS posts. I like that as well.

Regarding increasing complexity of ship repair, I think the player needs to know that a Xylophis is easy to repair, and that a Malabar demands high expertise and state of the art repair shops. Either when buying the ship, from the ship description / ship sales man, or at the repair shop, since players don't switch ships often enough to notice or reflect on these things, I suspect.

I like the ideas with customizing the ship, a bit more work getting it in place though. Or at least my mind is mostly on the "differentiating factions" part right now.

@FluffyFreak regarding implementation:
Now I'm thinking if this were to be implemented, then we would somehow need to know which manufacturers were available, and which ships they sell, and which faction they're present in. So should factions know which manufacturers are available, or should manufacturers/ships know where they're sold? I think it would make most sense to have this associated with factions and custom system definitions.
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Tech Levels for ship equipment

Post by FluffyFreak »

I am not sure what would be best.
Usually I'd go for whatever is the simplest to implement for the functionality that you have in mind. You can always refactor (rewrite) it later if you discover it's not good enough.

There doesn't need to be a high level manufacturer class/object yet, not enough about them matters. So just identifying them by name, eg: "OPLI", should be enough and then listing them in the faction definition.
There should always be a chance that you'll see any manufacturers ship, so the fact that a ship is listed in a faction just needs to mean it's more likely, and to have the preferential rates/costs/maintenance etc.

All good ideas though :)
impaktor
Posts: 1008
Joined: Fri Dec 20, 2013 9:54 am
Location: Tellus
Contact:

Re: Tech Levels for ship equipment

Post by impaktor »

(Note date: +1y later)

Hey, I've resurrected the tech_level branch (implemented what I discussed in the first post of this thread), and it's almost done. At the moment I've made both src/SpaceStation.cpp and libs/SpaceStation.lua set the "tech_level", because I couldn't decide which way to go, so now I need to decide which to keep and which to throw away.

Either way, we need tech_level exposed both in Lua (for Equipment) and C++ (for setting tech_level in custom system (which I'm not doing for my initial pull request)).

Thus I have one question for FluffyFreak: can variables set in libs/SpaceStation.lua (like "tech_level"), be accessed from outside a system? Specifically, say we want to see the tech levels of all space stations in a system from the star map/F2, does it matter then?
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Tech Levels for ship equipment

Post by FluffyFreak »

Short answer, I do not know.
Also how do you mean "outside a system"? Do you mean trying to read Lua data from C++ about a space station that hasn't been created yet or something else?

Sorry my brains gone on strike today :)
impaktor
Posts: 1008
Joined: Fri Dec 20, 2013 9:54 am
Location: Tellus
Contact:

Re: Tech Levels for ship equipment

Post by impaktor »

Do you mean trying to read Lua data from C++ about a space station that hasn't been created yet
Yes. I really don't know much about the whole universe generation part, but I assume this information can be gotten somehow. We already know the names of the starbases from the star map, but that's independent of SpaceStation.lua.

I've decided that is a later concern. For now, I'm implementing it all in Lua, and if we need it in C++ that can be exported/moved there when needed.

(Ill hope to have a first initial PR ready in a few days for this.)
Post Reply