This is the JamTemplate for kickstarting your gamejam entry. It will compile C++17 code for native (Win, Linux) and web (webassembly) games. Internally it uses SFML and SDL.
Some games created with this JamTemplate are
- Quasar Rush (Native & Web, A Game By Its Cover 2021)
- Space Turtles (Native, MultiplayerKajam 2021)
- Tricky Tractor (Native, FrankenGameJam 2020)
- Burning Glyphs (Web, 7DFPS 2020)
- Grounded (Native, FrankenGameJam 2019)
and some more at my game portfolio.
- create build directory
build
at root level - open command line (win+r
cmd
) - navigate to the just created build folder
- type
cmake ../
- open project folder in clion
There should be no need for a 32 bit executable anymore. However, if strictly required, perform the steps from above except:
- Get the win32 zip from the sfml website
cmake -A Win32 ../
I run it with WSL, but every system capable of running wegassembly / emscripten should work.
Preconditions:
- have emscripten set up on your machine: See the Getting started page
Setup
emcmake cmake -DENABLE_WEB=ON ../
- on the first run
emmake make
(do not pass-j
, otherwise emscripten will get stuck with pulling libraries) - on consecutive runs:
emmake make -j
http-server .
to start a webserver locally. (needs to be installed separately)- open browser on
http://127.0.0.1:8080/
to test locally
For mac os you have to install cmake and sfml via homebrew: brew install cmake sfml
If you use another package manager or want to install the dependencies yourself, you have to modify the paths
in CMakeLists.txt
.
However as MacOS seems to be pretty picky with installed libraries and packaging an executable is a pain, it is highly recommended to use the Web build to show your game to your Mac friends.
All of those options can be set to ON or OFF via the cmake commandline
ENABLE_UNITTESTS
- Enables gtest and the unit testsENABLE_DEMOS
- Enables the demos (small example programs which showcase a specific theme)ENABLE_WEB
- WebbuildUSE_SFML
- IfON
, SFML will be used, ifOFF
, SDL will be used.ENABLE_COVERAGE
- Compile with the flags set for the coverage runENABLE_AUDIO_TESTS
- Some of the tests rely on a working audio setup, which seemingly cannot be faked easily. This switch disables those sepcific tests, in case no audio is available on the respective machine.ENABLE_CLANG_TIDY
- Enable clang tidy checker
e.g. calling cmake ../ -DENABLE_UNITTESTS=ON -DENABLE_DEMOS=ON
Code Coverage can is reported via coveralls.
Unfortunately there seem to be some artifacts, which lead to a lower than actual coverage.
A local run (Without the artifacts) can be executed via OpenCppCoverage. The command :
OpenCppCoverage.exe --sources C:\projects\JamTemplateCpp\* --excluded_sources C:\projects\JamTemplateCpp\test\* --excluded_sources C:\projects\JamTemplateCpp\ext\* --excluded_sources C:\projects\JamTemplateCpp\cmake-build-debug\* .\cmake-build-debug\test\unit\jt_test\jt_tests.exe
Please check the performance benchmark report.