/indigo-ge

A C++ SFML-Based 2D Game Engine.

Primary LanguageC++GNU General Public License v2.0GPL-2.0

Indigo

A 2D Game Engine for building a variety of 2D games

Current Version: v0.0.1

Created: 2019-03-20

Updated: 2021-01-17


Table of Contents


Dependencies

This project was built for Ubuntu 20.04 using the following tools and libraries:

  • SFML v2.5.1 using C++ 11
  • GNU G++ v7.3.0 C++ Compiler
  • Catch2 v2.13.3 Unit Testing Framework
  • FakeIt v2.0.5 C++ Mocking Framework
  • *VcXsrv v1.20.8.1 WSL2 X-Server

*Only required if running Indigo games in WSL2

Use of Ubuntu 20.04 via WSL2 with BASH is also possible. Installation/setup instructions for this are the same as those in the Linux section.


Prerequesites

This section will go over initial configuration steps required for the setup section. Make sure to complete this section before proceeding to Setup.

Catch2 Setup

  1. A single-file header for Catch2 v2.13.3 is already included under test/lib/catch2/catch.hpp.

  2. However, you may use any other compatible version by replacing the file in that directory.

    • Make sure to name the file "catch.hpp".

FakeIt Setup

  1. A single-file header for FakeIt v2.0.5 is already included under test/lib/fakeit/single_header/catch/fakeit.hpp. However, you will need to create the file test/lib/fakeit/config.txt and place the following content inside it:

    ./test/lib/fakeit
    
  2. However, you may use any other compatible version by replacing the file in that directory.

    • Make sure to name the file "fakeit.hpp".

Setup

Make sure you have completed the Prerequesites section before proceeding.

Linux

Setup on Ubuntu Linux systems can be done through the following steps:

Verify Environment Utilities

  • Use the setup script to verify that the required setup tools and utilities are installed:

    ~$ cd ./setup
    ~$ ./setup.sh -V
  • Once required setup tools and utilities are installed, you can begin setup below.

    • If verification fails or your system is not Ubuntu Linux, you will have to perform Manual Setup.

Quick Setup

  • Dependency setup and installation can be done automatically by running the setup script:

    ~$ cd ./setup
    ~$ ./setup.sh -i
  • If automatic installation fails, try manual installation described below.

Manual Setup

  • Acquire SFML v2.0.5 via any of the following means:

    • Visit the SFML website, download a compatible version and install it in your system.

    • Use your system's package manager (e.g. apt, yum, etc.) to acquire and install a compatible version.

  • If you would like to use a different Catch2 version:

    • Visit Catch2 on Github, download the desired single-header version, then save the resulting catch.hpp file under indigo/test/lib/catch2/catch.hpp (create the directory if it doesn't exist).

Test Installation

  • Be sure to do a test run of your SFML installation by using the setup script:

    ~$ cd ./setup
    ~$ ./setup.sh -t
  • This will attempt to compile and run a sample SFML GUI application on your system.


Release Notes

  • 2021-01-17 (For Ubuntu WSL2 only)
    • Support for sound using VcXsrv is TBD.
  • 2020-11-20 (For Ubuntu WSL2 only)
    • Ubuntu 20.04 under WSL2 does not come pre-packaged with an environment to render any GUIs.
      • However, you can forward the rendering to your primary OS (i.e. Windows 10) via an X-Server, allowing you to run an Indigo game GUI by "proxy".
      • Install VcXsrv and configure it to run in your WSL2 system before starting setup.
    • If you are using WSL2 during a test run with "./setup.sh -t":