Skip to content

thatalloguy/Catos

Repository files navigation

Catos Engine

Language

image

my personal cross-platform game engine

Check out the Documentation OUTDATED!

Compiles on:

  • Macos with Clang (not tested but it compiles)
  • Windows with visual studio and cl
  • Ubuntu with Clang ️

ToDo


  • 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.

Current Features:

reflection system

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 .

Serialization system.

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.

Modern renderer.

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.

Error codes and their meanings:

  • 200-299 are codes from the player
  • 100-199 are codes from the core engine
  • 300-399 are codes from the editor

Star History

Star History Chart

Dependencies

  • SDL3
  • rapidyml
  • imgui
  • spdlog
  • stb_image

About

My personal Game Engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors