From 5f0fce4191309e9526b7109a0d87c092ce6a4193 Mon Sep 17 00:00:00 2001 From: jacopo grandi Date: Thu, 18 Feb 2021 14:14:23 +0100 Subject: main --- design/components.txt | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++ design/design.txt | 58 ++++++++++++++++++++++ design/notes.txt | 79 ++++++++++++++++++++++++++++++ 3 files changed, 267 insertions(+) create mode 100644 design/components.txt create mode 100644 design/design.txt create mode 100644 design/notes.txt (limited to 'design') diff --git a/design/components.txt b/design/components.txt new file mode 100644 index 0000000..650da5a --- /dev/null +++ b/design/components.txt @@ -0,0 +1,130 @@ +components have levels (maxelevel field, log stats or exp stats or logistic stats?) + +brain: (bonus augments slots only for brain augs) +state machine +weak supervised learner +strong supervised learner +weak self learner +strong self learner +general ai + +.chassis: (slots for weapon, battery, armor, augments), max weight, *hp +light two legged bot (1, 0, 1), 20 +heavy two legged bot (1, 1, 3), 45 +light four legged bot (2, 1, 2), 50 +heavy four legged bot (2, 2, 5), 150 +light six legged bot (2, 2, 3), 210 +heavy six legged bot (2, 4, 6), 300 +light buggy (1, 1, 1), 50 +buggy (2, 2, 2), 150 +light wheeled vehicle (1, 0, 2), 60 +medium wheeled vehicle (2, 2, 3), 200 +heavy wheeled vehicle (2, 4, 4), 270 +light tank (1, 3, 2), 300 +medium tank (1, 4, 4), 400 +heavy tank (2, 5, 5), 450 +super heavy tank (3, 6, 6), 500 +hovercraft (2, 0, 3), 40 +jet floater (1, 0, 2), 30 +one wheeler (1, 0, 4), 15 +armored crawler (1, 4, 2), 200 +motorcycle bot (1, 1, 1), 30 + +.batteries: weight +small alkaline pack (not rech), 3 +big alkaline pack (not rech), 10 +small lithium pack, 5 +big lithium pack, 15 +lead battery, 20 +small molten salt battery (military use), 40 +big molten salt battery (military use), 70 +atomic battery (not rech), 150 + +.weapons: (type), weight, damage, range, cooldown, knockback, aoe +smg (pierce), 10 +machinegun (pierce), 25 +heavy machinegun (pierce), 40 +semi autocannon (pierce), 70 +autocannon (pierce), 100 +high velocity cannon (pierce), 120 +scrap gun (spread), 5 +burst cannon (spread), 15 +heavy burst cannon (spread), 30 +maul (impact), 200 +slam (impact), 0 +warhammer (impact), 40 +rocket (explosive), 60 +rocket swarm (explosive), 120 +tactical rocket (explosive), 160 +nuclear rocket (explosive), 200 +light laser (laser), 20 +combined light laser (laser), 50 +heavy laser (laser), 130 +combined heavy laser (laser), 300 +plasma cannon (fusion), 80 +plasma autocannon (fusion), 170 +plasma artillery (fusion), 200 +fusion blade (fusion), 15 +fusion lance (fusion), 50 +light railgun (impact), 50 +heavy railgun (impact), 190 +supercharged railgun (impact), 240 +discharge beam (battery dmg), 40 +haywire beam (battery dmg and damage), 50 +stun beam (disables target), 80 +amplified haywire beam, 120 +amplified discharge impulse (aoe on target), 150 +amplified stun beam, 200 +ion cannon (reduces fusion and laser armor), 75 +heavy ion cannon (reduces fusion and laser armor), 150 +body explosives (explosive), 5 + +.armor: +metal plating (pierce and spread armor), 50 +heavy metal plating (pierce, spread and impact armor), 80 +reflective plating (laser armor), 40 +heat resistent plating (fusion armor), 50 +padding (spread and impact armor), 20 +reactive armor (explosive armor), 75 +energy shields (overall armor but kinetic), 25 +composite armor (pierce, spread and impact armor), 30 +plastic armor (pierce armor), 10 +sloped armor (pierce, spread armor), 45 +charged armor (explosive armor), 100 + +augments: +charged ammo (% emp damage) +extra radiator (better fusion armor), 10 +priority module (attacks the most costly), 2 +communication array (improves armor of adjacent units), 5 +long range targeting (better range), 1 +fast target acquisition (better cooldown), 3 +overcharger (better laser damage, more battery use), 10 +focus lens (better laser damage), 3 +amplifier (better fusion and laser damage), 30 +shrapnel (better explosive damage), 5 +reloader (better cooldown), 40 +antijammer (stun resistance %), 5 +fusion ammo (% damage is fusion), 10 +stability module (if bot, faster), 20 +torque boost (if wheeled vehicle or tank, +speed), 50 +weight stripping (additional weight +base%10, less hp), 0 +barebone gadgets (additional weight +base%15, less damage), 0 + +--engines (actuators): +servos, 5 +brushless, 10 +hydraulics, 30 +diesel engine (vehicles), 60 +hydrogen engine (vehicles), 100 + +--powergens: +small diesel engine, 20 +medium diesel engine, 50 +big diesel engine, 120 +small hydrogen engine, 2 +medium hydrogen engine, 25 +big hydrogen engine, 60 +solar panels, 10 +nuclear power core, 100 +critical nuclear power core, 200 \ No newline at end of file diff --git a/design/design.txt b/design/design.txt new file mode 100644 index 0000000..b4ee2fc --- /dev/null +++ b/design/design.txt @@ -0,0 +1,58 @@ +descript: arena clone + autochess + +turn: move+attack + + +unit design space: +dps ranged +dps melee +tanks +knockback +snipers +aoe +healers +slowers +stunners +kamikazes +attrition (battery damage) +commanders + + +units composition: +component robots, they are made of components +basic bot: brain, chassis, weapon, batteries. +.brain +.chassis + .locomotion + --motors (what are they needed for? actuators, meeeeh) meeeeeeeh + weapons slots + battery slots + augments slots + armor slots +.batteries +.powergens +.armor (set of floats for every damage type) +.weapons +.augments (sensors, ai enhancers (priority targeting, tactics)) + + +units stats: +damage (float) +damage type + pierce bullet + impact + spread + explosive + laser + fusion + emp +armor (set of floats derived from chassis and armor slots and augments) +reload (turns in between shots) +speed (turn in between movement) + + +further expansion: +roguelike (1-3 hrs runs, build an army along the way and fight 50 times to win) +rpg (5-30 hrs, long game with map and npcs a story and whatnot) +long rogue (1-10 hrs, open ended roguelike, infinite battles, map) +^ those but multiplayer (yikes for devtime but nice for lols) up to 8 ppl tcp diff --git a/design/notes.txt b/design/notes.txt new file mode 100644 index 0000000..bace25c --- /dev/null +++ b/design/notes.txt @@ -0,0 +1,79 @@ +tasks: (commit number) + +[x] implement rm unit (issued on 6, done on 6) +[x] implement armor calculation (issued on 6, done on 6) +[x] implement augment calculations (issued on 6, done on 6) +[x] implement augment hud view (issued on 6, done on 6) +[ ] implement sound (issued on 6) +[ ] implement stats hud view (issued on 6) +[ ] implement battery calculation (issued on 6) +[ ] implement brain behaviour (issued on 6) +[ ] implement component levels (issued on 6) +[ ] implement persistent settings (issued on 6) +[ ] implement net hud and minilobby (issued on 6) +[ ] implement army hud view (issued on 6) +[ ] implement cost function (issued on 6) +[ ] implement lobby cost constraints (issued on 6) +[ ] implement edit unit directly (issued on 6) +[ ] implement naming template and army (issued on 6) +[ ] implement move animation (issued on 6) +[ ] implement fire animation (issued on 6) +[ ] implement explosions (issued on 6) +[ ] design 3d units (issued on 6) +[ ] design 3d map tiles (issued on 6) +[ ] implement 3d units (issued on 6) +[ ] design component sprites (issued on 6) + + +bugs: + +[ ] symmetric integration (found on 6) + (on army movement and fire, equal armies should fair equally) + + +testing: + +[ ] armor calculations (issued on 6) + + +balance: + +[ ] balance components (issued on 6) + + +view from 6 to the end: + game is make templates, assemble for army, fight other army + multiplayer up to 2 ppl + armies, templates and settings are persistent + + + +details: + +implement rm unit: -> done, paper note solution + +implement armor calculation: + consider bonuses for damage reduction + aggregate them and spit out a percentage + editor remove units funct to make it possible to have a test case + army has to rebuild grid ref on load +-> done, barely tested + +implement augment calculation: + there are a lot of bonuses to keep track. do one at a time. + ok add_armor as a malus % + ok add_damage (only if same damage type weapon) as a bonus % + ok add_range as a fixed sum + ok add_cooldown + ok add_hp + ok add_speed +-> done, not tested + +implement stats hud view: +? stats have to include individual weapon cooldowns and damage, what to do + either put all as lines in stats (clean, but ugly) + or modify the components directly (messy) +! put them in stats later + +implement sound: + partially done, need sound design \ No newline at end of file -- cgit v1.2.3-54-g00ecf