HawkEngine is a game engine built in C++20, featuring C# scripting via Mono and a robust ImGui-based editor. It supports advanced rendering, animation, audio, physics, and UI systems, making it ideal for both 2D and 3D game development.
- Skeletal Animation: Import and play skeletal animations with support for multiple animation clips, blending, and real-time control. The engine supports bone hierarchies and GPU skinning for efficient character animation.
- Animator Component: Attach to GameObjects to manage animation states, transitions, and parameters, enabling complex character behaviors.
- FMOD Integration: Leverage FMOD for high-quality audio playbook, including 2D/3D sound, spatialization, and real-time effects.
- Audio Components: Add sound sources and listeners to GameObjects, with support for music, ambient sounds, and SFX.
- Audio Manager: Centralized control for all audio events, volume, and playback states.
- ImGui-based Editor: Fast, responsive, and fully customizable editor interface using ImGui.
- Dockable Panels: Includes Hierarchy, Inspector, Console, Scene View, Game View, Asset Browser, and more.
- Theme Support: Easily switch between color schemes and layouts.
- Component Editing: Inspect and modify all GameObject components in real time.
- Property Reflection: Automatic display and editing of properties for both C++ and C# components, supporting custom editors.
- Asset Browser: Browse, import, and manage assets such as models, textures, audio files, and scripts.
- Drag & Drop: Assign assets to GameObjects and components via drag-and-drop for rapid iteration.
- Scene Graph Visualization: View and manage the parent-child relationships of all GameObjects in the scene.
- Multi-Selection & Grouping: Select, group, and manipulate multiple objects simultaneously.
- Scene Viewport: Real-time rendering of the scene with camera controls, gizmos, and object manipulation.
- Game Viewport: Preview the game as it will run, including UI overlays and post-processing effects.
- Log Output: View engine logs, warnings, and errors in real time.
- Command Input: Execute engine commands and scripts directly from the console.
- Unified Input Handling: Keyboard, mouse, and gamepad support using SDL.
- Custom Bindings: Map actions to keys or buttons for flexible and user-friendly controls.
- Scene System: Create, load, and save multiple scenes with full support for undo/redo.
- Serialization: Save and load scenes in both YAML and binary formats for flexibility and performance.
- Prefab System: Create reusable GameObject templates for rapid prototyping.
- Built-in Components:
- Camera, Light, MeshRenderer, Transform, ParticleFX, ScriptComponent, Physics (RigidBody, Colliders), UI (Canvas, Image, Button, Text, etc.)
- Asset Caching: Efficient loading and reuse of meshes, textures, materials, and audio.
- Hot Reloading: Update assets in the editor without restarting the engine.
- Mono Integration: Write gameplay logic in C# with full access to engine APIs.
- Live Reloading: Hot-reload scripts during development for rapid iteration.
- Component Model: Attach C# scripts as components to GameObjects, supporting inheritance and custom logic.
- Animation Tweens: Smoothly interpolate values for UI, transforms, and more.
- Custom Easing: Support for various easing functions to create natural motion.
- Preset Library: Built-in particle presets (smoke, fire, explosions, etc.) for quick effects.
- Custom Emitters: Create and configure new particle effects with full control over emission, shape, and animation.
- Instanced Rendering: Efficient GPU-based particle rendering for high performance.
- Bullet Physics Integration: Realistic rigid body dynamics, collision detection, and constraints.
- Collider Components: Box, Sphere, Capsule, and Mesh colliders for versatile physical interactions.
- Physics Materials: Control friction, restitution, and mass for each object.
- UI Canvas: Hierarchical UI system for HUDs, menus, and overlays.
- UI Components: Image, Button, Text, and custom widgets, all editable in the editor.
- Editor Integration: Design and preview UI layouts directly in the editor.
- Marco Di Modica @MarcoDiModica
- Pau Mora @Peluchomp
- David Lastra @DavidLastra8
- Ivo Montes @Ivomm9
- Didac Garcia @D1dii
- Alex Becerra @Bonifacioo04
- Marc Avante @MarcoXAvante
- Samuel Martinez @Samu163
- Jordi Tur @Jordopol
- Marco Baldan @Marco-v-Baldanll
- Joan Marques @joanmarquesmesses
- Noel Colon @Noelswag
- Salva Bernades @SavaBernades
- Yiwey ye @Yeeway69
- Biel Linan @Drauguer
- Miguel Tamano @migon25
- Pablo Longaron @PabloL2003
- Daniel Berrio @Onnda
- Pol Celaya @pcelaya
- Justo Tiscornia @Jusstox
- Andrea Dona @poderoculto5
- Sergi Gantzer @sgantzer12
- Oliver @Esnaiper
For more information, visit the HawkEngine GitHub Repository.