Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

156 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fresh baked cookies!

Simple game engine written in Odin with a focus on ease of use & extensibility.

Designed to support desktop and web out of the box, though it will likely run anywhere with some tweaks.

Vendored binaries & build scripts are provided for Windows. The web build is using native web technologies and should run on any modern browser. To build/run on any other platform, simply make sure you have SDL3 and its dependencies installed.

Special thanks to the SDL team for their commitment to easy cross-platform game libraries!

Honorable mention as well to W3C for WebGPU & WebAudio, and their committment to open standards.

Current features:

  • WebGPU renderer (same feature set on desktop & web)
    • 2D/3D agnostic - sprites in 3D, polygons in 2D
    • full PBR lighting shader
    • shadow mapping with PCF, shadows optional on every light
    • skeletal animation + weighted blending of multiple animations
    • weighted/blended OIT for overlaping translucents
    • automatic batching/instancing for all draws
    • native multi-camera support (for splitscreen, VR, 3D displays, etc)
    • frustum culling per camera
    • basic UI primitives (textured quads + text)
    • OTF font support for both UI & 3D views
  • window creation/main loop handling unified for both desktop and web
  • fixed timestep for game updates & variable rate for drawing (‘fast vsync’ if available)
  • keyboard & mouse input
  • basic audio (sound + music loading, playback, looping, fading, spatialization)
  • multithreaded actor system with message passing
  • basic spatial querying/collision detection
    • 3D Grid with fast nearby/distance queries
    • Sphere, Capsule, AABB, Convex_Hull, Tri_Mesh
    • simple quake-style move-and-slide kinematics over Tri_Mesh colliders
  • resource manager, can auto-populate structs with loaded resources
    • can save/load those structs from json as well
    • can also embed resources into the executable
  • file format support:
    • textures
      • png & jpg supported on both desktop & web, other formats vary by platform
    • static meshes
      • obj
    • scenes/animated meshes:
      • gltf
    • audio:
      • ogg, wav, mp3 supported on both desktop & web, other formats vary by platform

Planned major features:

  • exporting engine functionality to shared libraries
  • FFI wrappers for various scripting languages (Python for my wife)
  • dynamic mod loading on desktop platforms
  • deterministic gamestate, serializability, saving and loading
  • minor features listed in TODO.org

Not planned:

  • level editors/high level format support (other than glTF)
  • GPU/vendor/OS specific features

About

Personal Odin Game Engine

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages