Skip to content
Wolfleader edited this page Dec 20, 2023 · 3 revisions

Welcome to the FenrirEngine wiki!

Introduction

  • Purpose of the document
  • Target audience for the engine
  • High-level overview of the engine capabilities

Fenrir Engine aims to be a data-driven game engine that uses modern C++ features to allow you to create robust games. We have drawn inspiration from the Bevy game engine. Fenrir is designed to let you build your own systems or use some of our prebuilt systems and is designed to be multi-threaded friendly out of the box. This means you're not tied to using any of the systems included in the engine. You can instead build your own! However, we do provide many of these systems out of the box for you.

Background

  • Summary of your experience with previous engines
  • Lessons learned from past projects
  • Inspiration for the new engine

Inspiration

  • Bevy Game Engine
  • S&Box
  • Entt ECS (Used under the hood for our own ECS)

Goals and Objectives

  • The vision for the engine
  • Key features and benefits
  • Performance and scalability objectives

Core Engine Architecture

  • High-level architecture diagram
  • Description of the main subsystems (rendering, physics, audio, etc.)
  • Data management and storage

Technical Specifications

  • Programming languages and tools to be used
  • External libraries or middleware
  • Support for modding or user-generated content

Development Roadmap

  • Milestones and deliverables
  • Estimated timelines for each phase of development
  • Risk assessment and mitigation strategies

Feature Set

  • Detailed breakdown of features
  • Prioritization (e.g., must-have, nice-to-have)
  • User stories or use cases for major features

Design Principles

  • Core design philosophies (e.g., ease of use, flexibility, performance)
  • Standards and conventions to follow

UI and Tools

  • Overview of the editor or tools suite
  • Mockups or wireframes of key interfaces
  • Workflow and user experience considerations

Testing and QA

  • Testing strategies for different components
  • Performance testing benchmarks
  • Documentation and support plans

Wanted Features

  • Unit Testing from start??
  • It can be extended using plugins similar to bevy
  • Everything is modular

Core Engine Lib

  • Static library
  • Just exposes classes and functions
  • Headless Mode
  • Runs without window or renderer
  • Multiplayer Support - Networking, client/server architecture

Editor

  • early stage editor using imgui?
  • Eventually built using razor syntax?

Renderer

  • Agnostic of underlying rendering API
    • OpenGL
    • Vulkan
    • DirectX
  • Has PBR
  • Raytracing?
  • 3D Gaussian Splatting?

Animation

  • Support for skeletal animations

Scripting

  • C# .NET Support
  • Live hot reloading of scripts
  • Can attach multiple scripts to entities and can even attach to components perhaps?
  • Building UIs with Razor syntax in both world and on top of layer

Physics

  • Physics Directly Integrated with scene
  • Physics engine is completely custom?