Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
96 changes: 96 additions & 0 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Sample workflow for building and deploying a Hugo site to GitHub Pages
name: Deploy Documentation

on:
# Runs on pushes targeting the default branch
push:
branches:
- main

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

# Default to bash
defaults:
run:
shell: bash

jobs:
# Build job
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.147.2
HUGO_ENVIRONMENT: production
TZ: America/Los_Angeles
steps:
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Install Dart Sass
run: sudo snap install dart-sass
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Install Node.js dependencies
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
- name: Cache Restore
id: cache-restore
uses: actions/cache/restore@v4
with:
path: |
${{ runner.temp }}/hugo_cache
key: hugo-${{ github.run_id }}
restore-keys:
hugo-
- name: Configure Git
run: git config core.quotepath false
- name: Build with Hugo
run: |
cd Documentation \
&& hugo \
--gc \
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/" \
--cacheDir "${{ runner.temp }}/hugo_cache"
- name: Cache Save
id: cache-save
uses: actions/cache/save@v4
with:
path: |
${{ runner.temp }}/hugo_cache
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./Documentation/public

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
5 changes: 5 additions & 0 deletions Documentation/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*.test
imports.*
dist/
public/
.hugo_build.lock
5 changes: 5 additions & 0 deletions Documentation/archetypes/default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
+++
date = '{{ .Date }}'
draft = true
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
+++
Empty file added Documentation/assets/.gitkeep
Empty file.
11 changes: 11 additions & 0 deletions Documentation/content/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
+++
title = 'Overload Documentation'
+++

<a href="Home"><img src="https://user-images.githubusercontent.com/33324216/94347436-2116a980-0002-11eb-8d9d-1e9a314eab6d.png" width=256/></a>

### Welcome to the Overload documentation!

The goal of this documentation is to help you getting started with Overload, experimenting, and building your very own games with Overload.

