## Aperçu ##

This project is to create a modular game engine that accommodates a 2D side-scrolling tilemap platformer, and a game that runs on top of it.

The project is divided into two parts: **Terrarum the Game Engine** and **Terrarum the actual game**.

## Terrarum the Game Engine ##

This game engine aims to provide following features:

- Tiled lighting simulation with transmittance sim in full RGB and UV for fluorescence
- Corner Occlusion
- 2D Skeletal Sprite
- Built-in Mod support
- Simple AABB Physics
- Fluid simulation based on Cellular Automata
- Built-in multilingual font — please refer to [its own Repository](https://github.com/curioustorvald/Terrarum-sans-bitmap)

## Terrarum the Actual Game ##

*Terrarum* is a side-view tilemap platformer-adventure-sandbox game.

## Player Setup ##

### System Requirements ###
Requires 64 bit processor and operation system.
| | Minimum | Recommended |
|---|---|---|
|OS|Windows 7/macOS Sierra/Ubuntu 16.04|Windows 10/macOS Big Sur/Linux with Kernel 5.4|
|CPU|AMD Phenom X4 9600/Intel Core 2 Duo E8400|AMD Ryzen 5 1500X/Intel Core i7-4770K/Apple M1|
|Memory|4 GB RAM|8 GB RAM|
|OpenGL|3.3|4.0|
|Graphics|GeForce 9600 GT|Anything that supports OpenGL 4.0|
|Storage|2 GB available|2 GB available but faster|

- Playing the game on the Minimum Requirement is ill advised: framerate will be sub-20 and the world generation will take more than 10 minutes

## Development Environment ##

- Requirements:
    - JDK 17 or higher
    - IntelliJ IDEA Community Edition

Kotlin runtimes must be downloaded using the IntelliJ IDEA. All other libraries are included in the repository.

The project includes modified version of the GraalVM-JS, in which the only difference is the `regex-22.3.1-edit.jar` is a modification of `regex-22.3.1.jar` where the only difference is its `MANIFEST.MD`

## Copyright ##

Please refer to [```COPYING.md```](COPYING.md) but it's mostly GPL 3.
