Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

47 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌾 Harvest Engine

A modular, data-driven 2D game engine built entirely from scratch using HTML5 Canvas and Vanilla JavaScript.

Farm Simulator is the first game powered by Harvest Engine, demonstrating modern game engine architecture without relying on external engines or frameworks.

Status Version License


πŸ“– About

Harvest Engine is a custom JavaScript game engine focused on creating scalable 2D simulation games.

Every core system is designed from scratch, including rendering, world generation, interactions, gameplay, UI, and asset management.

The engine emphasizes:

  • Modular Architecture
  • Separation of Responsibilities
  • Data-Driven Design
  • Reusable Systems
  • Clean Project Structure
  • Engine-first Development

Farm Simulator is the first game built using Harvest Engine and serves as both a farming simulation and a showcase of the engine's capabilities.


πŸš€ Current Version

Harvest Engine v0.6.0


βœ… Engine Core

  • Game Loop
  • Input Manager
  • Camera System
  • Renderer
  • Asset Manager
  • Collision System
  • Particle Manager
  • Effects System

🌍 World

  • Procedural World Generation
  • Farm Generator
  • Brush System
  • Tree Generation
  • Terrain Generation
  • Grass Variation
  • Soil Rendering
  • Starter Farm Generation

🌾 Farming

  • Hoe Tool
  • Seed Planting
  • Watering
  • Crop Growth
  • Harvesting

πŸ’° Economy

  • Coin System
  • Shop Manager
  • Sell Manager
  • Shop Registry
  • Buying System
  • Selling System

🏑 Buildings

  • Building Registry
  • House Builder
  • Building Renderer
  • Layered Roof Rendering
  • Building Collision

πŸ“¦ Farm Objects

  • Shipping Bin
  • Mailbox
  • Farm Object Registry
  • Farm Object Renderer
  • Data-Driven Interactions

πŸŽ’ Inventory

  • Inventory
  • Inventory UI
  • Hotbar
  • Item Registry
  • Item Stacking
  • Item Removal

πŸ›’ Shop

  • Shop UI
  • Keyboard Navigation
  • Item Purchasing
  • Coin Display

🀝 Interaction System

  • Generic Interaction Manager
  • Data-Driven Interaction Routing
  • Shipping Bin Interaction
  • Mailbox Interaction

🎨 Rendering

  • Terrain Renderer
  • Soil Renderer
  • Building Renderer
  • Farm Object Renderer
  • Crop Renderer
  • Tree Renderer
  • Layered Rendering Pipeline
  • Harvest Particles

πŸ›  Tech Stack

  • HTML5
  • CSS3
  • Vanilla JavaScript (ES6+)
  • HTML5 Canvas
  • Git
  • GitHub

✨ Engine Highlights

  • Modular Architecture
  • Data-Driven Registries
  • Data-Driven Interactions
  • Builder Pattern
  • Generator Pattern
  • Manager Pattern
  • Layered Rendering
  • Custom Collision System
  • Procedural World Generation
  • Reusable Rendering Systems
  • Scalable Engine Design

πŸ— Engine Architecture

Game
β”‚
β”œβ”€β”€ Input
β”œβ”€β”€ Camera
β”œβ”€β”€ World
β”œβ”€β”€ Renderer
β”œβ”€β”€ Player
β”œβ”€β”€ Inventory
β”œβ”€β”€ Hotbar
β”œβ”€β”€ Interaction Manager
β”œβ”€β”€ Shop Manager
β”œβ”€β”€ Sell Manager
β”œβ”€β”€ Asset Manager
β”œβ”€β”€ Particle Manager
β”œβ”€β”€ Effects
└── Registries

πŸ“‚ Project Structure

FarmSimulator/
β”‚
β”œβ”€β”€ assets/
β”‚
β”œβ”€β”€ js/
β”‚   β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ world/
β”‚   β”œβ”€β”€ rendering/
β”‚   β”œβ”€β”€ gameplay/
β”‚   β”œβ”€β”€ ui/
β”‚   β”œβ”€β”€ registries/
β”‚   └── utilities/
β”‚
β”œβ”€β”€ README.md
β”œβ”€β”€ ARCHITECTURE.md
β”œβ”€β”€ CHANGELOG.md
β”œβ”€β”€ DEVLOG.md
β”œβ”€β”€ ROADMAP.md
β”œβ”€β”€ LICENSE
└── index.html

πŸ—Ί Development Roadmap

βœ… Sprint 1 β€” Engine Foundation

  • Game Loop
  • Camera
  • Input
  • Player Movement
  • World Generation
  • Brush System
  • Tile Registry

βœ… Sprint 2 β€” Core Farming

  • Inventory
  • Hotbar
  • Farming
  • Crop Growth
  • Harvesting

βœ… Sprint 3 β€” Rendering Systems

  • Asset Manager
  • Tree Renderer
  • Crop Renderer
  • Particle Manager
  • Effects System

βœ… Sprint 4 β€” Farm Foundation

  • Building System
  • Farm Generator
  • Building Renderer
  • Farm Objects
  • Layered Rendering

βœ… Sprint 5 β€” Starter Farm

  • Fence System
  • Soil Renderer
  • Environment Improvements
  • Starter Farm Generation

βœ… Sprint 6 β€” Economy & Interaction

  • Coin System
  • Shop System
  • Shop UI
  • Shop Manager
  • Sell Manager
  • Generic Interaction System
  • Data-Driven Interactions

🚧 Upcoming

  • Building Interaction Framework
  • NPC System
  • Dialogue System
  • Quest System
  • Weather
  • Seasons
  • Animals
  • Fishing
  • Mining
  • Crafting
  • Save / Load
  • Audio
  • Lighting

πŸ“š Documentation

  • πŸ“– ARCHITECTURE.md β€” Complete engine architecture
  • πŸ“œ CHANGELOG.md β€” Version history
  • 🌱 DEVLOG.md β€” Sprint-by-sprint development
  • πŸ›£ ROADMAP.md β€” Planned milestones

🎯 Learning Goals

This project focuses on mastering:

  • JavaScript
  • HTML5 Canvas
  • Software Architecture
  • Game Engine Development
  • Data-Oriented Design
  • Rendering Pipelines
  • Procedural Generation
  • Git & GitHub
  • Performance Optimization

🀝 Development Workflow

Every feature follows the same workflow:

  1. Planning
  2. Architecture Design
  3. Implementation
  4. Testing
  5. Refactoring
  6. Documentation
  7. Git Commit
  8. Version Release

🌟 Vision

Harvest Engine is designed to become a reusable JavaScript 2D game engine capable of powering multiple simulation games.

Farm Simulator serves as the flagship project, showcasing how modern engine architecture can be built entirely from scratch without external game engines.


πŸ“ˆ Current Progress

Engine

🟩🟩🟩🟩🟩🟩🟩🟩⬜⬜ 80%

Gameplay Systems

🟩🟩🟩🟩🟩🟩🟩⬜⬜⬜ 70%

Content

🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 20%

The engine foundation is largely complete. The next development phase focuses on expanding the game world with buildings, NPCs, dialogue, weather, and additional gameplay content.


πŸ“œ License

Licensed under the MIT License.


⭐ If you enjoy the project, consider giving it a star!

About

🌾 A 2D Farming Simulator powered by Harvest Engine β€” a custom game engine built from scratch using HTML5 Canvas, CSS, and Vanilla JavaScript.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Contributors

Languages