If you need any help with Overload, feel free to join our [Discord](https://discord.gg/wqe775s) server!
19 changes: 19 additions & 0 deletions Documentation/content/samples/Cargo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
+++
title = "Cargo"
+++

![image](https://github.com/user-attachments/assets/cb77cbe4-740f-42fb-a099-fb527cc0caca)

[<img src="https://img.icons8.com/fluent/48/000000/github.png" width=16/> GitHub Repository](https://github.com/Overload-Technologies/Cargo)

A short puzzle demo game that demonstrates gameplay mechanics built using Overload.

### Project files (recommended)
- [For Overload latest](https://github.com/Overload-Technologies/Cargo)
- [For Overload v1.6](https://github.com/Overload-Technologies/Cargo/tree/made-for-overload-v1.6)
- [For Overload v1.5](https://github.com/Overload-Technologies/Cargo/tree/made-for-overload-v1.5)
- [For Overload v1.4](https://github.com/Overload-Technologies/Cargo/tree/made-for-overload-v1.4)
- [All Tags](https://github.com/Overload-Technologies/Cargo/tags)

### Playable builds (less frequently updated)
- [Latest](https://github.com/Overload-Technologies/Cargo/releases)
19 changes: 19 additions & 0 deletions Documentation/content/samples/Showroom.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
+++
title = "Showroom"
+++

![image](https://github.com/user-attachments/assets/f4cd7fca-d410-4fbf-90d1-e23b8ffcf61d)

[<img src="https://img.icons8.com/fluent/48/000000/github.png" width=16/> GitHub Repository](https://github.com/Overload-Technologies/Showroom)

A comprehensive demonstration project that showcases Overload Engine's core features and capabilities.

### Project files (recommended)
- [For Overload latest](https://github.com/Overload-Technologies/Showroom)
- [For Overload v1.6](https://github.com/Overload-Technologies/Showroom/tree/made-for-overload-v1.6)
- [For Overload v1.5](https://github.com/Overload-Technologies/Showroom/tree/made-for-overload-v1.5)
- [For Overload v1.4](https://github.com/Overload-Technologies/Showroom/tree/made-for-overload-v1.4)
- [All Tags](https://github.com/Overload-Technologies/Showroom/tags)

### Playable builds (less frequently updated)
- [Latest](https://github.com/Overload-Technologies/Showroom/releases)
30 changes: 30 additions & 0 deletions Documentation/content/samples/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
+++
title = "Sample Projects"
weight = 2
+++

Overload includes several sample projects designed to help you explore the engine's capabilities and get started with development. These projects demonstrate key features and serve as practical learning resources.

## Using Sample Projects

### Version Compatibility

Before downloading or cloning any sample project, verify your Overload version to ensure compatibility. Sample projects are maintained for the [latest release](https://github.com/Overload-Technologies/Overload/releases), but previous versions remain accessible through Git tags.

### Finding the Right Version

Each sample project uses a structured tagging system to track version compatibility:

**Tag Format:** `made-for-overload-v{version}`

**Example:** For Overload v1.6, look for the `made-for-overload-v1.6` tag.

### Getting the Latest Updates

Tags mark major version upgrades, but projects may receive updates between versions. To find the most recent update for your Overload version:

1. Locate the tag for the **next** version (e.g., `made-for-overload-v1.5` if you're using v1.4)
2. Navigate to the commit immediately before that tag
3. This represents the latest update compatible with your version

**Example:** For the latest Overload v1.4 compatible version, find the `made-for-overload-v1.5` tag and use the previous commit.
4 changes: 4 additions & 0 deletions Documentation/content/scripting/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
+++
title = 'Lua Scripting'
weight = 3
+++
26 changes: 26 additions & 0 deletions Documentation/content/scripting/components/AmbientBoxLight.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
+++
title = 'AmbientBoxLight'
+++

### Description
Represents an ambient light with a box shape

- C++ related class: [`OvCore::ECS::Components::CAmbientBoxLight`](https://github.com/Overload-Technologies/Overload/tree/main/Sources/Overload/OvCore/include/OvCore/ECS/Components/CAmbientBoxLight.h)
- Inherits from lua usertype: [`Light`](../Light)

### Variables
_This usertype has no variables_

### Constructors
|Name|Input|Output|Description|
|-|-|-|-|
|new||`AmbientBoxLight`|Default Constructor|

### Functions
|Name|Input|Output|Description|
|-|-|-|-|
|GetSize|`AmbientBoxLight`:&nbsp;instance<br>|`number`|Returns the size of the box|
|SetSize|`AmbientBoxLight`:&nbsp;instance<br>`number`:&nbsp;size<br>||Defines the size of the box|

### Operators
_This usertype has no operators_
26 changes: 26 additions & 0 deletions Documentation/content/scripting/components/AmbientSphereLight.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
+++
title = 'AmbientSphereLight'
+++

### Description
Represents an ambient light with a sphere shape

- C++ related class: [`OvCore::ECS::Components::CAmbientSphereLight`](https://github.com/Overload-Technologies/Overload/tree/main/Sources/Overload/OvCore/include/OvCore/ECS/Components/CAmbientSphereLight.h)
- Inherits from lua usertype: [`Light`](../Light)

### Variables
_This usertype has no variables_

### Constructors
|Name|Input|Output|Description|
|-|-|-|-|
|new||`AmbientSphereLight`|Default Constructor|

### Functions
|Name|Input|Output|Description|
|-|-|-|-|
|GetRadius|`AmbientSphereLight`:&nbsp;instance<br>|`number`|Returns the radius of the sphere|
|SetRadius|`AmbientSphereLight`:&nbsp;instance<br>`number`:&nbsp;radius<br>||Defines the radius of the sphere|

### Operators
_This usertype has no operators_
24 changes: 24 additions & 0 deletions Documentation/content/scripting/components/AudioListener.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
+++
title = 'AudioListener'
+++

### Description
Represents an audio listener. The distance between audio sources and audio listener will affect the sound
attenuation of spatialized sounds

- C++ related class: [`OvCore::ECS::Components::CAudioListener`](https://github.com/Overload-Technologies/Overload/tree/main/Sources/Overload/OvCore/include/OvCore/ECS/Components/CAudioListener.h)
- Inherits from lua usertype: [`Component`](../Component)

### Variables
_This usertype has no variables_

### Constructors
|Name|Input|Output|Description|
|-|-|-|-|
|new||`AudioListener`|Default Constructor|

### Functions
_This usertype has no functions_

### Operators
_This usertype has no operators_
43 changes: 43 additions & 0 deletions Documentation/content/scripting/components/AudioSource.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
+++
title = 'AudioSource'
+++

### Description
Represents an audio source. Its position in the world is important if the spatial sound settings is on

- C++ related class: [`OvCore::ECS::Components::CAudioSource`](https://github.com/Overload-Technologies/Overload/tree/main/Sources/Overload/OvCore/include/OvCore/ECS/Components/CAudioSource.h)
- Inherits from lua usertype: [`Component`](../Component)

### Variables
_This usertype has no variables_

### Constructors
|Name|Input|Output|Description|
|-|-|-|-|
|new||`AudioSource`|Default Constructor|

### Functions
|Name|Input|Output|Description|
|-|-|-|-|
|Play|`AudioSource`:&nbsp;instance<br>||Plays the attached sounds|
|Stop|`AudioSource`:&nbsp;instance<br>||Stops playback|
|Pause|`AudioSource`:&nbsp;instance<br>||Suspend playback|
|Resume|`AudioSource`:&nbsp;instance<br>||Resume the playback from where it get suspended|
|GetSound|`AudioSource`:&nbsp;instance<br>|`Usertype`|Returns the sound attached to the audio source|
|GetVolume|`AudioSource`:&nbsp;instance<br>|`number`|Returns the current volume|
|GetPan|`AudioSource`:&nbsp;instance<br>|`number`|Returns the pan|
|IsLooped|`AudioSource`:&nbsp;instance<br>|`boolean`|Returns true if the AudioSource is setup to loop|
|GetPitch|`AudioSource`:&nbsp;instance<br>|`number`|Returns the pitch|
|IsFinished|`AudioSource`:&nbsp;instance<br>|`boolean`|Returns true if the audio source sound has finished|
|IsSpatial|`AudioSource`:&nbsp;instance<br>|`boolean`|Returns true if the audio source is spatialized|
|GetAttenuationThreshold|`AudioSource`:&nbsp;instance<br>|`number`|Returns the audio source attenuation threshold (Minimum distance before applying sound attenuation)|
|SetSound|`AudioSource`:&nbsp;instance<br>`Usertype`:&nbsp;sound<br>||Defines the sound to play on the audio source|
|SetVolume|`AudioSource`:&nbsp;instance<br>`number`:&nbsp;volume<br>||Defines the audio source volume|
|SetPan|`AudioSource`:&nbsp;instance<br>`number`:&nbsp;pan<br>||Defines the audio source pan (Left / Right)|
|SetLooped|`AudioSource`:&nbsp;instance<br>`boolean`:&nbsp;loop<br>||Defines if the audio source should loop|
|SetPitch|`AudioSource`:&nbsp;instance<br>`number`:&nbsp;pitch<br>||Defines the audio source pitch (= frequency or playback speed)|
|SetSpatial|`AudioSource`:&nbsp;instance<br>`boolean`:&nbsp;spatial<br>||Defines if the audio source should be spatialized or not|
|SetAttenuationThreshold|`AudioSource`:&nbsp;instance<br>`number`:&nbsp;threshold<br>||Defines the audio source attenuation threshold (Minimum distance before applying sound attenuation)|

### Operators
_This usertype has no operators_
40 changes: 40 additions & 0 deletions Documentation/content/scripting/components/Camera.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
+++
title = 'Camera'
+++

### Description
Represents a camera entity. Its position will determine its view matrix

- C++ related class: [`OvCore::ECS::Components::CCamera`](https://github.com/Overload-Technologies/Overload/tree/main/Sources/Overload/OvCore/include/OvCore/ECS/Components/CCamera.h)
- Inherits from lua usertype: [`Component`](../Component)

### Variables
_This usertype has no variables_

### Constructors
|Name|Input|Output|Description|
|-|-|-|-|
|new||`Camera`|Default constructor|

### Functions
|Name|Input|Output|Description|
|-|-|-|-|
|GetFov|`Camera`:&nbsp;instance<br>|`number`|Returns the field of view of the camera (Perspective)|
|GetSize|`Camera`:&nbsp;instance<br>|`number`|Returns the size of the camera (Orthographic)|
|GetNear|`Camera`:&nbsp;instance<br>|`number`|Returns the distance between the camera and its near plane|
|GetFar|`Camera`:&nbsp;instance<br>|`number`|Returns the distance between the camera and its far plane|
|GetClearColor|`Camera`:&nbsp;instance<br>|`Vector3`|Returns the background color used before rendering the scene with this camera|
|SetFov|`Camera`:&nbsp;instance<br>`number`:&nbsp;fov<br>||Defines the field of view of the camera (Perspective)|
|SetSize|`Camera`:&nbsp;instance<br>`number`:&nbsp;size<br>||Defines the size of the camera (Orthographic)|
|SetNear|`Camera`:&nbsp;instance<br>`number`:&nbsp;near<br>||Defines the distance between the camera and its near plane|
|SetFar|`Camera`:&nbsp;instance<br>`number`:&nbsp;far<br>||Defines the distance between the camera and its far plane|
|SetClearColor|`Camera`:&nbsp;instance<br>`Vector3`:&nbsp;color<br>||Defines the background color used before rendering the scene with this camera|
|HasFrustumGeometryCulling|`Camera`:&nbsp;instance<br>|`boolean`|Returns true if the camera is culling geometry outside of its frustum|
|HasFrustumLightCulling|`Camera`:&nbsp;instance<br>|`boolean`|Returns true if the camera is culling lights outside of its frustum|
|GetProjectionMode|`Camera`:&nbsp;instance<br>|`ProjectionMode`|Returns the projection mode used by the camera (Orthographic or Perspective)|
|SetFrustumGeometryCulling|`Camera`:&nbsp;instance<br>`boolean`:&nbsp;cull<br>||Defines if the camera should cull geometry outside of its frustum|
|SetFrustumLightCulling|`Camera`:&nbsp;instance<br>`boolean`:&nbsp;cull<br>||Defines if the camera should cull lights outside of its frustum|
|SetProjectionMode|`Camera`:&nbsp;instance<br>`ProjectionMode`:&nbsp;mode<br>||Defines the projection mode the camera should be using (Orthographic or Perspective)|

### Operators
_This usertype has no operators_
33 changes: 33 additions & 0 deletions Documentation/content/scripting/components/Component.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
+++
title = 'Component'
+++

### Description
A component is a set of data and behaviours (Entity-Component without systems) that is interpreted by the engine (Or the user)

- C++ related class: [`OvCore::ECS::Components::AComponent`](https://github.com/Overload-Technologies/Overload/tree/main/Sources/Overload/OvCore/include/OvCore/ECS/Components/AComponent.h)
- Inherited by lua usertypes:
- [`Transform`](../Transform)
- [`Camera`](../Camera)
- [`MaterialRenderer`](../MaterialRenderer)
- [`ModelRenderer`](../ModelRenderer)
- [`Light`](../Light)
- [`PhysicalObject`](../PhysicalObject)
- [`AudioListener`](../AudioListener)
- [`AudioSource`](../AudioSource)
- [`PostProcessStack`](../PostProcessStack)
- [`ReflectionProbe`](../ReflectionProbe)

### Variables
_This usertype has no variables_

### Constructors
_This usertype has no constructors_

### Functions
|Name|Input|Output|Description|
|-|-|-|-|
|GetOwner|`Component`:&nbsp;instance<br>|`Actor`|Returns the actor that owns this component|

### Operators
_This usertype has no operators_
Loading