ona/readme.md

60 lines
2.1 KiB
Markdown
Raw Normal View History

2023-02-18 04:34:40 +01:00
# 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)
2023-02-20 14:41:33 +01:00
1. [Module Conventions](#module-conventions)
2023-02-18 04:34:40 +01:00
## Overview
2023-02-20 14:41:33 +01:00
Ona is a straightforward game engine with the aim of staying reasonably lightweight through a modular architecture.
2023-02-18 04:34:40 +01:00
Ona is also the Catalan word for "wave".
## Goals
2023-04-19 01:34:06 +02:00
* Fully-featured two-dimensional raster and vector rendering capabilities.
2023-02-18 04:34:40 +01:00
2023-04-19 01:34:06 +02:00
* Support major computer gaming ecosystems; Namely Microsoft Windows, SteamOS, GNU Linux systems running on X11 or Wayland, and the web.
2023-02-18 04:34:40 +01:00
2023-04-19 01:34:06 +02:00
* Minimize external dependencies.
2023-02-18 04:34:40 +01:00
* Be lightweight in base engine memory usage and disk size.
2023-04-19 01:34:06 +02:00
* Provide utilities for handling rendering but otherwise leave the higher-level game logic data structuring to the programmer.
2023-02-18 04:34:40 +01:00
2023-04-19 01:34:06 +02:00
* 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.
2023-02-18 04:34:40 +01:00
* 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:
2023-04-19 01:34:06 +02:00
* Operating system with support for SDL2 at version 2.0.20 or above.
* Zig compiler toolchain.
2023-02-18 04:34:40 +01:00
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.
2023-02-20 14:41:33 +01:00
##### 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.