Friday, July 23, 2021

Game 281: Galactic Trader

Today I'm doing an unplanned post at the recommendation/challenge of fellow blogger The Wargaming Scribe, who often comments here as Narwhal.

Back when I played through Doug Carlston's Galactic Empire on the TRS-80 as a prelude to the early games of Broderbund, I hadn't intended to continue the saga. The initial game was interesting, ambitious given the limitations of 16KB BASIC, and weirdly atmospheric, but Carlston would go on to bigger and better things, and Galactic Trader isn't especially well-regarded. However, after WGS covered it, and recommended I check out the third game, I decided to cover both.

 

I played this one very briefly after covering Galactic Empire and quickly decided it wasn't worth covering, but the chance to compare performances might make this more interesting, and the data-gathering aspect and trade route optimization does speak to me.

Ousted from your role as a military commander in Galactic Empire and marked by imperial assassins, you now roam the galaxy as a freelance trader in pursuit of money, which during times of peace means power - power that you'll want when the revolution happens. You make money buying goods low and selling them high, but you'll need to visit planets to learn what the rates on the goods are before you can do this effectively. It's much like DrugWars, which was, according to Wikipedia, inspired by a 1974 BASIC game called Star Trader, which also influenced Elite.

I don't fancy these odds.

Some of dangers you'll face are:

  • On Galactica, the only world that deals in cash, you risk assassination with each visit.
  • Cargo weighs down your ship and increases fuel expenditure, leaving you stranded in space if you run out.
  • Traders may kill you if you offer them goods that you don't have.
 
I imposed these rules on myself:
  • Difficulty was maximized at level ten.
  • I created the save state as soon as I decided to play in earnest.
  • I get one chance to finish the game. No restarting allowed.
  • My only acceptable uses of save states are so that I can take breaks and resume later, and to undo  serious input errors and accidental breaks.
  • I will log my trips and trades so that I can re-trace my steps should I need to load a save state.
  • The game must be left running and unpaused when entering data or performing related number crunching.
  • I may pause to take blogging-related notes.
 

Because Galactica is the only planet that deals in cash, and since going there can kill you, it makes more sense to me to think of fuel as the galaxy's de facto currency. This viewpoint is further supported by the fact that commodity traders outside of Galactica are slightly cagey about their own exchange rates, but the fuel cartels are up front about their goods-for-fuel rates, and as it turns out, are perfectly accurate predictors for what goods are worth on any given world.

The only time a commodity trader will ever tell you what the goods are worth.
 

I won't comment too much on the interface. It isn't great, and WGS said enough on the subject already, but I still find it an improvement over Galactic Empire. The biggest issue, one carried over from the previous game, is that if you start typing a number (e.g. an offer on goods), the game will automatically submit your input when you stop typing it. This could cause you to really screw yourself by submitting an offer to trade your entire stock of Rhiolans for 173 Hempites when they were actually worth 1,731 of them, and the last "1" didn't register. Less catastrophically but no less annoyingly, It could also mean that when you press Enter to manually commit an input, the game may automatically commit first, and then buffer your Enter keypress and process it on the next query.

Surveying the planet locations
 
My galactic chart:

X Y Z Distance Gravity Fuel/kg
Current 40 48 8 0 3
Galactica 40 48 8 0 5 3
Bok 29 50 8 11.18033989 3 8.590169944
Novena 27 49 8 13.03840481 3 9.519202405
Harkon 26 44 7 14.59451952 3 10.29725976
Zoe 30 35 9 16.43167673 3 11.21583836
Utopia 23 50 6 17.23368794 3 11.61684397
Farside 23 50 14 18.13835715 3 12.06917857
Proyc 34 30 6 19.07878403 3 12.53939201
Twryx 43 29 10 19.33907961 3 12.6695398
Javiny 34 30 15 20.22374842 3 13.11187421
Drassa 2 24 36 5 20.22374842 3 13.11187421
Sparta 52 27 7 24.20743687 3 15.10371844
Moonsweep 20 33 1 25.96150997 3 15.98075499
Alhambra 56 26 4 27.49545417 3 16.74772708
Kgotla 35 19 2 30.03331484 3 18.01665742
Viejo 57 18 7 34.49637662 3 20.24818831
Eventide 6 34 1 37.42993454 3 21.71496727
Ootsi 4 23 6 43.87482194 3 24.93741097
Yang-Tzu 52 5 6 44.68780594 3 25.34390297
Llythll 2 4 10 58.17215829 3 32.08607914
 

