Skip to content

severmanolescu/Ember-Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ember Engine

C++17 OpenGL 4.6 Status License

A modern 2D game engine built from scratch in C++ with OpenGL 4.6.

Overview

Ember Engine is a lightweight, custom-built 2D game engine designed for learning and experimentation. It provides core functionality for building 2D games with sprite rendering, animations, and flexible game object systems.

Features

  • OpenGL 4.6 Rendering - Modern graphics pipeline with shader support
  • Sprite Rendering - Efficient 2D sprite rendering with texture support
  • Animation System - State machine-based animation system with transitions
  • Game Object Components - Flexible component-based architecture
  • Camera System - Smooth camera following and zoom controls
  • Transform System - Position, rotation, and scale transformations
  • Input Handling - Keyboard input via GLFW

Tech Stack

  • C++ - Core language
  • OpenGL 4.6 - Graphics API
  • GLFW - Window and input management
  • Glad - OpenGL function loader
  • GLM - Mathematics library for graphics
  • stb_image - Image loading library

Project Structure

Ember Engine/
├── src/              # Source files
│   ├── main.cpp      # Entry point
│   └── stb_image.cpp # Image loader implementation
├── include/          # Header files
│   ├── GameObject.h
│   ├── SpriteRenderer.h
│   ├── Animation.h
│   ├── Animator.h
│   ├── Camera.h
│   └── Transform.h
├── Ember Engine/     # Core engine components
│   ├── Animation.cpp
│   ├── Animator.cpp
│   └── SpriteRender.cpp
├── Libraries/        # Third-party libraries
│   ├── GLFW/
│   └── glm/
└── assets/          # Game assets (sprites, textures)

Current Features Demo

The engine currently demonstrates:

  • Player character with animated idle states (up, down, left, right)
  • Smooth animation transitions based on input
  • Camera system that follows the player
  • Basic game object rendering
  • Delta time-based movement

Getting Started

Prerequisites

  • C++ compiler with C++17 support
  • CMake (for building)
  • OpenGL 4.6 compatible graphics card

Building

# Clone the repository
git clone https://github.com/severmanolescu/Ember-Engine.git
cd Ember-Engine

# Build instructions coming soon

Roadmap

  • Physics system
  • Collision detection
  • Audio system
  • Scene management
  • Tilemap support
  • Particle system
  • Input manager
  • Asset management system
  • Editor/tooling support

Development Status

This project is in early development. Features are being added incrementally as the engine evolves.

License

This project is open source and available for learning purposes.

Author

Sever Manolescu

About

A modern 2D game engine built from scratch in C++ with OpenGL 4.6 - Features sprite rendering, animation state machine, camera system, and component-based architecture

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors