DoodlerEngine

DoodlerEngine is a hobby project for learning purposes.
It is not designed for public use, as its workflows are currently not intuitive enough.
Find the C++ engine on my GitHub
The WorldGenerator was made in the engine
Since most of our semester projects turned out to be Unity projects in C#, and I realized the importance of C++ in the gaming industry, I decided to dive deeper into engine programming. I analyzed the engine provided by our lecturer, Valentin Klink, in the „Game Engine Elective course and rewrote it to fully understand every part of it. I then started adding additional systems and features. This project is ongoing, and whenever I find time, I work on new features or develop a game for it. It has significantly helped me understand how C++ can be used in game development.
Overview:
  • Private project (06.2024 – today)
  • Re-write / extention of „Game Engine Elective“-engine
  • Based on SFML (C++)
Important Learnings:
  • Applying learnings of elective and book „Game Engine Architecture“
  • Implement robust and abstract features
  • Documentation
  • Improvement of C++
    • Smart pointers
    • Templates
    • Delegates (callbacks)
    • Multithreading basics
    • Casting
  • CMake basics
How the Engine works:
Visual documentation:
There is no GUI in this engine yet, so as a developer, you need to understand how the engine components work together in order to use them effectively. The visualization above illustrates everything DoodlerEngine offers and how its components are connected (as of the date shown in the image).
The DoodlerEngine (in terms of a Visual Studio solution), consists of two projects: „Engine“ and „Game“. The Game project, which serves as the executable part, depends on the Engine, which functions as a library.
Engine:
The engine contains various systems, predefined entities (e.g., buttons), components, a console debugger, and more. It manages the game loop, updates all systems, and handles the generation and management of entities and components, all happening in the background. This allows non-engine developers to focus on game development without needing to modify the engine code.
Game:
The game project is where non-engine developers create their games. Developers can define scenes (e.g., Main Menu, In-Game Scene), custom entities (e.g., player, world), and, if needed, additional non-entity systems.
Entities can be instantiated within a scene. If the scene goes out of scope (e.g., when switching to another scene), all loaded entities are automatically unloaded before the new ones are loaded.
Game entities can have components (e.g., SpriteComponent) attached to them and can also define their own behavior.
For example, developers can register keyboard inputs in the engine’s InputSystem and define actions to be triggered when a key is pressed.

 

The WorldGenerator was made in the DoodlerEngine. I can’t tell you how proud I was when I got it working.
LSDesign
Datenschutz-Übersicht

Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzererfahrung bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie das Wiedererkennen von dir, wenn du auf unsere Website zurückkehrst, und hilft unserem Team zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.