A 2D Game Engine for building a variety of 2D games
Current Version: v0.0.1
Created: 2019-03-20
Updated: 2021-01-17
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.
This section will go over initial configuration steps required for the setup section. Make sure to complete this section before proceeding to Setup.
-
A single-file header for Catch2 v2.13.3 is already included under
test/lib/catch2/catch.hpp
. -
However, you may use any other compatible version by replacing the file in that directory.
- Make sure to name the file
"catch.hpp"
.
- Make sure to name the file
-
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 filetest/lib/fakeit/config.txt
and place the following content inside it:./test/lib/fakeit
-
However, you may use any other compatible version by replacing the file in that directory.
- Make sure to name the file
"fakeit.hpp"
.
- Make sure to name the file
Make sure you have completed the Prerequesites section before proceeding.
Setup on Ubuntu Linux systems can be done through the following steps:
-
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.
-
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.
-
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 underindigo/test/lib/catch2/catch.hpp
(create the directory if it doesn't exist).
- Visit Catch2 on Github, download the desired single-header version, then save the resulting
-
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.
- There are some caveats with this; see the 2020-11-20 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
":- You may need to update your WSL2 firewall settings to allow SFML to forward its video output to Windows
- See X11 Forwarding on WSL2 - StackOverflow for more details
- Ubuntu 20.04 under WSL2 does not come pre-packaged with an environment to render any GUIs.