Welcome to Terreate Wiki

Welcome to the Terreate documentation. This documentation is intended to provide a comprehensive guide to the Terreate platform, including its features, capabilities, and how to use it.

What is Terreate

Terreate is a 3D game library for C++. This repository is designed for creating 3D games with Vulkan.

If you want to know about the licensing, see licensing section.

Let's start!

Now, let's dive into the journey of Terreate!

Links

Library dependence

Here's the packages that are used in this library.

  • Vulkan

    Vulkan is not a company, nor language, but rather a way for developers to program their modern GPU hardware in a cross-platform and cross-vendor fashion. The Khronos Group is a member-driven consortium that created and maintains Vulkan.
    from Vulkan documentation

  • glfw

    GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc.
    from glfw website

  • OpenAL-soft

    OpenAL Soft is an LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API. It's forked from the open-sourced Windows version available originally from openal.org's SVN repository (now defunct). OpenAL provides capabilities for playing audio in a virtual 3D environment. Distance attenuation, doppler shift, and directional sound emitters are among the features handled by the API. More advanced effects, including air absorption, occlusion, and environmental reverb, are available through the EFX extension. It also facilitates streaming audio, multi-channel buffers, and audio capture.
    from OpenAL-soft README.md

Build dependence

This library uses cmake to build the projects so make sure to install cmake before building this library.

on Windows

Install Vulkan SDK

Vulkan tutorial - Development environment explains how to set it up in detail.

with apt

Install packages below.

  • vulkan-tools
  • libvulkan-dev
  • vulkan-validationlayers-dev
  • spirv-tools

with dnf

Install packages below.

  • vulkan-tools
  • vulkan-loader-devel
  • mesa-vulkan-devel
  • vulkan-validation-layers-devel

with pacman

Install vulkan-devel package.

Building project

Make sure you installed cmake before building.

Build outputs

In this example, build outputs are stored in <REPOSITRY ROOT DIR>/build/ folder.

Cmake options

TERREATE_BUILD_TEST

Default: ON

Specifies whether to build test code.

TERREATE_DEBUG_BUILD

Default: OFF

Specifies whether to build in debug mode. In debug mode, TERREATE_DEBUG_MODE is defined.

Windows & Linux

Make sure you installed dependencies before building.

cmake -S . -B build
cmake --build build

nix installed env

nix develop // if you have direnv this line is not needed.
cmake -S . -B build
cmake --build build

Licensing

License
This repository is provided under the BSD-3-CLAUSE license. So you can use this library whatever you want.
You don't have to contact me to use.

Contact

If you want to contact me, please send an e-mail to upiscium@gmail.com.