Skip to content

Candlend/Doodle

Repository files navigation

project-logo

Doodle Engine (WIP)

A lightweight and easy-to-use 3D game engine.

License Last Commit Top Language Language Count

Developed with the software and tools below.


📍 Overview

Doodle Engine (WIP) is a lightweight 3D game engine crafted in C++ and OpenGL, designed to allow developers to create captivating 3D scenes and games as easily and freely as doodling. The engine is divided into two primary components:

  • Doodle Engine: This core component manages rendering, input handling, resource management, and more, enabling developers to focus on creativity without getting bogged down by technical complexities.

  • Doodle Editor: A user-friendly editor that facilitates scene and resource management, complete with preview and debugging capabilities. This tool empowers creators to visualize their ideas in real-time.

To enhance flexibility and ease of development, Python is employed as the scripting language, leveraging its robust ecosystem and simplicity. Doodle Engine embodies the spirit of creativity and exploration, allowing developers to experiment freely and bring their imaginative concepts to life.


Screenshot

📁 Repository Structure

Doodle/
├── .clang-format
├── .clang-tidy
├── .clangd
├── .gitattributes
├── .gitignore
├── Doodle/
│   ├── pybind11/
│   │   ├── Bindings.cpp
│   │   ├── ...
│   ├── src/
│   │   ├── Application/
│   │   │   ├── Application.cpp
│   │   │   ├── ...
│   │   ├── ...
│   └── ...
├── Sandbox/
│   ├── src/
│   │   ├── main.cpp
│   │   ├── ...
│   └── ...
└── assets/
    ├── fonts/
    ├── icons/
    ├── models/
    ├── shaders/
    ├── textures/
    └── ...

🚀 Getting Started

Requirements

Ensure you have the following dependencies installed:

  • C++ Compiler (e.g., MSVC for Windows)
  • Xmake (C++ build system and package manager)

Installation

  1. Clone the repository:
git clone https://github.com/Candlend/Doodle
cd Doodle
  1. Install Xmake if you haven't already. You can find installation instructions here.

  2. Build the project:

xmake

Running the Engine

After building, you can run the engine with:

xmake run

🔍 Project Roadmap

  • Component-Based Architecture
  • Entity Conponent System
  • Implement basic rendering pipeline
  • OpenGL backend
  • ImGui-based Interface System
  • Python scripting (WIP)
  • Animation System
  • Advanced rendering techniques
  • Cross-platform support

📜 License

This project is licensed under the Apache License v2.0 - see the LICENSE file for details.


🏆 Acknowledgments

Special thanks to the following projects for their invaluable references and inspiration for Doodle Engine:

3rd Parties Libraries

  • fmt: A fast and safe formatting library.
  • Assimp: A library for importing various 3D model formats.
  • Boost: A collection of libraries that provide support for tasks and structures such as smart pointers, threading, and file systems.
  • stb: A collection of single-header libraries for image loading and other functionalities.
  • spdlog: A fast C++ logging library.
  • nlohmann_json: An easy-to-use C++ JSON library.
  • GLFW: A library for creating windows and handling input.
  • Glad: An OpenGL loader library that simplifies the use of OpenGL functions.
  • GLM: A mathematics library designed for graphics programming.
  • EnTT: A high-performance entity-component-system (ECS) library.
  • ImGui: An immediate mode graphical user interface library.
  • ImNodes: A library for creating node-based graphical interfaces.
  • ImGuizmo: A tool for providing transformation controls within ImGui.
  • pybind11: A library for binding C++ code to Python.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published