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 systemCondorcet-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
- Supply (Food):
- 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 exportssocket 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?
- 3D? Either Unity or three.js
- Arcade Cabinet
- more meme evolution?
- prisoner's dilemma
- Update README with project overview
- explanation of system doc
- food for thought doc
- Twitch
- try chat commands
- Discord
- try bot commands
- YORB
- try in three.js
- Arcade Cabinet
- quarter for food & world effect
- $1.00 new critter
- Move the Ecosystem data to server.js
- Look into database storage // back-ups
- Revolving Chart of Data Over Map
- current state of ecosystem
- num Critters
- total food in world
- log of donations
- current state of ecosystem
- 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?
- 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
- Implement New Traits
namesancestry- mating pause
food outlineexcretion rate as effort- food coma
mutationsaltruism allelesprimary / secondary donationscrossoverrate 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
- better way of checking surroundings without iterating through whole array?
- change all classes to factory functions?