Role-play trade stations

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    I see these wonderful ships introduced to Community Content as Roleplay ships, and I do! I want to play with them. But how? Well, I can explore them and look at designs and improve my building. But this game needs more.

    Right now, Starmade scratches the itch for 2 of the 4 standard space sandbox game elements: building and fighting. There is a different kind of player out there, waiting for Starmade to satisfy the other 2: trade and exploration

    I would like to see trade stations redesigned, with full landing pads and multiple docking points, to accommodate various roleplay ship styles. These roleplay ships I see have wonderful, but largely unused landing features.

    I would like the trade stations to have a location with a kiosk or multiple "fixers" (astronauts that can offer missions; should be separated into isolated cubicles to reduce the oddness that every last astronaut looks alike). I would like these fixers to offer the player a chance to deliver "cargo" in the form of a logbook which contains the coordinates of a star, a random "cargo" description, and a reward (maybe a few random credits).

    I want the game to automatically scan any of these types of logbooks in the player inventory when they land at a trade station or talk to a "receiving" fixer or kiosk, acknowledge the completion of the "mission", remove the mission logbook, and give the player whatever reward was specified, with a pop-up notification that something happened. This would simulate a common trade mission.

    The game would simply determine if the logbook has the coordinates for the "local" star, and if so, presto, mission accomplished. That way, you don't have to go find a very specific station in a very specific sector. It's more flexible, which is more fun for the player. And most everything except actually accepting the mission and flying from mission source to destination is automated.

    Players will be able to pick and choose which star-system missions they accept, so they can stay in the same general neighborhood, or they can choose missions that will take them farther and farther out into space. (Paid Exploration!)

    It could be a very simple system at first. It would simply take the current star system, determine the local star sector, and then find a random star two solar systems away to determine the mission "destination". Then it would draw from some new XML files that would contain various adjectives, colors, and other words, in order to create a random "cargo" description. Finally, it would pick a random number from 100 to 1000 as a credit reward. (This system can be expanded later for other kinds of rewards, including Faction Points and Blocks, but at first, credit rewards are simple.)

    By setting the destination to a star sector, you avoid such sticky problems as navigation confusion, forcing a player to cross a part of space that they have no interest in exploring, forcing the game to spawn a certain entity type in a certain sector instead of the normal random generation, etc.

    The vanilla game can start out with basic words, like standard colors (blue, green, purple, etc.) and basic adjectives (large, small, shiny, dull, crystaline, etc.) and crazy cargo names (sommat, cottan, redu, cyanagan, murtle, etc. ) , and can randomly mix up word lists. Players can add to the lists, and the naming algorithm can be improved later.

    Example Pseudocode:

    wordcount = 1 (start with just the cargo name)
    colorlist = readxml(colorlist.xml)
    adjectivelist = readxml(adjectives.xml)
    cargonames = readxml(cargoes.xml)
    cargoname = first(randomizelist(cargonames))

    if (coinflip) = 1 then pickrandom(colorlist), wordcount + 1, colorword = first(randomizelist(colorlist)

    adjectivecount = diceroll(3,1) - 1, wordcount + adjectivecount

    if adjectivecount = 1, adjectivewords = first(randomizelist(adjectivelist))
    elseif adjectivecount = 2, adjectivewords = firsttwo(randomizelist(adjectivelist))

    wordlist = concatlist(adjectivewords,colorword)

    cargodescription = join(wordlist, ", ") & " " & cargoname

    creditreward = randomint(100,1000)