has a base charge of 1 and an energy level of 8 which allows each Li atom to have 1 electron and 1 bond
Berylium Atom
has a base charge of 2 and an energy level of 8 which allows each Be atom to have 2 electrons and 2 bonds
can be bonded into straight lines
Boron Atom
has a base charge of 3 and an energy level of 8 which allows each F atom to have 3 electrons and 3 bonds
(2024.02.01) Carbon Atom
has a base charge of 4 and an energy level of 8 which allows each C Atom to have 4 electrons and 4 bonds
can be bonded into large square patterns
Nitrogen Atom
has a base charge of 5 and an energy level of 8 which allows each O Atom to have 5 electrons and 3 bonds
bonds are made at bent angles of 90 degrees
Oxygen Atom
has a base charge of 6 and an energy level of 8 which allows each O Atom to have 6 electrons and 2 bonds
bonds are made at bent angles of 90 degrees
Florine Atom
has a base charge of 7 and an energy level of 8 which allows each F atom to have 7 electrons and 1 bonds
Neon Atom
has a base charge of 8 and an energy level of 8 which allows each Ne atom to have 8 electrons and 0 bonds
3rd energy level (8 Electrons)
Sodium Atom
has a base charge of 1 and an energy level of 6 which allows each Na Atom to have 1 electrons and 1 bonds
Magnesium Atom
has a base charge of 2 and an energy level of 6 which allows each Mg Atom to have 2 electrons and 2 bonds
Chlorine Atom
has a base charge of 5 and an energy level of 6 which allows each Cl Atom to have 5 electrons and 1 bonds
Argon Atom
has a base charge of 6 and an energy level of 6 which allows each Ar Atom to have 6 electrons and 0 bonds
Fullscreen by Default
game should go to fullscreen mode on start
Time Control Panel
(2024.02.19) speeds up or slows down/stops the flow of time
should have options for pause, play, 2x
(2024.02.24) increase/decrease gamespeed controls
”=” keyboard should increase speed
”-“ keyboard should decrease speed
gamepad d-pad left should decrease speed
gamepad d-pad right should increase speed
(2024.02.24) toggle gamespeed controls
toggle should toggle back and forth between pause and the previous speed the game was playing at before it was paused
keyboard “spacebar” should toggle the gamespeed
gamepad d-pad down should toggle the gamespeed
Camera Controller
(2024.02.03) WASD keys control up, left, down, right control of camera
(2024.02.04) navigating mouse to the edge of the map moves the camera
navigating outside the game window does NOT move the camera
camera does NOT move when the game window is not focussed
(2024.02.06) Camera should be constrained to game world dimmensions
(2024.02.23) move camera with gamepad left stick
Zoom Control Panel
zooms in or out
accepts mouse scroll wheel up/down as input in game space as a method of zooming in or out
had a configurable max zoom in/out
Tooltip
shows on hover of game object
should show this info for game objects
Atom
atomic short symbol
Inspection Panel
shows more information about the selected game object
should show info on selection
should show these values
Atom
atom type
position coordinates
velocity vector
base charge
current charge
number of electrons
number of bonds
Electron
position
velocity
charge
Sandbox Mode
panel for dragging and dropping new electrons and Atoms into the game
should have a way of destroying Electrons/Atoms
should have a way of moving particles around to different positions
should have a way of changing particles velocity and trajectory
should have a way of stripping Electrons from an Atom’s ElectronCloud
Atomic Electron Bonding
Energy levels should exist in shells that allow for different shapes of bonding
level 1 - 2 electrons
level 2 - 8 electrons
level 3 - 8 electrons
Electron bonds should be able to be broken if enough energy is applied allowing for ionization of Atoms
Electrons should add energy to the Atom when their bond is created
Atoms should lose energy if they lose an Electron bond
equation for ionization energy should be based on atomic number and energy level. https://pubchem.ncbi.nlm.nih.gov/ptable/ionization-energy/
Covalent Bonding
(2024.01.24) Electrons should be able to break covalent bonds if the covalent bond is based on an electron that would have fit within the base charge
(2024.01.12) Covalent Bonds should be able to be broken if the Atom extends too far a distance from the bonded Atom.
(2024.01.24) Covalent Bonds should be based on sharing of Electron pairs
Each covalent bond needs to line up to an available electron from each pair
Ionic Bonding
[ ]
Chemical Reactions
[ ]
Atomic Bond Shape
Bonds should be held at specific angles based on electron count
Dipole Forces
Each atom needs to have different points around the circumference that electrons can collect.
When an electron is added or removed to an Atom, the electrons are rebalanced so that they are evenly spaced through the points around the circumference
To represent this, we take the maximum number of electrons and find all the primes and multiply them together to ensure the electrons can fall into a point that make them evenly spaced
Example, if there are a max of 12 electrons then the primes are 2, 2, 2, 3, 3, 5, 7, 11 whic
we need to separate the positive and negative centers of the Atom’s charge
when the two centers are aligned and the charges of each balance out then the force is nullified
when the centers are off alignment both forces remain in effect but the positive and the negative are calculated independently
when an atom holds covalent bonds at angles and the electron counts pool to one side of the Atom, it results in a separation of the centers of negatie charge and positive charge
the center is determined by calculating the center of mass of the negative particles and the center of mass of the positive particles.
Electron Clouds
electron clouds should have mass and should increase/decrease in mass when Electrons are added or removed
GameWorld Generation
GameMap should be proceedurally generated at the start of the game
Map should be discovered as the player expands
Should GameMap be finite in size or just continually proceedurally generated as more is explored?
MiniMap
Game should show a minimap in the bottom right corner that displays the greater world around them and increases visibility.
Splash Screen
add a splash screen https://docs.unity3d.com/Manual/class-PlayerSettingsSplashScreen.html#:~:text=The%20Splash%20Image%20section%20of,displays%20when%20your%20application%20starts
Main Menu
Basic Menu for starting point when game opens.
Main Menu Panel
Allow for accessing start new game page
Allow for accessing continue/load existing game
Allow for accessing settings page
Start New Game Panel
game set up options
Load Game Panel
select and load previous game
show loading screen when loading the game
Settings Page
Settings tabs
Video settings tab
Game settings tab
Sound settings tab
Touch and Motion settings tab
Controller Options settings tab
Game UI settings tab
Wireless controller settings tab
Navigation Controlls
Tab Navigation
Q/E, Tab keys to switch between tabs
mouse click to switch tabs
L/R GamePad controls to switch between tabs
Settings Navigation
Up/Down to move between settings
Left/Right to change settings
Loading Screen
Should be shown when a new game is started or when a saved game is loaded
Save Game Panel
unlimited save slots sorted by most recent save time
cloud based saves
Game Menu
(2024.02.26) open/close with escape key
(2024.02.26) open/close with gamepad start button
save game button
load game button
settings button
quit to main menu button
quit to desktop button
(2024.02.27) return to game button
(2024.02.26) blur background when menu is open
(2024.02.27) blur and disable other game UI when menu is open
Save Game System
serialize all GameData
Atoms
Electrons
CovalentBonds
Camera Position/Zoom
Save files on local disk
versioning system for GameData
version identifier of GameData
GameData version upgrade/downgrade migration strategy