WGS noted that the farther away two planets are, the bigger the difference in price will be, and Llythll was the most distant from Galactica. In fact, nothing is particularly close to it. The farthest planet from Llythll is Alhambra.

I visited the local fuel cartel to check the exchange rates here. The interface, as noted already, is unintuitive and inefficient for a methodical playstyle, but I learned that, contrary to WGS's experience on the Apple II version, here you do not need to possess any cargo to merely offer it in trade, which will save me plenty of fuel during my intel-gathering phase. Just offer the goods, take note of how much fuel is offered to you, and be sure to reject the offer, or you'll face the cartel's wrath.

I discovered that the traders will give you fuel at 0.25 units per dollar of whatever the value of the goods you offer are worth, rounded down. Therefore, I'd always offer 4 goods to discern the true fuel value. Traders will sell you fuel at $2 per unit, so it's a better deal to sell your goods at Galactica and buy fuel with cash, but as noted, this isn't really a sustainable gameplay option.

Although I had the Galactican prices, this wasn't enough to tell me which items were expensive and which were cheap. Tenibles were the cheapest item at $13/each, and Feelies the most expensive at $382/each, but I'd really need to visit another world to compare prices.

I bought 309 units of fuel, leaving me with $382, just enough to buy a single Feelie later. It would be embarrassing if I spent all my money on fuel now, leaving me unable to start trading later! A trip to Llythll and back would cost just over half of my fuel, certainly leaving me with enough to make a return trip with some cargo.

I went to Llythll, carrying no cargo, and queried the fuel exchange rates of the goods available. Everything was more expensive here. Especially the rhiolans, which had gone up from $277 to $2582! If Galactican prices were typical of that corner of the galaxy, then the optimal strategy seemed to be to buy rhiolans there, trade them at Llythll for something that might bring a profit at home, trade several of them back for fuel (more on this later), and return home to trade for rhiolans.

Before returning to Galactica, I took a detour to Alhambra to check their prices. Rhiolans were even cheaper here.

My price chart:

Galactica Alhambra Llythll
Tenibles 13 42 38
Silicates 69 4 645
Hempires 16 51 211
Feelies 382 37 702
Microbes 37 22 717
Dopae 24 282 1166
Pylates 53 72 494
Rhiolans 277 19 2582

Lacking any goods to trade here, and unable to spend cash, I returned to Galactica to buy a single rhiolan. Here, the computer informed me that on my next visit, I'd face a 66% chance of assassination. I'd have to make this trip to Galactica my last. From here on, I'd have to barter, so I spent my remaining cash on fuel.


The trip to Llythll left me with only 157 fuel, but a trader here, a Mr. Kanabe, offered me 67 tenibles for my rhiolan. The formula for what deals they'll accept is very simple; divide the total value of what you're offering by the value of a unit of what you want to get and round down to get the highest quantity you can ask for. The deal that they propose to you are always the fairest ones you'd get anyway.

A single tenible could be traded for two rhiolans back on Alhambra, so I traded all of my tenibles but one for fuel. Optimization could come later - for now I needed some reserves to ensure I could make a return trip.

The return with 2 rhiolans left me with only 50 fuel, and a big problem - the "intermediary consortium" declared exclusive trading rights on the Alhambra-Llythll route, and I could not trade them for tenibles as planned. Thankfully, I could still trade with the fuel cartel - I'd be very screwed otherwise - so I traded 1 rhiolan for 645 fuel, and embarked to Ootsi, the closest planet.

Here, my remaining rhiolan became 272 tenibles, and once again I traded all but one back for fuel. I took it to Viejo, the next-farthest planet from Llythll, where I was able to get 7 rhiolans! Bringing those back to Llythll, they fetched 475 tenibles.

Now, I had a problem that required math. Taking 475 tenibles back to Viejo would need 15,035 units of fuel, and I only had 158, which wasn't even enough to return without the cargo. I'd have to trade some of this for fuel, but how much? The more you sell, the less fuel you need.

Fuel consumption for a trip is determined by this formula:
(GravityFactor + Distance/2)*(CargoMass + ShipMass)

GravityFactor is "3" on every planet I had visited except for Galactica, which I would never visit again, and ShipMass is 10.
 
Substituting these values, and adding a variable "CargoSold," the formula becomes:
(3+ Distance/2) * (CargoMass - CargoSold + 10)
 
