44 lines
1.4 KiB
Markdown
44 lines
1.4 KiB
Markdown
# Ona
|
|
|
|
## Table of Contents
|
|
|
|
1. [Overview](#overview)
|
|
1. [Goals](#goals)
|
|
1. [Technical Details](#technical-details)
|
|
1. [Requirements](#requirements)
|
|
1. [Building](#building)
|
|
|
|
## 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, Unix-like systems, and the web.
|
|
|
|
* Minimize external dependencies.
|
|
|
|
* Provide utilities for handling rendering but otherwise leave the higher-level game logic and data structuring to the programmer.
|
|
|
|
* Enforce an architecture that makes non-interdependent logic trivially parallelizable.
|
|
|
|
## Technical Details
|
|
|
|
### Requirements
|
|
|
|
Ona currently depends the following third-party tools to build it:
|
|
|
|
* Platform support for SDL2 at version 2.0.20 or above.
|
|
* SPIR-V shader compilation system utilities, namely `glslangValidator` and `spirv-link`.
|
|
* 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 `zig build` to build everything.
|