A 3D Game Engine utilizing DirectX 12, PhysX SDK 5.0, and C# scripting.
This engine was developed as an educational project as part of the curriculum at ITMO University.
Physics Demo | Lightings Demo |
---|---|
GPU Partice System | Behavior Tree Game |
---|---|
Split Screen Game |
---|
- Flexible management of D3D12 resources, similar to DiligentEngine
- Abstraction of the
DirectX 12
Graphics API for high-level modules - Deferred rendering
- Directional Cascaded Shadow Maps
- Percentage-Closer Filtering (PCF)
- Phong lighting (directional, point, and spotlight)
- Skybox with specular reflections
- Tone mapping
- Ray picking
- Multiple camera rendering
- GPU-based particle system
- Async Compute particle system
- Particle system with screen-space collision
- Material system
- Async rendering of Editor and Runtime
- More on Wiki
- Abstraction of the
PhysX SDK
for high-level modules - Static and dynamic rigidbodies
- Box, sphere, and capsule colliders
- Box, sphere, and capsule triggers
- Collision and trigger events
- Physics materials
- More on Wiki
- GameObject and component system
- Fields can be marked as editable in the editor (similar to
SerializeField
in Unity) Color
,Range
, and other attributes- Asset references can be assigned from the editor
- Keyboard and mouse input API
IColliderCallback
interface- Extensive API for modifying parameters of built-in components such as
Renderer
,Rigidbody
,Light
, and others - Support for any .NET libraries in scripts
- More on Wiki
- Support for script, texture, mesh, material, and scene assets
- Generate Meta files with GUIDs for all assets
- Uses
FileSystemWatcher
for automatic asset resolution - Allows renaming and moving assets without breaking scene and material references
- More on Wiki
- Utilizes docked
IMGUI.NET
andIMGUIZMO.NET
libraries - Displays all project assets
- Texture and mesh previews in the editor
- Material editor
- Drag-and-drop functionality in the hierarchy window to change parent objects
- Add and remove custom scripts to/from GameObjects
- Editor and Play modes
- Includes an
EDU_NO_EDITOR
flag to enable running the engine without loading editor resources - More on Wiki
In progress...
In progress...