Introduction
Why am I writing this? Well, I want to document my journey of creating a 3D engine from scratch. This is a personal project that I’ve been thinking about for a while, and I finally decided to start working on it. The goal is to create a real-time 3D engine that can be used for various applications, including games, simulations, and visualizations.
What is Real Engine?
Real Engine is a 3D engine that will be built from the ground up. The idea is to create a flexible and efficient engine that can handle complex 3D scenes, physics, and animations. I want to focus on performance and usability, making it easy for developers to create 3D applications without getting bogged down in low-level details.
Goals
The main goals of Real Engine are:
- Performance: The engine should be able to render complex scenes at high frame rates.
- Flexibility: It should be easy to extend and customize the engine for different use cases.
- Ease of Use: The engine should provide a simple and intuitive API for developers.
- Cross-Platform: The engine should be able to run on multiple platforms, including Windows, macOS, and Linux.
Initial Steps
To get started, I will focus on the following tasks:
- Setting Up the Project: I will create a new repository and set up the initial project structure.
- Creating a Window: The first step will be to create a window where the engine can render 3D content.
- Rendering a Triangle: I will implement a basic rendering pipeline that can draw a simple triangle on the screen.
Milestones
I will set up milestones to track the progress of the project.
- Milestone 1: Basic rendering system with a triangle.
- Milestone 2: Implement 2D text rendering.
- Milestone 3: Implement basic input handling (keyboard and mouse).
- Milestone 4: Add support for loading and rendering 3D models.
- Milestone 5: Implement a basic physics engine.
Conclusion
This is just the beginning of the Real Engine project. In the next devblog post, I will share the progress made on the initial steps and any challenges faced along the way. This devblog was a bit short, but I wanted to get the first one out there. I plan to write more detailed posts as the project progresses, including code snippets, architecture decisions, and performance optimizations.