auroraclone/ecs notes 1.txt
2019-10-23 00:16:29 -07:00

152 lines
4.1 KiB
Plaintext

Systems: routine that needs to be regularly called
Collections: lists of components that go together to make an entity
Components: data pieces
Entities: objects (label for a specific group of components)
Systems
- orbit: update positions? no because we aren't storing positions
these only need to be checked for individual calculations or display
- render: what are we focused on right now, data can be cached here
- 'structure view': looks at factory, mine, etc; multiple components
Components
- orbit: parent_id, radius, offset
- L4/L5 will just be their own entities with orbit data matching
- position: system, x, y (ships not in orbit)
- body: mass, radius
- factory: capacity, pollution?
- mine: capacity, pollution?
-
body = {
hydrosphere: {} -- pollutants, volume % (relative to planet surface)
atmosphere: {} -- volume, pressure, contents
-- manufactoring, refining, etc -> introduces pollutants into hydrosphere and atmosphere
populations: {
{
resources: {
fuel: #
reactives: # -- jump drives, engines, research, life support
radioactives: # -- fuel, heavy armor, kinetic weapons, sensors
alloys: # -- structure
crystals: # -- shields, stealth, ecm/eccm, energy weapons
silicates: # -- electronics, capacitors, energy weapons
-- halogens: #
}
structures: {
'fuel refinery': #
-- 'type-strength OR type-value': #
-- {type: 'name', value: #, cost: #, etc} ? -- actual list
}
}
}
minerals: ?
}
modules = {
factory: {
surface: true
capacity: 10 -- research ++
pollution: {} -- research --
cost: { -- research --
alloys: 20
silicates: 2
}
}
mine: {
surface: true
capacity: 10 -- research ++
pollution: {} -- research --
cost: { -- research ==
alloys: 40
silicates: 6
reactives: 2
}
}
'fuel refinery': {
surface: true
-- orbit: true -- research
capacity: 100 -- research ++
pollution: {} -- research --
cost: { -- research --
alloys: 120
reactives: 20
crystals: 10
}
}
'mass driver': {
surface: true
capacity: 2000 -- research ++
pollution: {} -- research --
cost: { -- research --
alloys: 250
reactives: 120
radioactives: 20
silicates: 10
}
}
shipyard: {
orbit: true
capacity: 1000
cost: { -- research --
alloys: 2200
reactives: 180
radioactives: 80
silicates: 200
}
}
-- research tech: shuttle range
-- - salvage facility
-- - orbital hab
-- - hanger
-- - maintenance facility
-- - gas harvester
-- - geo
-- - terraforming
-- - geo survey sensors
-- - infrastructure
-- - sensors
-- - grav survey sensors
-- - em sensors
-- - thermal sensors
-- - active sensors vs passive sensors
-- - all sensors can provide tracking and targeting
-- - bridge
-- - research
-- - chemical/physics/genetic/biology/xenology lab
-- - university
-- - ship
-- - design considerations
-- - deployment time adjusts how much mass is needed per crew
-- - components designate required crew
-- - armor area / structural hull requirements
-- - speed, power use/requirement
-- - build time, load time, mineral requirement
-- - signature (th by engines, em by shielding/equipment)
-- - maintenance life, estimated failure rate
-- - damage allocation
-- - em damage, shock damage
-- - idea: based on volume, min distance before ships collide?
-- - crew quarters
-- - engineering section
-- - main engineering
-- - engines
-- - jump drive
-- - combat drop pods
-- - tractor
-- - cargo
-- - fuel storage
-- - supplies bay
-- - shuttle bay (actually just hangers)
-- - cargo hold
-- - cryogenic transport
-- - power plants
-- - kinetic weapons
-- - launcher
-- - magazine
-- - defense
-- - armor
-- - damage control
}