Skip to content

thatalloguy/Catos

Repository files navigation

Catos Engine

Language Language

image

modern lightweight cpp game engine

Check out the Documentation

ToDo


  • Reflection system
    • Methods
    • Properties
    • Automatic pkpy binding generation.

  • Custom STL (standard Library)
    • String
    • Vector
    • HashMap

  • Entity Model
    • Worlds.
    • Entities.

  • Scripting.
    • Loading python scripting.
    • exposing cpp api to python.

  • Renderer (Low level).
    • Ability to create new RenderPasses.
    • Ability to create new pipelines.
    • Ability to bind objects to pipelines / passes.
    • More general control over the entire render pipeline.

  • Renderer (High level):
    • Shadows.
    • GLTF loader.
    • PBR render pipeline.
    • (Skeleton) Animations.

  • Solid Serialization System.
    • Saving most objects to json or binary.
    • Loading most objects from json or binary.
    • Support for (custom) STL objects (string, vector, hashmap)

  • 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

  • Nodes
    • Camera3D
    • Mesh3D
    • RigidBody3D
    • Collider3D
    • Attaching scripts to nodes.

  • A tweening API.

  • Utils
    • Commands.
    • Debug camera

  • UI system.
    • Kinda like HTML.

  • Editor
    • Node manipulation.
    • Project management.
    • World View tab
    • Asset browser.
    • Undo/redo
    • Copy/paste

Dependencies

- doctest

- fastgltf [ V0.7.2 ]

- glfw

- imgui

- pocketpy / gsoc24 (Experimental)

- spdlog

- stb_image

- GLAD (gl 4.2)