Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Decoy Badger
May 16, 2009
The infodump in the OP was very intimidating to me. Also it's like a puzzle game but with a lot of RNG thrown in which honestly doesn't sound like a good game design decision since it effectively punishes meticulous min-maxing. But if you want someone who will definitely build suboptimally and sometimes screw things up I can throw in! Watching the first round helped a lot, I think if you had some kind of tutorial mission or run-through it would have helped a lot with participation.

I am Eloi Wusk of Spacey. A maverick billionaire who made his fortune in the 1980's installing payday loan storefronts in redlined neighbourhoods, he's turned his focus to hurling that fortune into space. And accusing people of being pedophiles in his monthly Playboy column. But mostly the former. His ultimate goal is to make a space station shaped like a giant robot version of himself, which will then transform and fly to Pluto.

Adbot
ADBOT LOVES YOU

Decoy Badger
May 16, 2009


Spacey is proud to introduce our new space station with Full Self Operation technology! The advanced automation means that there are zero surplus crew needed on board!

Charge 26.5 for both building platforms.

Decoy Badger
May 16, 2009
Revision: Set one building platform to breakthrough research, the other continues to charge 26.5.

Eloi Wusk: "I'm going to keep my cash in the EOS bank for what I do best: Wait to see the best idea someone else has, then buy a copy and claim I invented it!"

I just hacked together the image in GIMP from a screenshot of the manual PDF, it's a lot easier to play spaceship legos than with monospaced code blocks!

Decoy Badger
May 16, 2009
Set both building platforms to breakthrough research. I'm also pretty sure "ore benef" means ore beneficiation AKA isolating the minerals of interest.

Eloi Wusk: "Progress has been slowed by the fully autonomous space arm operator shoving the fully autonomous space arm through the test article. But we will get this dry dock operational by the end of next quarter with the release of Full Self Automation v2.0!"

Decoy Badger
May 16, 2009
Pay off the loan, set one building platform to charge 25, leave the other on breakthrough research.

Eloi Wusk: "We are continuing to debottleneck our Starship Megafactory. Imagine four piles of VC money burning at the edge of a cliff. Research works the same way."

Decoy Badger
May 16, 2009
:lol: I thought breakthrough research gave more like 15-20 a shot. Guess I should've read the first round more carefully!



New additions: Long connector, life B, station power, space telescope. Take out a loan!

Set all modules to commerce mode, charge 27 for each one.

Eloi Wusk: "We are serving humanity by launching the James Weeb Space Telescope. It will make anime 30x more real than the Earth-based equivalents!"

In reality, most space telescopes don't work well with space stations. There's too much vibration and radiation leaking from the rest of the station to get a good viewing platform, especially in infrared and visual bands. There's also the difficulty of pointing when there's a big space station taking up half the visual field. Salyut 6 had two telescopes on it but neither seemed particularly successful.

Decoy Badger
May 16, 2009


New items:
Weather Centre
Weather Centre
Long connector

Charges:
Building platform 1: 27.5
Building platform 2: 27.5
Space telescope: 27.0
Weather Centre 1: 9.0
Weather Centre 2: 10.0

Use the remaining cash to pay down the line of credit.

Maybe the extra idle crew reduced Opex somehow?

Eloi Wusk: "I have listened to complaints from the astronomy community about my glorious Gigastation disrupting viewing sessions. In response, I have graciously upgraded our Gigastation with Weather Centres so we can tell you when it's going to be cloudy and you can whine about something else for once."

Decoy Badger
May 16, 2009
Set them both to 9 then.

I'm realizing that these missions are meant to be a lot bigger than I originally anticipated, between the 32 station per mission limit (?) and the pace of research. I probably would have given up and played Doom instead if I was trying to hotseat this game in the 90s with my friends.

Decoy Badger
May 16, 2009


Now with 100% more remembered LPix logins! I hope the new part highlighting isn't too obnoxious.

New parts:
Life B
Station Power
Pharmaceutics

Put the remaining cash towards the loan.

