Skip to content

v0.3

Latest

Choose a tag to compare

@mdoradom mdoradom released this 26 Jan 21:47

Coffee Engine v0.3 馃悙馃

Logo

Coffee Engine is an engine developed in C++ and OpenGL, divided into two components: the "Engine" and the "Editor." The editor uses the engine as an external library, leveraging its features without introducing editor-specific elements.

In addition, it uses the ECS (Entity Component System) architecture to manage entities in an efficient and modular way.

Quick Start Guide for Using Coffee Engine

Brief Overview of the Engine and How It Works

Coffee Engine is an engine developed in C++ and OpenGL, divided into two components: the "Engine" and the "Editor." The editor uses the engine as an external library, taking advantage of its features without adding editor-specific elements.

It also uses the ECS (Entity Component System) to efficiently and modularly manage entities.

Features - First Release

  • Cross-platform (Windows, Linux, macOS)
  • Editor
  • Resource Manager
  • PBR-based Rendering System
  • Editor Camera
  • Scene Camera
  • Scene Tree
  • Mouse Picking
  • 3D Model Import (Assimp)
  • Entity Component System
  • Event System
  • Logging System + Output Panel
  • 3D Primitives
  • Lighting System
  • Material System
  • Shaders
  • Documentation (Doxygen)
  • AABBs and OBBs
  • Content Browser
  • Resource Monitor
  • Play and Stop Modes
  • Gizmo
  • Project Save/Load System
  • And more... 馃

Features - Second Release

  • Content Browser
  • Log Panel
  • Primitive Mesh Factory
  • Octree
  • Mouse Picking
  • Project & Scene Serialization
  • Frustum Culling
  • UI Improvements
  • Import Settings [WIP]
  • Lua Scripting [WIP]

Features - Third Release

  • Import Settings [WIP]
  • Lua Scripting
    • The system supports other scripting languages if needed
  • Bug Fixing
  • Support for other groups with high-level modules
  • Shaders (present since the first release actually lol)
    Full Changelog: v0.2...v0.3

Getting Started

How to Test the Scripting Module

As of 26/1/25, we haven't merged the scripting branch into main yet since we鈥檇 like to test some parts more thoroughly. So to test the scripting system, you need to do it from the scripting branch.

Steps to test:

  1. With the project from the scripting branch, open the project at /Scripting-Demo/Project.TeaProject
  2. Once opened, load the scene /Scripting-Demo/Demo-Scripting.TeaScene
  3. Launch the game
  4. The scene shows several mesh components without models, moving and rotating. The script is on the entity Scripted Entity, which has some parameters editable from the inspector on the right and affects movement.
  5. The script is located at /assets/scripts/test.lua, where you can see how to expose variables to the editor and the scene's code.

Known Issues

  • High memory usage
  • Loading a project reduces performance
  • Sometimes deleting/reordering objects in the Scene Tree doesn't work properly
  • Creating a new project does not automatically load it
  • Frustum Culling in large scenes unloads objects when it shouldn't

Additional Information

GitHub Repository
Documentation Website
Kanban Board