Skip to content

Real-Ratty-Games/Tudo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

193 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tudo Engine

About

Tudo game engine middleware.

Features

  • Core:
    • ini file reading/writing
    • alarm driven event system
    • fixed-timestep clock
    • program interface
  • Draw:
    • shader loading & compiling
    • framebuffer managing
    • pipeline interface
    • renderer interface
    • advanced 2d-sprite/3d-billboard renderer
      • draw color quad
      • draw sprite
      • draw sprite atlas
      • draw sprite instanced
      • draw sprite atlas instanced
      • draw sprite font text
      • draw sprite sheet animation
    • 3d model renderer interface
      • basic 3d color mesh renderer
      • basic 3d unlit mesh renderer
  • Math:
    • vector 2d
    • vector 3d
    • vector 4d
    • matrix 4x4
    • quaternion
    • 2d mesh triangulation
    • transformation
      • translate
      • scale
      • rotate
      • quat from axis angle
      • quat from euler angles
      • quat add euler rotation
    • projection
      • look at lh
      • project ortho lh
      • project persp lh
    • screen location to world location
    • 2d collision
      • aabb
      • circle
    • 3d collision
      • aabb
      • sphere
  • Networking:
    • tcp server/client
    • udp server/client
  • OS:
    • multiple windows
    • keyboard, mouse and gamepad input
    • audio (via soloud)
  • Resources:
    • simple binary archive
    • 3d model loading (custom gpu-friendly format)
    • automatic texture mipmap generation
  • Engine:
    • Actor
    • World

Building

Supported Platforms:

  • Windows 10 x64
  • macOS arm64

Requirements:

  • python3
  • cmake

After cloning the repository, navigate to the Project directory and generate the solution using CMake. This step requires Python3 to be installed on your system.

Next, open the generated solution in either VS2022 or Xcode and build the project.

If you encounter a runtime error on startup, it is likely because the shaders have not yet been compiled. In that case, you must first compile them using the offline tool SHDC.

On macOS, ensure that the Data folder (including all its contents) is copied into the application’s Resources directory.

Solution Structure

The solution is split into two projects: Tudo and Game.

Tudo is a static library with all the systems, while Game is the main project where the game is built on top of it.

Engine Design

The engine is designed to be highly modular. You are responsible for implementing your own scene management and graphics pipeline (or build on top of the existing Actor/World system). Create a DrawPipeline interface and use the existing renderer classes (or implement your own) to draw primitives.

The overall architecture is up to you. Tudo only provides the essential tools and interfaces.

SHDC

This is a small utility tool for automatically locating and compiling shaders. It supports compilation for D3D and SPIR-V on Windows, and Metal on macOS.

Valid Arguments: 	<shader path> 	<dev path>
example use:		Data/Shaders	Data/Development/Shaders

to build at default path:

-d

M3DC

This is a small utility tool that converts 3D files from modeling software into a format supported by Tudo.

Valid Arguments: 	<input> 	<output>
example use:		box.obj		box.m3d

Third-party libraries used: