60 lines
2.1 KiB
Markdown
Executable File
60 lines
2.1 KiB
Markdown
Executable File
# Ona
|
|
|
|
## Table of Contents
|
|
|
|
1. [Overview](#overview)
|
|
1. [Goals](#goals)
|
|
1. [Technical Details](#technical-details)
|
|
1. [Requirements](#requirements)
|
|
1. [Building](#building)
|
|
1. [Project Structure](#project-structure)
|
|
1. [No Headers](#no-headers)
|
|
1. [Module Conventions](#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.
|