Check out the Documentation OUTDATED!
- Macos with Clang (not tested but it compiles)
- Windows with visual studio and cl
- Ubuntu with Clang ️
- Reflection system
-
- Methods
-
- Properties
-
- Automatic pkpy binding generation.
-
- Constructors
- Custom STL (standard Library)
-
- String
-
- Vector
-
- HashMap
- Nodes
-
- Node
- Scripting.
-
- Loading Dll's / c++ scripts.
- Solid Serialization System.
-
- Saving most objects to yaml.
-
- Loading most objects from yaml.
-
- Saving most objects to binary.
-
- Loading most objects from binary.
-
- Support for (custom) STL objects (string, vector, hashmap)
- Renderer (High level):
-
- Shadows.
-
- GLTF loader.
-
- PBR render pipeline.
-
- (Skeleton) Animations.
- Resource manager
-
- Finding files only by Name not a path.
-
- Moving and copying files / folders to projects.
-
- Baking Assets for faster loading (Models, textures, sounds).
-
- Automatically passing along the asset to their corresponding manager.
- Sound Engine
-
- Copy from Quack engine.
-
- Better audio settings.
-
- Better steam audio integration.
-
- Effects such as fall-off.
-
- More optimization
- Good Input System
-
- Ability to define actions.
-
- Binding both controller input and keyboard / mouse input to actions.
-
- API func that only returns true when an action is pressed initially
- Utils
-
- Commands.
-
- Debug camera
-
- A tweening API.
- Editor
-
- Inspecting/Editing any object registered to the registry.
-
- TreeView: window where you can create,edit,select,delete nodes.
-
- Console window.
-
- World View tab
-
- Asset browser.
-
- Undo/redo
-
- Copy/paste
- Launcher
-
- Creating Projects.
-
- Index window with all created projects.
-
- Upgrading projects to newer versions.
-
- Exporting Projects.
Catos uses/depents allot on its own custom reflection system. The system is written across: registry.h, typeinfo.h, property.h, method.h
The reflection system support any fundemental type and some special types, such as catos::vector and std::unordered_map .
Powered by the reflection system, Catos can write most cpp classes to both yaml and binary(WIP). It can also later read them back from yaml and binary. Yaml is meant to be used for the editor so that any errors/corrupted files can be easily read and fixed. Binary is for exported games and meant for loading objects fast.
Catos's renderer is meant to be customized for any situation. Instead of being a out of the box solution its more of a dynamic framework, with which the user can create their own render pipelines and passes.
- 200-299 are codes from the player
- 100-199 are codes from the core engine
- 300-399 are codes from the editor
- SDL3
- rapidyml
- imgui
- spdlog
- stb_image