Charges:
Building platform: 28
Space telescope: 26.5
Weather centre: 8.5
Pharmaceutical: 29

The SD/HLV stands for Shuttle-Derived Heavy Lift Launch Vehicle! It was the latest hotness when this game was being developed.

Decoy Badger
May 16, 2009


New items:
Long connector
Long connector
Building platform
Building platform
Station Power

Charges:
Building platform: 27
Space Telescope: 26
Weather Centre: 8
Pharmaceutics: 31

Eloi Wusk: "The Gigastation is on track to fully automated dry dock production with the help of my latest invention: interchangeable parts to reduce downtime!"

Decoy Badger
May 16, 2009
If the goal is to make someone more competitive versus Fred, we'd probably get more bang for the buck by me loaning money to Berryjon instead! Aggressive M&A strip mining, maybe.

Decoy Badger
May 16, 2009
Didn't know there was a time limit on turns, but I guess there's no real damage from skipping over my last turn.



New items:
Building platform
Pharmaceutics
Long connector
Life B
Station Power
Station Power
Long connector
Building platform
Building platform
Galley Gym

Remaining cash goes to loan.

Charges:
Space telescope: 26
Weather centre: 8
Pharmaceutics: 34
Building platform: All on breakthrough research.

Decoy Badger
May 16, 2009


New items:
Building platform
Building platform
Long connector
Life B
Station Power

Charges:
Building platform: 26
Pharmaceutics: 34
Space Telescope: 26
Weather Centre: 7.8

Remaining cash goes to paying off the loan.

Decoy Badger
May 16, 2009


New items:
Building platform
Station Power
Galley Gym
Pharmaceutics
Long connector

Charges:
Building platform: All on breakthrough research
Space telescope: 26
Weather centre: 7.7
Pharmaceutics: 40

Remaining cash pays off the loan and goes to the bank.

Eloi Wusk: "Folks, this is what we call a suicide burn with a sticky valve. But don't worry about your homes, I've got qualified immunity!"

