Engines NIFE Roadmap Shatterloop Game Projects
Deprecated Saepes Mundi Other Projects Blog

Deprecated

Merchant

Posted March 8, 2023 by Xhin



There are 6 Replies


Basic Stuff

  • I'm largely making this game for myself so the scope will be verrrry small.

  • Text-based, using that engine.

  • As the name suggests, a trading game. Prices are set by settlement location.

  • The actual items traded uses the new language generator.

  • The settlements are linked together in various ways, also there should be an infinite amount of them. I'm not sure how this works yet. Eldritch Library's definitely been helpful in scoping something like this out. The links cost money, so trade routes have an additional layer of complexity.

  • Settlements themselves contain massive amounts of trade locations and potential items in whatever language is spoken there. Possibly fractal navigation. Again, eldritch library has been helpful here and I want this project to be gigantic in scale.

  • Languages should probably be scattered but chunked so maybe 3 per box so things aren't *super* confusing.

  • The language dictates the price of items, what's available and probably the structure of the city. This makes the most sense overall.

  • Since you need some amount of starting capital, you should be able to do very basic local courier stuff.

  • All of this combined should make this project be a good stepping stone between eldritch library and courier.

  • March 8, 2023
    Xhin
    Sky's the limit

    Map Scales

    The map is infinite and is broken up into:

  • A grid of Provinces.

  • Within a province, there are Settlements known as towns, cities or nexuses internally. Basically identical to Shatterloop's system.

  • Settlements are broken up into Districts, which may have multiple layers.

  • At the lowest level, Districts are broken up into Buildings. For sanity these are a single floor high and this is where you buy things for Trading.

  • March 8, 2023
    Xhin
    Sky's the limit

    Province Generation and Connections

  • Each province generates two unique links, which are dirs.moves.all. That means that the province will connect in those directions along Arteries.

  • Provinces are split into 3x3 regions which I'll call Novodes. The center Novode generates a Nexus, and some amount of Cities are generated around the other 8 nodes, depending on Province properties.

  • Each Novode generates some amount of Towns, with those that are within a City Novode or Nexus Novode containing more, but the actual numbers here depending on the Province.

  • All settlements are connected to each other within some specified range (set by the province). These routes are known as Roads.

  • All settlements around the edge of the province are connected to each other via a Shipping Lane.

  • If a town isn't connected to anything, it'll be connected to the closest city or nexus. This route is known as a Freeway.

  • Cities can be connected to proximal cities along a Superhighway. The chance for this depends on the province -- 10-90%

  • Cities are connected to the Nexus. This is known as a Superhighway

  • Nexuses are connected to all adjacent nexuses. This route is known as a Teleport.

  • Arteries will pick the towns (never cities) along the requisite edge that are the farthest out and connect them.

    Transport Pricing

    From least to most expensive:

  • 1. Shipping Lanes
  • 2. Arteries
  • 3. Roads
  • 4. Freeways
  • 5. Superhighways
  • 6. Teleports

    Pricing is based on distance.

  • March 8, 2023
    Xhin
    Sky's the limit

    Districting

    Population

    Settlements have a fixed population size, which is based on the number and types of connections they have:

  • They start at some Base number, say 5.

  • For every Road, multiply by R^1.5.

  • Having shipping lanes multiplies it by a fixed 3.

  • If it's an Artery, multiply it by an additional 3.

  • If it has a Freeway, multiply it by 3.

  • If it has Superhighways, multiply it by S^2. If it has a teleport, instead multiply it by S^3.

    Districting

    Once you have a Population size, Districting happens in the following way:

  • Start with a chunk size equal to the population size.

  • It needs to be at least (number of transports) + 1 as well.

  • As long as the chunk size is greater than N^2, create an N*N grid, where N is some arbitrary fixed number (maybe 10), depends on what my numbers look like after some tests.

  • If a chunk size drops below N, then your final layer (or only if it starts here) is in 1D space instead of 2D space.

  • If it's between the two, make a smaller grid.

    From here I can vary N at each step or introduce "dead zones", which are blank tiles at some layer that interfere with transportation.

    Waypoints and In-settlement Transport

  • At the highest level (ideally a Grid), generate Waypoints for each transport type. These are areas you can go to to actually use the transport systems for money.

  • Transporting around a grid lets you move orth adjacently but you can't move through dead zones. For a steep fee you can go anywhere from anywhere.

  • You can "zoom in" or "zoom out" wherever it makes sense. Zooming into a grid sticks you in a fixed exit node therein, whereas branches you don't have to navigate, you just pick what you want from anywhere else.

  • I don't think in-town transport should cost money or take time, but it might.

  • March 9, 2023
    Xhin
    Sky's the limit

    Products Distribution

    Products are broken up into Categories -- I can essentially just import stuff from Shatterloop amd Fishing Game here. Individual products will be in that category but also have procgen names in their language as adjectives with words in the category as the second word -- like in the Fish category you might get "Zfjajij Shark". There should be a pretty big list here overall.

    Categories get price minimums distributed through them -- it's going to depend heavily on how much content I have available. The actual range should also be distributed, so there's a fixed amount of high-risk vs low-risk categories. Same deal with the buyback stat.

    So the real procgenning here is which categories are valuable in a particular game seed and which are not.

    You can only sell items at the appropriate type of store, which also sells those types of items.

    Each Settlement has 3 Specialties. They are weighted with specialties being 3 and the rest being 1. This dictates the procgenning any particular building will do.

    However, each level of a grid will take some category and multiply its weight by 3, with a preference for those that are highest, so the three specialties are likely, but with bigger cities you might get mostly a non-specialty. The actual preference here is procgen and depends on the grid item seed.

    Provinces also have 5 Specialties -- this dictates the likelihood of settlement specialties, with each of those being weighted 3.

    Trading Mechanics

    Trading is very simple, you just buy the product you want and the quantity you want. There are no limits if you have the Money to spare.

  • You can only buy and sell in the appropriate kind of store.

  • Sale prices are based on the language. Some items will sell for more elsewhere, others will sell for less.

  • Along with the item props is stored some kind of signifier for the language. I guess maybe the location of a province / index that would generate that language since language objects themselves are huge. Anyway, if you try to sell that item in a settlement of that language, you get the buyback rate times the value instead of the actual value. This makes trading a bit more risky.

    Inventory

    Your inventory is shatterloop-like -- you see categories, followed by items, their amt, and their price range.

    Scanning

  • You should be able to use Transport Network interfaces to scan existing or transported-to entities for whatever information you want, the caveat is that it all costs money.

  • For immersion, I could keep local scanning at transport network interfaces and global scanning in "experts" which the TNI could tell you where they are.

    Courier

    The game has an extremely simple Courier-type structure which allows you to earn money for delivering paperwork locally. Basically you can have one quest active at a time, and there's a fixed amount of work available, with buildings variously having work or not (the smaller the settlement, the more likely work is) and a fixed amount of it. Once a quest is done you can't do it again, and once a building is out of work you can't get more.

    Basically though they just tell you to go to a specified building and deliver paperwork, and in return you get money. Since in-town transport doesn't cost money, this is all profit.

    Categories are randomly generated a range of wages they're willing to pay for work -- some are definitely going to be better than others. Settlements may also adjust the rates here so the actual wage range is based on both.

    This should at least lay the foundation for Courier.

  • March 9, 2023
    Xhin
    Sky's the limit

    Multiplayer input

  • Players should be able to manipulate parts of the world via in-game money. Titles, item names and descriptions come immediately to mind, however there should be subtle gameplay manips allowed as well. For enough money, they can buy whole towns or languages.

    I don't want to overcomplicate the scope of this project, but I do want at least something of high potential to be in this engine.

  • April 20, 2023
    Xhin
    Sky's the limit

    Reply to: Merchant

    Username
    Password