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

Shatterloop

ECS Notes

Posted August 27, 2022 by Xhin

Turning the somewhat disorganized ECS brainstorming post into full Notes since it's the next major project.

Page 1

Engine

  • Loop Size / New Engine / Engine Reintegration
  • NPC Integration
  • Town Integration

    Types

    -=-=-=-= No Notes Yet Below -=-=-=-=

  • Farms
  • Industry Stations
  • Singular Shops
  • Research Outposts
  • Magic Shrines (inc ruins brainstorming post on it)
  • Adventurer Outposts
  • Memory Facilities
  • Homesteads
  • Preserves
  • Abandoned Towns
  • Lakes
  • Mount Races
  • Bomb Ranges
  • Museums
  • Burial Sites
  • Leisure Forts
  • VR Facilities
  • Parks
  • Decplicopolises
  • Mines
  • Abandoned Mines
  • Labyrinths
  • Ruins
  • Deep Castles

  • There are 3 Replies


    Loop Size

  • The base loop size should be bigger, maybe 4x bigger for now to be able to squeeze bigger content in (and larger gaps between them).

    New Engine

  • There needs to be a new structures building engine. Take the best of the civilization and ruins systems and combine them into a general format. Including staircasing, which seems like it would be particularly useful for making "rivers". Also IIRC mana cracks are on this system as well, and some other random stuff -- look into all instances of make{} and shape{}.

  • The functions can variously: render shapes directly, return a list of coords, or compile coords internally somewhere and render them all at once.

  • Make sure all shapes and shape XORing/etc work as well -- the new (relatively) polar{} framework will be helpful here.

    Reintegration

    For any step here, feel free to create additional layers -- that'll help a lot in the future.

  • Reintegrate this system back into the creation of towns.

  • Reintegrate into dungeons. The active_ruin{} class would be a layer on top of this rather than something that both does the rendering and logic.

  • Reintegrate into base building -- both the highlighting functions and the placement should be able to use the full toolkit, which would also open up additional options for shape placement.

  • August 27, 2022
    Xhin
    Sky's the limit

    NPC Integration

    Extra NPCs should be generated on province load and assigned to various ECS, which can then place them wherever it wants to. These NPCs can't be experts and their location can't be gleaned through talking (for now) -- that system is going to undergo a major rewrite so it's kinda irrelevant.

    Some more specific gotchas:

  • Farms -- Farm NPCs are all in the same family, and it's based around a Guild head.

  • Adventurer Outpost -- Adventurers should occasionally pop in here randomly and you'll probably never see them again -- they're named but largely irrelevant to various systems. There should be several hundred Adventurers in a province at a time -- they don't have to be generated on province load, a number can just be pulled wherever they're needed and used to seed their info.

  • Abandoned towns, Lakes, Burial Sites -- No NPCs

  • Leisure Forts/VR Facilities/Parks -- Ideally the composition of the people in these changes over time as various Guild members go in here on their requisite breaks.

  • Decplicopolis -- Rarely contains 1-4 magic users.

  • Abandoned Mines, Labyrinths, Ruins, Deep Castles -- No NPCs

  • August 27, 2022
    Xhin
    Sky's the limit

    Town Integration

  • Anything without NPCs won't have town integration -- those locations will have to be found through other means.

  • I guess for now, populated ECS are linked to the towns that are closest to them. This will need a better system (particularly a guild-operated one), but it'll work for now. For now, ECS are assigned to one of the shops in the town, and the shopkeeper provides access to them. The ECS itself will also have a conduit someewhere that allows you to warp back to that town, or maybe multiple nearest towns.

  • August 27, 2022
    Xhin
    Sky's the limit

    Reply to: ECS Notes

    Username
    Password