Skip to content

Latest commit

 

History

History
402 lines (363 loc) · 12.2 KB

TODO.md

File metadata and controls

402 lines (363 loc) · 12.2 KB

Current Project TODO

Short Term Goals

Feb 2021 Update -- Cont. into March

Hitting a fake roadblock with the critter creation for the first playtest. Need to excrete this so I can move on. Main issue was difference in absolute positioning for DOM elements in instance sketch -- need to reference page not canvas?

  • Critter Creation
    • Instance Mode with Page DOM Positioning
    • A) Name, God, Starting Life
    • B) Critter Preview, Color Picker
    • C) Speed/Size, Excretion Rate
    • D) Conduit Targets
    • E) Donations and Sex Sliders
    • F) Cost Tallies and Create Button
    • Go back to eco sketch and click to drop
    • get user info from server (funds)
    • send critter update to server
    • send new conduit targets to server
    • update funds object in server with new targets
    • life in world update on critter life
    • critter donation update
  • Critter Creation pt. 2
    • point buy system
  • Critter misc unessential
    • name crossover and min/max
    • name abuse prevention
    • name mutation
    • face?
    • hunger / food coma?
    • prevent food from having out of bounds coords
    • mutation rate option in creation
    • donation animation
    • mate animation
    • eating animation
    • emoji animation class
    • update mate ring size
    • fix color lerp in offspring
    • change colormode to HSL
    • add a fix to the HSL lerp that blends naturally
    • test no mutation -- something weird happening in crossover
    • fix crossover
    • update critter overlay
    • navigable family tree
    • change foodScale to poopSize and have body size be correlated
    • aggression? family? too much for this version...
    • have minLife/cooldown/percentage correlate in some way? need to prevent viruses?
    • population max limiter
    • total time alive and TOD stats
    • minLife negative bug -- needs constrain, did hacky min for now
    • saturation threshold so hue doesn't lerp if black/white
  • UI misc unessential
    • Scrollable Donation List
    • Collapsable Donation List
    • hide scrollbar
    • hide donations list on menu click and if fundsUpdate
    • no overlap between critter overlay and funds monitor... keep left or hide?
    • max height of donation dropdown select
    • filter donation select by category...
    • Donation Div Class
    • Font
    • Conduit Background Swatch
    • Button Class
    • button class update
    • icon credit div at bottom
    • color scheme
    • title banner update
    • updating life slider with personal funds max
    • clickable link to charity in select
    • tooltip details if hover over
      • donation
      • mating
      • excretion
      • taxes
      • everything else
    • creation menu defaults to last critter created
    • misc layout adjustments
    • confirmation pop up
    • change mode button "back to ecosystem"
    • disclaimer and legal info
    • foundations with links are verified, eventually send non-verified names to checker
    • look into "em" instead of px
    • click username button to get your stats
    • change all relative positions to 16:9
    • turn donations list into fade panel too
    • fix ecosystemCanvas css not having top offset
    • fix otherOrg inputs show/hide bugs
  • basics page / tutorial / help
  • community effects / ACTS OF GOD
    • brainstorm playtestable community effect prototypes
    • food sprinkle (feast)
      • foodSprinkle clientside toggle
      • see where other clients are
      • change to 0.01
      • message + change panel
    • famine (all poop goes to community funds)
      • visual effect
      • panel and message
      • all poop goes straight to community funds
    • community critter generation
      • same critter menu
      • panel and message
      • frankencritter
    • radioactive waste (area that increases mutation rate)
    • fire (area that reduces life -- goes to funds or else will draw in)
    • flood (all critters lose health)
    • lightning strike (one critter instantly dies)
    • ranked choice voting system Condorcet-Lite Voting
    • timer for rounds
    • current state in top left
    • last state effects
    • participation button / submit votes button
    • send votes to server
    • god panel fades in
    • test manipulating the flocking sliders as a choice
    • fertilization battle royale minigame
  • backend updates
    • change dbs -- one for static critter info (could have more stats too like time of death and total lifespan, ancestry details, etc.)
    • one for dynamic eco data
    • user gods db for stats
    • funds db
    • fix db update pausing whole thing -- why if async? test seaparating critter info / culling huge object
    • separate server for db? -- just sends info over when updating and requests info on start
    • ask matt stuff
    • reformat backup function ping pong (parameter instead)
    • test speed if just inserting instead of updating whole thing
    • fix callbacks to allow for existing donations log (had to redo)
    • if still slow after inserting, just not going to update all the time...
    • should solo insert donations too...
  • god stuff
    • user login on server
    • user login client-side
    • user donation leaderboard
    • user community interaction leaderboard
    • leaderboard filter by org
    • user donation as percentage of each critter donation
  • Playtest (start day and week later followup)
    • host on glitch
    • get group
    • intitial feedback survey
    • week later feedback survey
    • user log in
    • initial playtest
    • ethics playtest/check-in
    • reduce timers
  • Documentation
    • get media
    • update github with current project status and media
    • add to website
    • create separate todo/changelog and update readme
    • design document with standards
    • prettier / ESLint?
    • versions and log
  • "use strict" for debugging? https://eloquentjavascript.net/08_error.html
  • standard toFixed/parseFloat across board https://modernweb.com/what-every-javascript-developer-should-know-about-floating-points/
  • needs some sort of new theming...
  • whats with the weird hyper speed (lerp to catch up?)