Decoy Badger
May 16, 2009
My strategy was to make the minimum viable station and research like crazy with minimum overhead to try and get ahead while everyone else focused on the exponential growth->crash research approach. Except my research platforms averaged less than 1 research per unit per turn, which completely wrecked the plan. (Full disclosure: I didn't read the last round in very much detail!) I was expecting more like 10. And demand to saturate much more quickly. Building platforms only started to saturate demand once there were 20+ in the game.

I'm working on a web tool to make designing stations/participation easier, so I'll vote for the shuttle mission to stall for time.

Decoy Badger
May 16, 2009
I'm fine with skipping Shuttle because wow that seems like a pain. I wouldn't mind seeing a Fred vs AI runthrough of it though!

Decoy Badger
May 16, 2009


Command x1
Galley Gym x2
Logistics x1
Pharmaceutics x8
Building platform x5
Weather centre x3
LifeA x1
LifeB x6
Station power x12
Long connector x10
Short connector x1
Shuttle port x1
Communications x2

Charges:
Pharmaceutics: 25
Building platform: 30
Weather centre: 16
Shuttle port: 75
Communications: 18

Eloi Wusk:
"I've invented a super spacecraft that will safely take these colonists to the space hospital! All they need to do is climb into a tube filled with pure oxygen and explosives, then the Spacey Full Self Astrogating system will gently propel them into orbit to the waiting station!"

Decoy Badger
May 16, 2009
How many credits/loan room do I have to work with?

Also, I used comm modules because I ran out of Galleygym!

Decoy Badger
May 16, 2009


That 250 credit license cost is a real buzzkill. Pay off the loan and stash the rest in the bank.

New items:
Weather centre
Pharmaceutics
Galleygym

Charges:
Pharmaceutics: 31
Shuttle Port: 78
Weather Centre: 25
Building platform: 31
Communications: 23

Sneak peek:


I've got the tool to the point where it can be used to drag-and-drop station layouts, hopefully next mission I can share it! It should help get rid of the cross-referencing needed to participate, if that's what's holding people back.

Decoy Badger
May 16, 2009


New items: I cleared the loan last turn to buy the license, but can I take out a loan to start a new station? Previous round indicates yes, so I'm assuming so.
Station license, all new modules are on new station B
Command
Galley gym x2
Logistics
Life B x 5
Long connector x 7
Station power x 6
Weather centre x 14
Pharmaceutics x 4

Charges:
Pharmaceutics: 36
Shuttle Port: 78.5
Weather Centre: 40
Building platform: 32
Communications: 25

Eloi Wusk: "With this new array of hyperspectral weather radars, we will finally be able to solve the most pressing scientific issue of our time: predicting if your commute to downtown LA will need sunglasses."

Decoy Badger fucked around with this message at 18:35 on Jul 4, 2021

Decoy Badger
May 16, 2009
I appreciate that you think I have any strategic impulses here deeper than the Ouija board that's actually running* the show, but you'd be thinking wrong. I can go to 42, because that's the answer.

*Legend says this is how Eloi named his first born child.

Decoy Badger
May 16, 2009
Sorry, please go ahead. I didn't actually notice there was a change to the charges.

Decoy Badger
May 16, 2009
Space station A: No changes.

Space station B:

I may have left a gap just to annoy the perfectionists ITT.

New space station C: (please pay off the current loan prior so that a new station can be built... on credit. Don't know why there is such an odd requirement in the game)


If there isn't enough money, please remove a resource platform and a station power. I wasn't sure what my loan limit was when I stuck everything together!

Charges: (aligned with Fred's)
Pharmaceutics: 46.6
Shuttle Port: 81
Weather Centre: 51.3
Building platform: 39.1
Communications: 25
Resource Platform: 20

Remaining credits (if any) go into the bank.

Eloi Wusk: "Eh? Mars rescue? Why would you want to do that, I haven't even got there!"

Decoy Badger
May 16, 2009
Why do pharmaceutics in space anyways?

We have all these modules but it's interesting to think about just why they were put in the game. I'll start with the pharmaceutics one since it's so central to this mission.

In-game, the pharmaceutics module shows up a lot because it has had a very high market return and has a uniquely useful connector layout.

In the 1980s, medical research was (PDF warning) one of the major justifications for the ISS. The hope was that some special medications could only be produced in a zero-g environment. A crystallization experiment flew on Skylab and a few on the Shuttle and it was hoped that larger advances could be done with longer duration missions and more sophisticated support technology.

There are several reasons for this, but the largest one is that crystal fractionation is much less prevalent in zero-g. When a liquid crystallizes on earth, the density changes (e.g. water ice) which then floats or sinks in the remaining liquid - changing the composition of the remaining liquid. It also results in a jumble of multiple crystals that aren't well-aligned, and can expose floating crystals to atmosphere which may degrade them.

If you are looking to manufacture a special alloy with low-solubility mix-ins, or crystallize a drug candidate from a compound with high purity, gravity can be the enemy. So a space station was considered a better experimental environment. Some problems are still present or magnified, like skin effects, convective flows, or material handling, but the big ones are alleviated.

So what happened?

Ironically, technological progress. Genetic research techniques became astoundingly sophisticated through the development of the ISS. Between the announcement of the ISS to it's launch, the first generation of DNA sequencers was developed. By the time the first crew set foot in the station (the Shuttle still out-massed the ISS at this point) the Human Genome Project had achieved its goal. The ability to manipulate cells has grown to the point where it is far more cost effective to produce drug candidates on Earth than to try and isolate chemicals in space. Increased ability has also expanded the research space, and some modern medicines like monoclonal antibodies started therapeutic use during this interstitial period. The return on research effort for traditional drug candidate isolation waned in comparison to the new research frontier.

Part of it is also the classic capitalist research Catch-22: the societies (especially on a global scale) rich enough to manufacture medicines in space also have enough wealth inequality that not enough sick people can afford to buy those medicines, which prevents people from trying, which would drive cost reduction.

Today, the major space application for pharmaceutics research is still protein crystallization, which allows for very fine examination of some properties of proteins:



That image includes two crystallized viruses, which still blows my mind: this quasi-life form, crystallized. Anyways. Protein crystallization experiments are pretty drat small which makes them cheap enough to stick in orbit. The idea of the mega pharmaceutical research stations that we're launching in this game is laughable in comparison to the actual demand for these experiments. If space drug manufacturing was seriously worthwhile, then maybe we would have seen such stations. But not for the foreseeable future.

It seems like stem cell research also benefits from a zero-g environment, maybe because there's no gravity or less mechanical strain triggering differentiation. But gene manipulation technology is still advancing on Earth, so who knows what will happen in the future?

I don't know poo poo about pharmaceutical research beyond reading a bunch of pop science and biohacking stuff, so the next module I write up will probably be better!

Decoy Badger
May 16, 2009
Ah, sorry, please correct it to this, which should be about 78 more credits:


I'm going to blame the 2nd covid vaccine doseBill Gates' 5g mind control via the Communications module for the screw-up.

Decoy Badger fucked around with this message at 23:07 on Jul 10, 2021

Decoy Badger
May 16, 2009
Station A: Pharmacy, building platform, and shuttle port all switched to Breakthrough research.
Station B: Pharmacy and building platform switched to Breakthrough research.
Station C: Add the modules pictured below. Pharmacy and shuttle port switched to Breakthrough research.


Pay off the new loan, buy a new station license, and construct:
Station D: All modules on Breakthrough research.


Charges:
Weather centre (I always read it as an "E" as well, I internally refer to it as the Ether centre in my head): 35.3 to match Fred.
Resource platform: 27
Communications: 32

Remaining money goes into the bank.

Eloi Wusk: "Were I one of the Martian colonists I would simply choose to not become sick."

Decoy Badger
May 16, 2009
I've completed my station design tool! Or at least given up on adding any other features. Check it out here:

https://nanonuq.github.io/eos-designer/eos-designer.html

It requires Javascript to be enabled.

Try importing and messing around with some of the following stations:

My five-shuttle-port station:
code:
18,18,18,18,18,11,7,7,7,7,7,7,7,7,0,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,3,6,6,2,8,7,;13,18,131,253,178,165,131,291,285,251,259,106,104,22,136,47,168,290,314,318,324,318,315,132,135,51,199,198,286,344,347,222,110,227,18,105;22,222,215,220,24,13,17,15,78,167,133,111,191,156,76,192,195,167,24,41,78,105,129,138,168,162,131,161,192,221,167,227,229,194,136,138;0,-1,-1,-1,-2,0,-1,-1,-1,-1,-2,-2,-2,-3,1,0,0,0,0,0,0,0,0,0,0,2,2,2,4,5,1,1,1,0,0,-3
Illegal shuttle placements:
code:
18,18,18,;110,17,198;189,157,107;-3,-1,-1
Or use it as a weird space dick generator, the sky's the limit!

Decoy Badger
May 16, 2009
Wow, the RNG was very kind to me after the previous round's shellacking.

Stations
A, B, C, D: No changes

New station E:


An exact copy of station D. All applicable modules on this new station are set to breakthrough research.

Charges:
Weather centre: 32
Communications: 32
Resource platform: 33

Eloi Wusk: "Having market problems? The fix is easy: simply just [ARTICLE REDACTED DUE TO SEC SETTLEMENT VIOLATION]!"

Decoy Badger fucked around with this message at 02:20 on Jul 15, 2021

Decoy Badger
May 16, 2009
The real underdog solution here is to hold our space profits hostage with relentless ad campaigns. You do have a fully armed and operational pharma lab.

Decoy Badger
May 16, 2009
I noticed the weather centre undercutting, but it's not like we have a sealed bid process, and you took on the prime mover handicap most other turns. It would get kind of silly to get into some weird rock-paper-scissors done entirely through edits.

Pay off the loan, other credits in the bank.

Station settings:
C, D, E: Set pharmacy modules to commerce mode. No other changes.

Charges:
Pharmaceutics: 35
Weather centre: 16
Communications: 33
Resource platform: 37

Eloi Wusk: "We had so many weather centres that they solved weather, rendering themselves obsolete!"

Decoy Badger
May 16, 2009
Station settings:

A: Set all pharmacy modules and building platforms to commerce mode. Shuttle port stays in breakthrough mode.
B: Set all pharmacy modules and building platforms to commerce mode.
C, D, E: No changes.

New Station F:

Set all space tugs (what an evocative name) to researching enhancements.
Code for station F:
code:
7,3,11,9,7,24,24,6,7,0,7,9,24,24,;81,139,139,138,20,14,7,45,44,46,82,52,78,113;164,169,203,112,167,103,198,104,231,187,257,281,285,284;0,0,-3,-1,0,-1,1,-1,1,1,0,1,1,1
The plan is to slap a propulsion module, station power and space hospital on it next turn, assuming I get the drat research. And the money.

I don't really understand how the cargoliner works. I hope this is valid under the game rules, otherwise do I need to add the other support trusses and space hospital first?

Charges:
Pharmaceutics: 38
Weather centre: 8
Building platform: 36
Communications: 32
Resource platform: 34

Eloi Wusk: "This momentous mission will include the first ever Yesla Roadster launched to Mars in a tug bay! Oh, and there's a space hospital too!"

It's all up to the RNG now. What a tense race!

Decoy Badger fucked around with this message at 17:06 on Jul 17, 2021

Decoy Badger
May 16, 2009
Stations:
Station F additions:

code:
7,3,11,9,7,24,24,6,7,0,7,9,24,24,7,7,30,9,23,23,23,23,23,23,23,23,23,23,23,23,;81,139,139,138,20,14,7,45,44,46,82,52,78,113,202,257,326,135,197,224,259,290,100,74,76,106,198,233,254,283;164,169,203,112,167,103,198,104,231,187,257,281,285,284,172,167,136,260,105,101,104,107,112,105,193,197,193,197,202,204;0,0,-3,-1,0,-1,1,-1,1,1,0,1,1,1,0,0,0,0,-1,-1,-1,-1,-1,-1,-3,-3,-3,-3,-3,-3
That should be about 829 additional spacebux, now get your rear end to Mars!

I'm fine with a tie, just set everything to commerce and click on ahead.

Eloi Wusk: "Now we can finally rescue all those poor space kids trapped in the space cave, all thanks to my brilliant ideas!"

Afterthoughts:
I'm surprised that the Weather Center still was under capacity below even the base charge! I set everything as low as I can to reduce the variability of expected returns - as you can see I squeaked it in with respect to cash. Same thing with research, my shuttle ports averaged 3.32 research per port per turn in breakthrough mode which would have been okay if the weather market didn't collapse. Most of my time last turn was spent figuring out how many space tugs I could afford while still being able to afford everything else.

The tech points thing is interesting, it looks like 7 points for reaching B, 6 for C, 4 for D?

My strategy was pretty simple, after I got the lesson battered into my head last round: Grow large, then go all in on research. Then I learned that you can only build one new station a turn, and the strategy changed to: "Grow large enough that I can build a new station each turn, then go all in on research." Since shuttle ports are the least efficient (per unit area) research producers, I figured that upon ~800 profit each turn with all research running I could build a new shuttle research station each turn without running out of money. Then I could switch the luckiest research modules back to commerce to build the final cargoliner. The weather market collapse put me a turn behind plan, but frankly I had no idea what to expect research-wise.

Decoy Badger fucked around with this message at 21:27 on Jul 17, 2021

Decoy Badger
May 16, 2009
Voyager 2 had just flown by Uranus in 1986, so a lot of the data wasn't fully analyzed yet, but Miranda photo data was reanalyzed in 2016 and determined to have the highest cliffs in the solar system - at 20 km tall, 12 times deeper than the Grand Canyon. Miranda is a pretty geologically crazy place in general, to the point that one (kind of outdated) hypothesis is that it was smashed apart by some monstrous collision, then haphazardly reassembled. The "river beds" are now considered to be coronae - same as found on Mercury, except made of ice.

Decoy Badger
May 16, 2009
If there's one thing this game reinforces, it's that short-term profit/exponential growth is everything. Base charges for modules give you 30%+ growth - enough to double your capital every three turns. With this round having a general bull market, that was cut down to doubling every two turns. Doing anything that slowed down growth - like research - was punished very heavily if it didn't offer a 40%+ rate of return, because in two turns someone else could complete that research in half the time with double the assets and 2/3rds the variance. This also means that the early game is easy to get started: just start by making stations that you think will make money, and worry about the research later.

Anyways, let's do the lunar mission!

Decoy Badger
May 16, 2009
I'll start with the easier one:

Usage vs demand
Cribbing from the dataset Fred posted in the stats thread.

Relative charge = charge multiplier / (demand / 200)
Usage = (-1.44 (relative charge) + 2.44)*100 (in the thread, this would be a * h / d + b = u)

Plot relative charge against usage and you'll instantly see the relationship. It's not absolutely perfect but r^2 = 0.99 which is pretty drat close.

Market prediction
I found the best way to model it is as a time series.

There are a few hidden factors: The 2nd derivative impulse b (0-1.5ish?), 2nd derivative decay factor x (>1, maybe 4-8?), and a binary trigger (0/1).

In most turns, T(n) = T(n-1) * (1 + a), where a is the relative change (change/last turn's value).

So if it went up 10% in turn 1, it will go up 10% in turn 2.

If the binary trigger is activated (and there doesn't seem to be any pattern to why/how this happens, except that it can't be activated less than 4 turns apart):

a is decreased or increased by b, where the sign of b is opposite to the last turn's change. Since a is relative change i.e. first derivative, b is the second derivative.

On the next turn, a is decreased or increased by b/x, which is the new b. Since x>1 (and seems to be in the range of 4-8) this means that b is decaying exponentially. Within 2-4 turns b is effectively back to 0 so a is consistent between turns again, and the market continues steadily moving until the next trigger.

So the actual formula is T(n) = T(n-1) * (1 + a + b(n)), where b(n) = b(n-1)/x.

Oh, and if the trigger is activated twice then b(n) resets to b(0).

This explains why:
- Markets don't crash instantly, they hit a peak and float a bit in transition before descending - that's when a is roughly equal to b
- A rising market and falling market is smooth in both directions
- Rising and falling markets always have a positive second derivative, but transitional markets are negative
- Some markets don't fall but instead rise more slowly - a>2b in this case
- The relative increase isn't mirrored by the relative decrease after a transition.

It's not perfect, it breaks down on very high runs, but it mostly works. I haven't figured out if the decay function is constant for all markets or varies randomly.

Decoy Badger fucked around with this message at 03:19 on Jul 21, 2021

Decoy Badger
May 16, 2009
I went through and collected the round 1 news.

There were 10 predictions about 7 industries, excluding the ambiguous ones.

Of these, three predicted future movement opposite to the last turn trend, but only one was accurate. Four successfully predicted that the market trend would continue which is hardly exciting. Five predictions were contradicting other predictions made in the same or previous turn, but three of them were accurate - which is what you'd expect, as both directions were predicted.

Overall, 8/10 predictions were accurate. However, predicting that a trend will continue is not particularly useful. Only 1/3 contrarian predictions were accurate which is not a good sign.

So the market forecasts are accurate more often than not (80%). However, a simple trend-following prediction would be right 92% of the time (only 8 trend reversals in round 1, of 96 total market changes excluding turn 1), so listening to the news is actually far, far worse than the naive approach.

Decoy Badger
May 16, 2009
Hope it's a fun reason, like you're kayaking at the Olympics or something.

I looked at the module usages and it turns out that:

A) There is a hard demand cap on how much total demand (usage * total commerce modules) there is. Using round 3 as a base, for the weather centres, this was around 30 at the start and ended at 24. For pharmaceutics, this started at around 37 and ended at around 38. So it takes a few dedicated stations, but when usage was tanking we were competing with each other for limited demand with too much supply. Lower charges would not have helped much.

B) I consistently got higher usage numbers than the other two players and I'm pretty sure the reason is that I had weather and pharmaceutics modules scattered on practically every station. I had 5 stations with pharmaceutics and 3 with weather stations; Fred had 1 and 3; Berryjon had 2 and 1. My pharmaceutics usage was +26 over the others, and weather station was +10 and +20 over Fred and Berryjon respectively. Maybe the algorithm that doles out usage gives a minimum amount to each station offering services, then scales it for the number of modules?

So the lesson is that diversity matters in business. Fred's 29-pharma station was a thing of absolute beauty but when the demand cap is hit, it would probably lose in earning potential to two stations with 14 pharma modules each.

I'm going to guess that the hidden demand cap probably follows a similar system to the market. No idea if the news can predict it though. This also indicates that there is an upper limit to how much money can be made in the game, and ultimately to growth - and this limit would probably be hit at around 24 total commerce stations which could saturate every single market. Maybe this is where advertising would come in.

Decoy Badger
May 16, 2009
All the high-level optimization doesn't matter when you can get screwed by the RNG or undiscovered mechanics any time! Like stations randomly exploding!

Seriously, my "market prediction" was simply: "Did I get 100% usage? Yes: Increase price by 2-3; No: Decrease price by 2-3."

The hardest part is getting a station design up, and there's a tool to do that for you without the need for spreadsheets or even uploading screenshots - just post the code.


That being said, I have been doing some exploratory surgery on the game.

Earth Orbit Stations from the ground up

I'm not a professional programmer, and what little I know about it comes from slapping together dumb programs and hacking dumber games. I never owned a C64 and it was developed before I was even born. That being said, the Commodore 64 is an interesting machine.

Coming from a more modern perspective, it's an 8-bit microcontroller with a comically small amount of RAM and memory - the sort of thing that you would find in a cheap children's toy, a musical greeting card or the original Arduino.

The era of wacky computer architecture was largely over at this point and a lot of the design principles embodied in the C64 have survived to the modern day. There's a microcontroller running everything, system RAM to run the program, a dedicated video processor with its own optimized RAM, an audio chip, and a way to process button presses.

Unlike a bare microcontroller or game console, it was clearly built to be a home/hobbyist computer targeted at beginning programmers. Instead of expecting people to deal with simple uC opcodes, there's a Kernal [sic] ROM giving a layer of abstraction and a BASIC ROM giving a relatively high-level layer of abstraction above that. BASIC is pretty, well, basic, without much built-in memory management that is taken as given in newer languages.

As an early personal computer, the C64 did not have any built-in permanent rewritable storage, i.e. what a HDD or SSD would do today - mostly because it was too expensive. Instead, storage was through cassette tape, expansion cartridges, or the 5-1/4" floppy disk (storage capacity: a whopping 360 KB) and associated disk drive. Earth Orbit Stations came on two floppy disks.

Floppy disks are magnetic storage, so to avoid people from overwriting the game I'm assuming that EOS punched the read-only notch onto the first disk. This means that all saved games had to be saved onto a second, writable, disk hot-swapped into the C64.

The program was further split between the main program on side A that would get loaded into RAM, and resources (like each of the mission scenarios) left on side B/save disk and accessed as needed. While a very familiar arrangement to anyone who played games on CD, the disk drive meant that this was also slow as hell. Fred is a saint for putting up with that clunky interface enough to make the LP.

From what Fred's told me, saved games start as a straight copy of the resource disk side which is admirably lazy and should make things easier for us. This also explains why you can't have multiple missions saved, and can't restart missions: the game is modifying its own code as it goes! This self-modifying code can't be re-initialized to the starting settings without a full wipe and reload from the original resource disk. This is the kind of craziness you get up to without a HDD.

We're focused on exploring the game engine, so need to delineate that from the tremendous amount of GUI overhead and the AI designer. As I learned from programming my own station designer, the actual part that does the work is pretty small, making it usable takes up 10x the effort.

Thinking about how I did my designer, each player's stations must be stored in some sort of array that records the station, location, orientation and status of each module. Each player must also have arrays that record their respective commerce charges and other stats. There should also be an array that records the value of each market and the hidden variables like demand cap.

So if I want to figure out how the game engine processes these arrays, I need to find out where the arrays are kept. From there, I can figure out what functions read or manipulate the arrays and how those work.

Since we know that the game copies the resource disk to be a save disk, we can browse a save file and see what pops out. Going through it with a hex editor shows that it has a fairly straightforward layout:

x00000-x04100: Module data - Easy to tell, every module starts with a name.
x04101-x04AFB: Player data - Easy to tell, each player is labeled.
x05A1F-x12B6F: Station data - I guessed it's this because there are 32x4 repetitions (4 players x 32 station limit) of a 144-length array, which is just slightly more than the 11x13 grid squares on the designer.
x26B00-x2A8E0: Mission data, news data, and GUI/collision detection stuff - Easy to tell because there are oodles of text strings. Apparently your station(?) can just randomly explode??

The large amount of whitespace padding each section of the save file makes me suspect that memory is statically allocated, by hand. This should help with taking apart the engine.

At the very end of the save file, this caught my eye:



Doesn't look like much, but there's clearly some kind of spatial pattern to the hex codes if you squint, indicating image data:



If it were a more modern system I'd assume some kind of RGB code, but the C64 had only 16 colours, half a byte of colour space.

Let's start by confirming the image dimensions. The C64 had a 320x200 resolution, but only 160x200 with "full" colour images - each pixel was doubled horizontally. But the size is wrong for a splash screen. Looking at the code, everything lines up best at a multiple of 15 bytes. So that would be 30x119 half-byte colour codes. Realigning it to that configuration, a much more coherent pattern appears. But I'm doubting that it is a full-colour image - a lot of the colour codes make no sense next to each other, and the monotonic increases in value we see wouldn't work when greyscale values are scattered all over the colour table. So I'm going to assume it's a 16-colour greyscale palette, though I have no idea how feasible this was on the C64.

Let's try to display it. This is a simple bitmap, so I'll try to shove it into the .bmp format. I created a 30x119 bitmap with all 16 C64 colours present to ensure the colour table was properly populated. I extracted the C64 data and ran it through a bunch of regex to convert everything to 24-bit RGB, then inserted it into the bmp file. This is what came out:



Neat!

Decoy Badger
May 16, 2009
Ah, you beat me to that last one. I realized that the 15-pixel width was too narrow and checked out what it would be as a black-and-white bitmap instead of greyscale:




Re: Explosions:

"(x) was destroyed as it passed through a meteor shower. There were no survivors"
"(x) has been hit by large meteors and destroyed. Inadequate warning is blamed"
"(x) was hit by orbiting space debris. The impact caused a fire that gutted the station"
"(x) was destroyed by a fire. The cause of the fire is unknown"
"(x) exploded and was destroyed by resulting fire. An investigation is underway"

Some news is still relevant today: "sequels to a 1970's space fantasy movie are being released next month"

Adbot
ADBOT LOVES YOU

Decoy Badger
May 16, 2009
I'm planning on examining the demand cap, market prediction, news and usage calculations.

I'm still teasing things apart, but so far there absolutely is a hard cap on demand - in the scenario I just tested, about 9.72 total usage for Energy. I just can't find (yet) where in the code those values are coming from.

Some parts were trivial - e.g. giving yourself a dozen stations, boatloads of money, or even changing module connector layouts. But the market has some pretty deep roots too. It does seems to be somewhat in line with the predicted model with the form T(n)=T(n-1)*a.

I'm starting to think that the explosion messages were meant to be in the game but were cut prior to release, because nothing references their addresses. Probably because of, well, you know.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply