I am now at a point where, aside from the obvious need for a new coat of paint, I have completed a rough draft of the “presence” system. This system covers the star system that the player is in, the ability for the player to click around the map to get some info on the system, planets, and jump gates, and to move between systems. It also contains the chat functionality which is of course super important for a game like this. [How do I insert an eye-roll emoji?]
Logically the next step is to deal with the bread and butter of this project, which is for players to be able to dock at a station, browse the commodities, buy commodities, leave and go somewhere else to another station, dock, and sell. But…I feel that there’s a lot that needs to happen before I get to this point, namely:
I need to define what a “ship” is. Is the player the ship, like Elite Dangerous? Is the player a character in the ship, and if the player can’t get out of the ship, does that matter much? A ship has to have properties like fuel (how many times it can jump, which in TradeWars limited the number of moves per day), weapons, armor and shields, and most importantly, cargo space. I want ships to be upgradable, so that system needs to be worked out. We can’t move cargo without cargo bays, and we can’t grow our empire with the same starter cargo capacity.
The idea of “cargo” versus other items is something I never really managed to nail down. Commodities are data elements that can be incremented and decremented in inverse proportion to the player’s wallet, but things like ship parts need to be usable. How do these things represent on the screen? When a player is in space, she’ll need to know what she has in her holds so she can know which stations have what she needs and which will buy what she has. So I need a visual for that.
Layers of Commerce
When a player docks at a station, it’s not just for that hot commerce action. There’ll be other things “to do” in the venue, so I have to at least stub those out so I can slip the commodity trading desk in there and not have to refactor the hell out of it. Renovations in space are costly and dangerous.
Then comes the whammy: How the hell do I represent the commodity market in my current design? I originally thought that the panels that would be visible most of the time would be the ones that the player might need or be interested in seeing most of the time: map, selected element details, chat, the ship status, and cargo. Those systems can be relevant anywhere at any time. Trading commodities, though, is an occasional thing. I could dedicate a panel to “The Market”, but what happens to it when not at the station? If the player closes it, how do I indicate that the panel needs to be focused? Golden Layout can create new panels, but they need to be created somewhere, and I can’t ever guarantee that there’ll be a specific layout that allows me to address a specific panel placement in the code. I could also use a modal popup, which is really the last thing I’d want to do, but it seems like it’s the easiest, least intrusive, most logical approach for a system that’s so transient.
Pigpile of Systems
I really don’t know where to start with this. I COULD start with the commerce market, but not allow the player to buy or sell. I could start with the ship definition, but it would be mostly ephemeral in code. If I start with the ship, I then have to work with the ship through customization and functionality, which leads away from commerce and down other roads like exploration and combat.
I think that maybe starting with the station and its services, and then segueing into the commercial market is the better option. I have some of that started compliments of the star system build-out, and I think it’ll allow for a natural progression into the ship system later.