Before Playtest:

  • change default funds to 0
  • add users
  • add starting funds
  • start OBS and mic recording
  • clear DBs

During Playtest:

After Playtest:

Feedback questions: - Giving - Do you give to charity? Why/why not, if so, how much, to whom, why? - How have your giving habits changed over time?

DB breakdown:

  • Ecosystem Essentials:
    • Supply (Food):
      • amount
      • pos
    • Corpses
      • pos
      • r
    • Critters (critter db has all static props like DNA, but eco has the mutable variables)
      • pos
      • id
      • life
      • timers
  • Critters
    • everything static, and mutables get updated on backup (donations, timers, life)
    • what happens if there's a crash and back-ups conflict? reset to last non-conflict?
  • Funds
    • orgs, donations
  • Users
    • name, id,

Jan 2021 Update

  • finish this list
  • clean up backend code (logs + module reorganization)
  • clean up frontend code (modules)
  • new UI
  • critter creation (sliders)
  • critter creation (gene packs)
  • fix food bugs (i hope)
  • critter action animations
  • click to show critter info (stats, donations, family tree)
  • environment effects
  • bigger world
  • ecosystem database
  • test out NNs
  • test out 3D creatures
  • procedural creatures and animations
  • look into Twitch overlays
  • glitch redo
  • twitch overlay

Server Database Stuff

  • set up ecosystem on server with exports
  • socket display clientside, everything else on server
  • set up critter db
  • set up world db
  • set up backup db
  • set up conduit db
  • research backup best practices
  • manager so if crash, restarts
  • memory leaks?
    • global this?
    • use strict?
    • copy instead of reference?

Client Side Stuff

  • world stats overlay
  • family trees
  • critter generation
    • fast
    • advanced with sliders
    • full with puzzle gene packs and best critters (leftovers go to community pool?)
  • click to show critter info
  • funds raised monitor
  • sprinkle food down
  • learn React lol?

Ecosystem Stuff

  • quadtree!
  • flocking!
  • try out NNs (DIY or ml5)
  • remove pacman border, make solid
  • names and other characterizations
  • features beyond circles? (relevant for world changes)
  • mating pause + hearts
  • eggs
  • seek food
  • food coma + animation
  • poop blooms into food
  • donation animation/indicator
  • environment adaptations
    • weather preferences
    • biome traits
    • diet

World Stuff

  • make bigger!!!
  • add terrain
  • add hazards
  • add climate

Documentation Stuff

  • behavior gifs
    • flies around decomposing food
    • sexual tension of two ready mates in group with high separation bias

Community Stuff

  • consult Mimi Yin
  • Crispr Operation to change individuals DNA
  • hivemind predator
  • terraforming
  • changing global effects
    • donation minimums
    • reproduction minimums
    • excretion minimums (no death?)

Three JS Stuff

  • test 3D ecosystem

Unity Stuff

  • test 3D ecosystem
  • ML-Agents test

Twitch Stuff

  • test stream
  • research overlays
  • research TPP
  • research bits

Money Stuff

  • research ads
  • research alternative payment sources
  • set up transparent ledger

Maybe Stuff

  • agression?
  • family/tribe recognition?
  • attraction?

Long Term Goals

  • 3D? Either Unity or three.js
  • Arcade Cabinet
  • more meme evolution?
  • prisoner's dilemma

the first stable ecosystem, a 13 hour running world of around 60 critters

OLD TODO (Oct 2020)

Project Overall

  • Update README with project overview
  • explanation of system doc
  • food for thought doc

New Platforms

  • Twitch
    • try chat commands
  • Discord
    • try bot commands
  • YORB
    • try in three.js
  • Arcade Cabinet
    • quarter for food & world effect
    • $1.00 new critter

Back-End

  • Move the Ecosystem data to server.js
  • Look into database storage // back-ups

Front-End

  • Revolving Chart of Data Over Map
    • current state of ecosystem
      • num Critters
      • total food in world
    • log of donations
  • Family Trees
  • Total Donation Log
  • World Update Ticker
    • deaths, births, global events, etc.
  • How to know critter info?
    • if not on twitch, can click for individual info pop up
    • "PokeDex" of all living critters
      • sortable
  • name/num on critter? or too cluttered? maybe under?

Ecosystem

  • World
    • new map texture
    • terrain / hazards
    • climate
    • food changes
      • appearance
      • plant/meat?
  • community interaction
    • terraforming
    • climate change
    • group-controlled predator
  • donation log
    • ~~basic object in code and fund checker function ~~
    • some sort of rounding down thing + leftovers go to X

Critters

  • Implement New Traits
    • names
    • ancestry
    • mating pause
    • food outline
    • excretion rate as effort
    • food coma
    • mutations
    • altruism alleles
      • primary / secondary donations
      • crossover
      • rate of donation / conditions
    • donation animation/indicator
    • environment adaptations
      • weather preferences
      • biome traits
      • diet
    • better timing of expressions? second() vs frame?
  • Update Critter Appearance
    • reflecting environment adaptations
    • corpse appearance
  • Neural Network movement to replace Perlin Noise?
  • Create New Critter Interface

Optimizations

  • better way of checking surroundings without iterating through whole array?
  • change all classes to factory functions?