The amount of fuel available could be determined by this formula:
Fuel + CargoSold*CargoValue

As this amount must be greater than the fuel consumed, we get the inequality:
Fuel + CargoSold*CargoValue > (3 + Distance/2) * (CargoMass - CargoSold + 10)
 
Expressed in terms of CargoSold:
CargoSold > (3*CargoMass + 30 + (Distance*CargoMass/2) + 5*Distance - Fuel)/(CargoValue + 3 + (Distance/2))
 

After plugging in the values, and checking very carefully to ensure my math was right and rounding up distance values to err on the side of caution, I found I'd have to trade 369 of my tenibles for 3,505 fuel, for a total of 3,663. The trip to Viejo with the remaining 106 units would take 3,596. I sold 372, rounding up to a multiple of 4, to get the most fuel per tenible possible, and embarked to Viejo.

Using this formula again at Viejo, I converted 103 tenibles to 43 rhiolans plus the needed 1,536 fuel, and brought those back to Llythll, where I was once again truck-blocked by the consortium. So I traded 4 for enough fuel to get me to Ootsi, where the 39 rhiolans got me 693 tenibles plus  over 17,000 fuel. From there I went to Sparta, the next-furthest planet from Llythll, where I traded for 148 rhiolans plus 4,488 fuel back to Llythll.

One more round trip to Sparta and back, and I was hauling 515 rhiolans and 15,144 fuel to Llythll. And the consortium decided that was enough and blocked me once again, forcing another detour. Trading 12 for fuel, I went back to Ootsi, where the consortium had yet another exclusivity deal, and I had to trade another 8 to make it to Eventide. There I converted what I had left to 7624 tenibles plus over 228,000 fuel, took those to Viejo where I got 3,863 rhiolans, plus over 112,000 fuel to carry them all. Just how is my ship, which weighs the same as ten cargo units, supposed to be holding all this?

I wanted to take these back to Llythll, but stopped at Eventide on the way to avoid trespassing on the consortium's Viejo-Llylthll route. There, I reached my time limit, and the game suddenly ended.


The asset value here is exactly equal to 8 credits per rhiolan, which is what they were worth on Viejo where I got them. At Galactica rates, they'd be worth a million.

 

I replayed my original save game, using save states liberally this time. I got all of the prices ahead of time, planned my routes, and quickloaded to avoid time-wasting embargoes. I eventually found that this version of the game is unwinnable.

Say yes and the game crashes, unable to inventory 3 million silicates. Say no and it freezes, unable to calculate how many tenibles your cargo is worth.
 

Whenever you own more than a million of any commodity, it crashes, and even if you avoid this, the game starts behaving very strangely when attempting to sell quantities close to the limit, sometimes freezing, sometimes refusing to process input, and very frequently displaying numbers in E notation. Even if you could somehow acquire 999,999 of every asset, it would be worth only about 6.5 billion on this galaxy's Llythll, and you can only get cash on Galactica so many times (and we're talking hundreds of millions per trip at most).

GAB rating: Bad. Galactic Trader is a lot simpler than Galactic Empire, less interesting for it, and overall feels slapped together. The interface is a confusing mess, the mechanics unintuitive, and playing the way it seems to encourage will get you nowhere. If you don't like poring over spreadsheets like an accountant working overtime then there's no joy to be had here at all, and even I didn't have that much fun with it. The game-ruining bugs were the final nails in the coffin.

 

Here's my activity log from the "real" game, played without aforehand knowledge of prices or embargoes. Pink rows represent exploration, green rows commodity trade, and yellow rows are detours forced by the consortium.

Arrival year Planet Fuel Sold Bought Fuel Cargo Galactican worth Departure year Fuel spent
1 Galactica 1,000 $618 309 fuel 1,309 $382 $382 15 335
73 Llythll 974

974 $382 $382 76 312
134 Alhambra 662

