Skip to content

scara2016/callisto-test

 
 

Repository files navigation

Callisto Engine

Desktop game engine written in Odin.

Engine documentation (WIP) Galileo asset format documentation

Creating an application

An example application can be found at Bazzas-Personal-Stuff/callisto-sandbox.

Add the engine somewhere to your project and include it in your app. This example will assume the package is a direct child of your root directory, project-root-dir/callisto/

  1. Initialize the engine
  2. Perform your application code
  3. Shutdown the engine
package main

include "callisto"

main :: proc() {
    ok := callisto.init(); if !ok do return
    defer callisto.shutdown()

    for callisto.should_loop() {
        loop()
    }  
}

loop :: proc() {
    // gameplay code here
}

Callisto Debug Utilities

Callisto provides a util package that can help with debugging boilerplate.

package main
include "callisto"
include "core:log"
include "callisto/util"

main :: proc() {
    
    when ODIN_DEBUG {
        context.logger = util.create_logger()
        defer util.destroy_logger(context.logger)

        // A tracking allocator that will print out any bad allocations and/or memory leaks when it is destroyed
        track := util.create_tracking_allocator()
        context.allocator = mem.tracking_allocator(&track)
        defer util.destroy_tracking_allocator(&track)
    }

    log.info("Hellope!")
}

Importing assets

Callisto loads assets using the Galileo file format.

Source assets such as glTF, png, etc. can be imported to the Galileo format using the Callisto Editor (WIP), or using a custom implementation of the format specification.

Implemented features

  • Window abstraction
    • GLFW for desktop platforms
  • Basic input forwarding
  • Game loop
  • Logger

In progress

  • Renderer abstraction
    • Vulkan implementation
    • WebGL implementation
  • Asset file format "Galileo" (.gali)

Project Plan

  • glTF/glb model support
  • HDRI skybox lighting
  • Profiling (Spall)
  • Audio
  • SHIP A GAME
  • Input abstraction / developer console
  • WebGPU renderer implementation?

About

Game engine written in Odin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Odin 97.4%
  • GLSL 2.5%
  • Batchfile 0.1%