Skip to content

Commit 70194b4

Browse files
committed
ReadMe
1 parent 36dd29a commit 70194b4

3 files changed

Lines changed: 104 additions & 1 deletion

File tree

README.md

Lines changed: 104 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,104 @@
1-
## Under Construction
1+
# PiEngine
2+
Made with love, learning, and long sleepless nights.
3+
4+
PiEngine is a modular, component-based Java game engine built from scratch for 2D and (eventually) 3D games. It was created as a college project with a focus on learning, customization, and full control over the game development pipeline.
5+
6+
![Editor Screenshot](docs/screenshots/Editor.png)
7+
![RenderGraph Screenshots](docs/screenshots/RenderGraph.png)
8+
9+
## Features
10+
11+
- Component-based architecture (just extend `Component`)
12+
- Built-in ImGui editor (Scene view, Game view, Inspector)
13+
- Node-based rendering pipeline with external GLSL shader support
14+
- Modular JSON-based scene saving and prefab system
15+
- Hot-loadable components (runtime script loading)
16+
- Input abstraction system
17+
- Asset loader for 2D sprites/images
18+
- Fully open-source under MIT License
19+
20+
## Folder Structure
21+
22+
```
23+
Pi-Engine/
24+
├── src/
25+
│ └── main/
26+
│ └── java/
27+
│ └── org/PiEngine/ # Core engine code
28+
├── resources/
29+
│ ├── shaders/ # External GLSL shaders
30+
│ └── Test.json # Sample scene
31+
├── build.gradle # Gradle setup
32+
33+
```
34+
35+
36+
## Getting Started
37+
38+
### Requirements
39+
40+
- Java 17 or newer
41+
- Gradle
42+
- Windows (tested; Linux/Mac support unverified)
43+
44+
### Build & Run
45+
46+
```bash
47+
git clone https://github.com/ItsTanPI/Pi-Engine.git
48+
cd Pi-Engine
49+
./gradlew run
50+
```
51+
lternatively, run the `Main.java` file from your IDE.
52+
53+
## Creating Components
54+
55+
To create a new component, extend the `Component` base class and implement your logic. Components are automatically serialized and can be hot-loaded during runtime.
56+
57+
## Scene System
58+
59+
Scenes are saved as hierarchical JSON files. Prefabs are supported by saving a scene and instancing it as an object. Object references are path-based (e.g. `/main/player/hand/weapon`).
60+
61+
Example: [`resources/Test.json`](https://github.com/ItsTanPI/Pi-Engine/blob/main/src/main/resources/Test.json)
62+
63+
## Rendering System
64+
65+
- Node-based render passes (input/output images and shaders)
66+
- Uses external GLSL shader files (`resources/shaders/`)
67+
- Basic passes available; system is designed to be extended easily
68+
- Built with future 3D support in mind
69+
70+
## Roadmap
71+
72+
- Physics system
73+
- 3D model import (GLTF/OBJ)
74+
- Scene transitions
75+
- UI system
76+
- Audio support
77+
- Cross-platform testing
78+
- Scripting (interpreter-based)
79+
- Vulkan + C++ rewrite in the future
80+
81+
## Credits
82+
83+
PiEngine is a personal and collaborative project created with dedication, curiosity, and lots of late nights.
84+
85+
**Developed by:**
86+
- [Shri Hari (TanPi)](https://github.com/ItsTanPI)
87+
- [Gunavarthan](https://github.com/Gunavarthan)
88+
89+
We started this project as part of our college work, and it became a dream journey into game engine development. This engine represents our first step toward learning how real engines are built — and we’re excited to keep improving it with the help of the open-source community.
90+
91+
92+
## Contributing
93+
94+
This project is open-source and we welcome contributions. If you're interested:
95+
96+
1. Fork the repository
97+
2. Make your changes
98+
3. Submit a pull request
99+
100+
We (the original developers) will review and merge contributions. The goal is to build a community-driven, custom game engine like Blender or Godot.
101+
102+
## License
103+
104+
This project is licensed under the MIT License. See the [LICENSE](https://github.com/ItsTanPI/Pi-Engine/blob/main/LICENSE) file for details.

docs/screenshots/Editor.png

65.8 KB
Loading

docs/screenshots/RenderGraph.png

82.6 KB
Loading

0 commit comments

Comments
 (0)