Modern C++ Library for Axonometric Rendering Engine
McLaren is a C++ game engine specializing in isometric rendering. Built on top of SFML, it provides window management, input handling and 2D rendering using only point drawing.
- Cross-Platform: Runs on Windows, Linux, and macOS.
- Isometric Rendering: True isometric projection with depth sorting.
- Sprites: Animated objects and any sprite sheets.
- Dynamic Shadows.
- Entity Component System: Convenient game object management with entt library.
- Performance Optimized:
- running the render in a separate thread;
- initialization of static objects before the rendering loop;
- view culling for entity.
Wolf Meadow is a sample game demonstrating McLaren's capabilities.It utilizes isometric sprites from Pixel Isometric Tiles pack. In this interactive simulation, wolves roam dynamically across a meadow. The demo shows how you can move around the main character, the wolf. How another wolf follows him, and how two other wolves move independently on the map. The demo also shows the quality of the image, navigates around specified obstacles (boulders, water) and the displays shadows and their overlapping.
McLaren provides a clean, intuitive API for game development:
- Creating a scene through the iLoop interface.
- Adding your own components.
- Support for animations, input/output, shadow settings, etc. through ready-made components.
For more detailed information, you need to study the engine code and its documentation.
If you use Linux, install SFML's dependencies using your system package manager. On Ubuntu and other Debian-based distributions you can use the following commands:
sudo apt update
sudo apt install \
libxrandr-dev \
libxcursor-dev \
libxi-dev \
libudev-dev \
libfreetype-dev \
libflac-dev \
libvorbis-dev \
libgl1-mesa-dev \
libegl1-mesa-dev \
libfreetype-dev./scripts/build.sh --releaseIf you want to build without tests:
./scripts/build.sh --release --without-tests./scripts/play.sh./scripts/test.sh- Maxim Rodionov: GitHub, Telegram
- Dmitri Chirkov: GitHub, Telegram
- Nikita Shchutskii: GitHub, Telegram
- Vladimir Zaikin: GitHub, Telegram
Please read our Contributing Guide for details on our code style, commit message conventions, and pull request process.
Distributed under the MIT License. See LICENSE for more information.
