Growl is a lightweight, portable game development framework written in C++17. It is intended to help you make 2D video games for a variety of different platforms, without being too opinionated about how your code is structured.
Out of the box, Growl has support for the following platforms:
- Windows
- macOS
- Linux
- Android (4.4+)
- iOS (13.0+)
- Web
Growl's plugin-based architecture should make it easy to port to any platform that modern C++ can be built against. So far, it has been ported to the following platforms:
- Nintendo 3DS (Homebrew)
To build with Growl, you will need the following:
- A modern C++ compiler. Growl has been built with Clang, GCC, MSVC and Emscripten.
- CMake (3.20+)
Growl assumes familiarity with modern C++ features like smart pointers and move semantics, but it doesn't use anything particularly arcane. Familiarity with CMake is also assumed. Growl has been tested with the Unix Makefile, Xcode and Visual Studio generators, but others should work just fine.
Growl uses vendored dependencies, so you shouldn't need any libraries other than the ones necessary for your specific platform (e.g. Android NDK, Emscripten). The exception to this is SDL2, which you'll need to provide yourself if building on a desktop platform.
The first thing to do is build the included test app, so you can check everything is working on your system. This guide assumes you're using a command line, but you can use the CMake GUI if you like.
- Clone the repository to your local system. Ensure you clone recursively so that submodules (for third-party dependencies) get pulled too.
git clone --recursive git@github.com:Bearwaves/growl.git
-
From the root of the repository, navigate to
example/testapp
, and create abuild
directory. -
From your newly created
build
directory, runcmake ..
. This is known as an out-of-tree build.
If CMake isn't able to find SDL2 on your system, it will shout at you. You can use theSDL2_INCLUDE_DIR
andSDL2_LIBRARY
flags to tell CMake where it is. -
Once CMake has generated all the necessary files, run the
make
command to compile everything. You may want to pass the-j
flag to enable multithreading, e.g.make -j 4
to build with four threads. -
Two executables will be built:
growl-test-app
andgrowl-cmd
. Usegrowl-cmd
to generate the asset bundle, like so:
./growl-cmd assets bundle ../../assets/
- Run the app!
./growl-test-app
The test app demonstrates asset loading, rendering, audio, input, text rendering and the debug menu (try pressing F12).
Once you've got the test app running, you're ready to start building your game in Growl. Here are some topics you might want to read about next.
- Overview - read about Growl's high level architecture, concepts and design approach.
- Building - learn how to build Growl for a variety of systems, such as iOS or web.
- Using Growl - learn about the various features and components available to build your game.
- Extending - learn how to build plugins for Growl to add functionality or port it to a new platform.