Skip to content

varuprakash/V1Engine

Repository files navigation

🚀 Basic Game Engine Learning Project

Building a Game Engine From Scratch using Modern C++ and OpenGL



📖 About The Project

This project is a beginner-friendly game engine built completely from scratch using C++.

The main purpose of this engine is to deeply understand how real game engines work internally instead of relying entirely on existing engines like Unreal or Unity.

The project focuses on:

  • Engine architecture
  • Rendering pipelines
  • Memory handling
  • Input systems
  • ECS architecture
  • Resource management
  • Performance optimization
  • Low-level game programming concepts

🎯 Learning Goals

This project exists to help learn and practice:

✅ Modern C++ ✅ Real-world engine architecture ✅ Rendering systems ✅ Memory management ✅ Performance optimization ✅ Game loops and timing ✅ Engine modularity ✅ Graphics programming fundamentals


✨ Planned Features

🧠 Core Engine Systems

  • Window creation
  • Engine main loop
  • Delta time system
  • Input handling
  • Event system
  • Logging system
  • Time management

🎨 Rendering System

  • OpenGL renderer
  • Clear screen rendering
  • Shader system
  • Texture loading
  • 2D rendering
  • Sprite rendering
  • Camera system

🏗️ Engine Architecture

  • ECS (Entity Component System)
  • Scene management
  • Resource manager
  • Asset loading system
  • Component system
  • Object lifecycle handling

🛠️ Debug & Tools

  • FPS counter
  • Debug console
  • Profiling tools
  • Engine statistics
  • Debug overlays

🧰 Tech Stack

Technology Purpose
C++ Core Engine Language
OpenGL Graphics Rendering
GLFW Window & Input
GLAD OpenGL Loader
CMake Build System
Visual Studio IDE

📂 Project Structure

BasicEngine/
│
├── Engine/
│   ├── Core/          # Core engine systems
│   ├── Renderer/      # Rendering pipeline
│   ├── Input/         # Input handling
│   ├── Math/          # Math utilities
│   └── Utils/         # Helper utilities
│
├── Sandbox/
│   └── Main.cpp       # Testing application
│
├── Vendor/            # Third-party libraries
│
├── CMakeLists.txt
└── README.md

⚙️ Current Focus

The current development focus is:

  • Setting up engine architecture
  • Learning OpenGL fundamentals
  • Building reusable systems
  • Understanding how professional engines are structured

🚧 Project Status

⚠️ Still In Progress

This project is actively being developed as a learning journey.

Expect:

  • Frequent changes
  • Experimental systems
  • Refactoring
  • New architecture updates

🧠 Why Build a Game Engine?

Building a game engine teaches concepts that normal gameplay programming often hides.

It helps understand:

  • How rendering actually works
  • How memory is managed
  • How engines organize systems internally
  • How performance optimization matters
  • How low-level systems interact together

📚 Learning Philosophy

Instead of using a ready-made engine, this project focuses on:

“Learn by building everything yourself.”

Every system is built step-by-step to gain deeper understanding of engine programming.


🚀 Future Plans

  • ECS implementation
  • Audio system
  • Physics integration
  • Scene serialization
  • Editor tools
  • Lua scripting
  • 3D rendering
  • Multithreading

🤝 Contributions

This is mainly a personal learning project, but suggestions, improvements, and discussions are always welcome.


📌 Notes

This project is not intended to compete with professional engines.

The goal is purely:

  • Learning
  • Experimentation
  • Understanding engine internals
  • Improving C++ skills

⭐ Inspiration

Inspired by:

  • Hazel Engine
  • The Cherno's Game Engine Series

👨‍💻 Developer

Made with passion for learning low-level game development and engine programming.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors