📦 JarEngine Documentation

🔹 Overview

JarEngine is a lightweight Python game framework built on top of Pygame. It provides structured abstractions for game development, including entity management, rendering systems, input handling, and resource management.

The engine is designed for:

  • Educational use
  • Small to medium-scale game projects
  • Rapid prototyping
  • Structured engine architecture learning

🔹 Architecture Overview

JarEngine
│
├── interns        → Core internal abstractions
├── entities       → Entity/component system
├── events         → Input and event handling
├── games          → Game loop and runtime systems
├── resources      → Assets (textures, fonts)
├── systems        → Low-level data structures
├── audios         → Audio system layer
└── constants      → Global constants

🔹 Core Principles

  • Clear separation of systems and data
  • Lightweight abstraction over Pygame
  • Modular and extensible structure
  • Engine-first design (not game-first)
  • Explicit ownership and lifecycle control

🔹 Main Modules

Module Responsibility
interns Internal engine infrastructure
entities ECS-style entity management
events Input handling (keyboard, mouse)
games Runtime loop and game structure
resources Asset loading and management
systems Primitive data structures
audios Audio abstraction layer
constants Global configuration values

🔹 Navigation

Use the sidebar to explore:

  • Core engine internals
  • Systems and primitives
  • Entity/component architecture
  • Input and event system
  • Resource handling
  • Templates and guides

🔹 Current Status

⚠️ Active development stage

Implemented

  • Core architecture modules
  • Base entity system
  • Resource abstraction layer
  • System primitives

Planned

  • Advanced ECS optimization
  • Audio system expansion
  • Rendering pipeline improvements
  • Tooling and debug utilities

🔹 Notes

JarEngine is not a replacement for Pygame. It is a structured abstraction layer intended to simplify development while enforcing a clean architecture model.