Skip to content

GuusKemperman/CoralEngine

Repository files navigation

Coral Engine

Watch the trailer

What is Coral Engine?

Coral Engine is a game engine developed by students of Breda University of Applied Sciences. It was designed to be accesible to designers, so that entire games can be created without having to modify a line of C++.

Key Features

Graphics

  • Graphics Pipeline: Built using DX12 for PC.
  • Shadows and Lighting: Supports tens of thousands of point lights with minimal performance impact.
  • Post Processing: Includes effects like fog, LUTs, outlines, and more.
  • Animated Skinned Meshes: Supports complex animations for detailed character models.

ECS (Entity Component System)

  • Efficient Systems: Utilizes EnTT for creating systems that iterate over entity views for optimal performance.
  • Event Handling: Includes a variety of events like "OnBeginPlay", "OnTick", and "OnCollisionEntry" for flexible gameplay logic.

Level Editor

  • Built-In Level Editor: Allows inspection and modification of all components and entities within a world.
  • Prefab System: Uses a system similar to Unity's prefabs.
  • Gizmos and Shortcuts: Provides tools for quickly transforming objects and undoing changes.

Visual Scripting

  • Visual Script Editor: Inspired by Unreal Engine's Blueprints, enabling the creation and modification of scripts at runtime.
  • Seamless Integration: Built from scratch to integrate smoothly with the engine and EnTT, allowing scripts to benefit from ECS's data-oriented speed.

Additional Features

  • Animation Blending: For smooth transitions between animations.
  • Audio: Built-in support for game audio.

Games Created with Coral Engine

Getting Started

  1. Set Startup Project: Right-click on ExampleGame and select "Set as startup project."
  2. Configure Build: By default, Visual Studio selects Debug mode. For the full editor, choose EditorDebug or EditorRelease.

Starting a New Project

  1. Duplicate ExampleGame Folder: Copy the Games/ExampleGame folder.
  2. Clean Up: Delete the contents of Games/ExampleGame/Assets and all files in Games/ExampleGame/Include and Games/ExampleGame/Source except Main.cpp.
  3. Rename Project: Rename the folder and project to your desired game name.
  4. Include in Solution: Add the new project to Coral.sln.