662 $382 $382 137 166
164 Galactica 496 $382 49 fuel
1 rhiolan
545 1 rhiolan $277 168 388
227 Llythll 157 1 rhiolan 627 fuel
1 tenible
784 1 tenible $13 228 357
287 Alhambra 427 1 tenible 2 rhiolans 427 2 rhiolans $554 287 377
345 Llythll 50 1 rhiolan 645 fuel 695 1 rhiolan $277 347 149
366 Ootsi 546 1 rhiolan 474 fuel
1 tenible
1,020 1 tenible $13 386 333
421 Viejo 687 1 tenible 7 rhiolans 687 7 rhiolans $1,939 424 529
480 Llythll 158 7 rhiolans 3.5k fuel
103 tenibles
3,692 103 tenibles $1,339 490 3,506
546 Viejo 186 103 tenibles 1.5k fuel
43 rhiolans
1,722 43 rhiolans $11,911 548 1,637
604 Llythll 85 4 rhiolans 2.5k fuel 2,667 39 rhiolans $10,804 605 625
624 Ootsi 2,042 39 rhiolans 17k fuel
693 tenibles
19,402 693 tenibles $9,009 628 18,979
676 Sparta 423 693 tenibles 4.4k fuel
148 rhiolans
4,911 148 rhiolans $40,996 680 4,805
735 Llythll 106 148 rhiolans 73k fuel
2.3k tenibles
73,294 2,352 tenibles $30,576 736 72,026
792 Sparta 1,268 2.3k tenibles 15k fuel
515 rhiolans
16,412 515 rhiolans $142,655 793 16,023
848 Llythll 389 12 rhiolans 7.7k fuel 8,135 503 rhiolans $139,331 850 6,418
869 Ootsi 1,717 8 rhiolans 3.8k fuel 5,527 495 rhiolans $137,115 871 4,552
883 Eventide 975 495 rhiolans 228k fuel
7.6k tenibles
229,095 7,624 tenibles $99,112 888 225,206
941 Viejo 3,889 7.6k tenibles 112k fuel
3.8k rhiolans
116,241 3,863 rhiolans $1,070,051 945 114,257
998 Eventide 1,984


3,863 rhiolans $1,070,051

6 comments:

  1. Well, you can see the result of my own attempt on the same seed here :

    https://zeitgame.net/forum/topic/galactic-trader-benchmark-with-the-data-driven-gamer#postid-198

    No spoiler :)

    ReplyDelete
  2. A small note now that can read in details your account: On Apple IIn Trade Embargos triggers if you take twice the same route and sell stuff to the trader (or maybe talk to him ?). From your account, it look likes on TRS-80 even if you don't sell anything you get Trade Embargos when you do the same route twice.

    ReplyDelete
    Replies
    1. Congrats on the win! Looks like you saved a lot of time by not bothering with the initial discovery phase.

      The embargo logic does seem to be that it triggers the third time you take a trip between two planets, but also that it doesn't care about the direction. I went from Llythll to Alhambra twice, but my first trip in the reverse forced a detour. Likewise, Sparta-Llythll-Sparta-Lythll was enough to get the consortium's attention.

      Delete
  3. I think I deciphered what difficulty does.

    First, subtract the difficulty chosen from 11 to get the actual variable. The value corresponding to the easiest level is 10, the value corresponding to the hardest is 10.

    This value does two things. First, it determines price variance, which follows this formula:
    T*(1.1+SO/150)*e^(D)

    T is a value from 1-8 representing the good. Tenibles are 1, Rhiolans are 8.
    SO is the difficulty factor.
    D is some function of distance from the source of the good.
    Final value will never exceed $32,000, and on a quick test with difficulty 1 I found rhiolans to be worth over $24,000 on a remote world. So maybe it's possible to win after all, but only on easier difficulties.

    The other thing this value does is determine the probability of being assassinated, which is:
    1/(2 + SO/2 - [Visits])

    Maximizing the difficulty means that on your third visit, the probability is negative and the game crashes. Great playtesting, Doug.

    ReplyDelete
    Replies
    1. For the sake of completeness I "beat" Galactic Trader on TRS-80. On the easiest difficulty.

      Getting enough cargo wasn't a problem. Rhiolans were worth $32,000 on Novena, and could be bought for $43 on Novena and $9 on Kgotla. Pylates there were worth thousands. It didn't take me long at all to amass just under a million rhiolans, of which I could transport 685,000 to Novena, where they'd be worth over 20 billion.

      Trading them however was a problem. Any attempt to sell more than half would crash or lock up the game, and like I mentioned, even typing in values is a problem. Selling on Galactica wouldn't do; rates weren't nearly good enough for any type of cargo.

      Turns out, all I had to do was trade one of them on Novena. Then I traded about 800 more for fuel to jump to the closest planet. The game didn't recognize my victory, but when I manually quit, it told me my asset value was 2.1928E+10 credits, or about 22 billion. I'm calling that a win.

      Delete
    2. Thank you. Interesting. It may be the game for which the manual is the most different from the reality of the game :).

      Delete