Parallel-by-default game framework written in Zig
Go to file
kayomn d1110d8683 Re-implement Tag metaprogramming utility 2023-04-23 13:40:49 +01:00
.vscode Port back to Zig 2023-04-19 00:25:35 +01:00
debug Port back to Zig 2023-04-19 00:25:35 +01:00
source Re-implement Tag metaprogramming utility 2023-04-23 13:40:49 +01:00
.drone.yml Change Drone script to use the Zig master branch 2023-04-19 00:28:19 +01:00
.gitignore Port back to Zig 2023-04-19 00:25:35 +01:00
build.zig Port back to Zig 2023-04-19 00:25:35 +01:00
readme.md Update readme 2023-04-19 01:34:06 +02:00

readme.md

Ona

Table of Contents

  1. Overview
  2. Goals
  3. Technical Details
    1. Requirements
    2. Building
    3. Project Structure
      1. No Headers
      2. Module Conventions

Overview

Ona is a straightforward game engine with the aim of staying reasonably lightweight through a modular architecture.

Ona is also the Catalan word for "wave".

Goals

  • Fully-featured two-dimensional raster and vector rendering capabilities.

  • Support major computer gaming ecosystems; Namely Microsoft Windows, SteamOS, GNU Linux systems running on X11 or Wayland, and the web.

  • Minimize external dependencies.

  • Be lightweight in base engine memory usage and disk size.

  • Provide utilities for handling rendering but otherwise leave the higher-level game logic data structuring to the programmer.

  • Provide a simple scripting interface for people who want to do something quick and a powerful plug-in API for engine-level extensions and speed-critical application logic.

  • One data serialization and configuration system to rule them all backed by the Kym scripting language.

Technical Details

Requirements

Ona currently depends the following third-party tools to build it:

  • Operating system with support for SDL2 at version 2.0.20 or above.
  • Zig compiler toolchain.

As the project evolves, dependencies on libraries external to the project codebase will be minimized or removed outright to meet the goals of the project as closely as possible.

Building

Once all third-party tools and system-wide dependencies are satisfied, navigate to the root project folder and run the ./build.py Python build script.

By default, the build script will build the engine runtime, required for running games built with Ona, in release-debug mode.

Kym

Scripting language designed around an execution speed-optimized design, and features like first-class support for common mathematic types.

Runtime

Base execution environment for games built using Ona.