Urho3D is a cross-platform 3D game engine written in C++. It uses a component-based scene graph to compose game objects from nodes and attached components, separating transforms from behaviors for modular design. The engine integrates AngelScript and Lua scripting for game logic, uses the Bullet library for physics simulation, and renders scenes with OpenGL or Direct3D through forward, deferred, or light pre-pass pipelines with customizable render passes and shadow mapping.
The engine distinguishes itself with a built-in visual scene and UI editor for composing 3D worlds and interface layouts, and a CMake-based build system that supports cross-compilation via Docker containers to targets including WebAssembly and Apple TV. It provides full multiplayer networking with UDP-based scene replication, state synchronization, and NAT punchthrough, as well as dynamic navigation meshes with crowd management for AI pathfinding, inverse kinematics for character posing, and a wide range of animation tools spanning skeletal rigs, sprite sequences, and property keyframing.
Beyond its core, Urho3D includes audio playback with volume category management, comprehensive input handling for keyboard, mouse, joystick, touch, and gestures, a complete UI system with pre-built widgets and XML-based layout loading, particle effects, tile map support, and resource management with asynchronous loading and packaging. It also offers database connectivity, HTTP requests, debugging overlays, logging, profiling, and an interactive script console.
The engine is distributed as a C++ library that can be integrated via CMake, with pre-built modules and toolchains for desktop, mobile, console, and web platforms.