No description
| assets | ||
| docs | ||
| src | ||
| .gitignore | ||
| CLAUDE.md | ||
| conf.lua | ||
| game-of.love | ||
| main.lua | ||
| makefile | ||
| project_spec.md | ||
| README.md | ||
| SAVE_FILE_INFO.md | ||
Game of Love
An incremental/idle hybrid game built on Conway's Game of Life, developed with Lua and Love2D.
Overview
Game of Love combines the classic cellular automaton mechanics of Conway's Game of Life with incremental game progression. Watch your cells evolve, earn bits from cell transitions, and unlock upgrades to expand your grid and automate your gameplay.
Features
- Conway's Game of Life: Classic cellular automaton rules with a twist
- Incremental Mechanics: Earn bits when cells transition from dead to alive
- Upgrade System: Expand your grid, speed up generations, and multiply your earnings
- Prestige System: Reset your progress for permanent prestige points
- Save/Load: Automatic saving every 30 seconds and on exit
- Cross-Platform: Works on Linux desktop (Android support planned)
Requirements
- Love2D 11.5 or later
- Linux (tested on Arch Linux)
Installation
-
Make sure you have Love2D installed:
# On Arch Linux sudo pacman -S love # On Ubuntu/Debian sudo apt-get install love # Or download from https://love2d.org/ -
Clone or download this repository
Running the Game
Method 1: Direct execution
cd game-of-love.inc
love .
Method 2: Using love command with path
love /path/to/game-of-love.inc
Method 3: Create a .love file (optional)
cd game-of-love.inc
zip -r game-of-love.love . -x "*.git*"
love game-of-love.love
How to Play
- Spawn Cells: Click the "Spawn" button (4-second cooldown) to create a new living cell at the center of the grid
- Watch Evolution: Cells follow Conway's Game of Life rules:
- Living cells with 2-3 neighbors survive
- Dead cells with exactly 3 neighbors come to life
- Earn Bits: Each time a cell transitions from dead to alive, you earn bits
- Buy Upgrades: Click "Upgrades" to purchase:
- Grid expansions (7x7, 9x9, 11x11)
- Auto-generation (automatic cell spawning)
- Generation speed boosts
- Bit multipliers
- Faster spawn cooldowns
- Prestige: When you have enough bits, prestige to reset progress and gain permanent prestige points
Controls
- Mouse/Touch: Click buttons and interact with the UI
- Spawn Button: Manually spawn a cell at grid center
- Upgrades Button: Open/close the upgrades menu
- Prestige Button: Reset progress for prestige points
Game Mechanics
Starting State
- Grid starts at 5x5
- Spawn cooldown: 4 seconds
- Generation interval: 1.0 second
- Base bit yield: 1 per transition
Special Cells (Planned)
- HighBit: Yields 5 bits instead of 1
- Durable: Survives extra generations
- Multiplier: Increases bit yield of adjacent cells
Save System
- Game auto-saves every 30 seconds
- Save file:
save.jsonin Love2D's save directory - Progress is preserved between sessions
Project Structure
game-of-love.inc/
├── main.lua # Love2D entry point
├── conf.lua # Love2D configuration
├── src/
│ ├── core/ # Core game logic
│ │ ├── cell.lua # Cell type definitions
│ │ ├── grid.lua # Grid and Conway rules
│ │ └── tick_manager.lua # Generation timing
│ ├── ui/ # User interface
│ │ ├── ui_spawn.lua # Spawn button
│ │ └── ui_hud.lua # HUD display
│ ├── economy/ # Economy system
│ │ ├── upgrades.lua # Upgrade definitions
│ │ └── prestige.lua # Prestige system
│ ├── persist/ # Save/load
│ │ └── save.lua # Save system
│ └── platform/ # Platform abstraction
│ └── input.lua # Input handling
├── assets/ # Images, sounds (optional)
└── docs/ # Documentation
├── features.md # Feature list
└── changelog.md # Version history
Development
The codebase follows these principles:
- Pure Logic: Core game logic is separated from rendering
- Modular Design: Each module has a clear responsibility
- No External Dependencies: Uses only Love2D and Lua standard libraries
- Testable: Pure functions can be unit tested
License
This project is provided as-is for educational and entertainment purposes.
Contributing
Feel free to fork and modify for your own use. If you add new gameplay mechanics, please document them in docs/features.md.