No description
Find a file
2025-11-29 22:58:04 +01:00
assets it kinda is a game now.. 2025-11-29 03:20:53 +01:00
docs initial commit by CursorAi 2025-11-28 13:19:34 +01:00
src wip 2025-11-29 22:19:09 +01:00
.gitignore wip 2025-11-29 16:24:36 +01:00
CLAUDE.md added claude to the team 2025-11-29 15:57:12 +01:00
conf.lua wip 2025-11-29 16:48:30 +01:00
game-of.love wip 2025-11-29 22:58:04 +01:00
main.lua wip 2025-11-29 22:19:09 +01:00
makefile added a check to delete old .love game if exists 2025-11-29 17:31:46 +01:00
project_spec.md added project spec (initial commit) 2025-11-28 13:09:17 +01:00
README.md initial commit by CursorAi 2025-11-28 13:19:34 +01:00
SAVE_FILE_INFO.md wip 2025-11-29 22:19:09 +01:00

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

  1. 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/
    
  2. 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

  1. Spawn Cells: Click the "Spawn" button (4-second cooldown) to create a new living cell at the center of the grid
  2. 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
  3. Earn Bits: Each time a cell transitions from dead to alive, you earn bits
  4. Buy Upgrades: Click "Upgrades" to purchase:
    • Grid expansions (7x7, 9x9, 11x11)
    • Auto-generation (automatic cell spawning)
    • Generation speed boosts
    • Bit multipliers
    • Faster spawn cooldowns
  5. 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.json in 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.