Parallel-by-default game framework written in Zig
Go to file
kayomn 946c67f154 Add way to remove elements from dense slot maps 2023-05-07 14:39:15 +00:00
.vscode General fixes 2023-05-06 01:47:52 +00:00
debug General fixes 2023-05-06 01:47:52 +00:00
source Add way to remove elements from dense slot maps 2023-05-07 14:39:15 +00:00
.drone.yml General fixes 2023-05-06 01:47:52 +00:00
.gitignore General fixes 2023-05-06 01:47:52 +00:00
build.zig General fixes 2023-05-06 01:47:52 +00:00
readme.md General fixes 2023-05-06 01:47:52 +00: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 a 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.