Gamedev Framework (gf) is a framework to build 2D games in C++17. It is based on SDL and OpenGL ES 2.0, and presents an API that is very similar to the graphics module of SFML with additional features. It is not a game engine, it is more something like a framework, similar to libGDX in the Java world.
Gamedev Framework (gf) is licensed under the terms and conditions of the zlib/libpng license.
#include <gf/Event.h>
#include <gf/Font.h>
#include <gf/RenderWindow.h>
#include <gf/Sprite.h>
#include <gf/Text.h>
#include <gf/Window.h>
int main() {
// Create the main window and the renderer
gf::Window window("Example", { 640, 480 });
gf::RenderWindow renderer(window);
// Load a sprite to display
gf::Texture texture("sprite.png");
gf::Sprite sprite(texture);
sprite.setPosition({ 300, 200 });
// Create a graphical text to display
gf::Font font("DroidSans.ttf");
gf::Text text("Hello gf!", font, 50);
text.setPosition({ 100, 100 });
renderer.clear(gf::Color::White);
// Start the game loop
while (window.isOpen()) {
// Process events
gf::Event event;
while (window.pollEvent(event)) {
switch (event.type) {
case gf::EventType::Closed:
window.close();
break;
default:
break;
}
}
// Draw the entities
renderer.clear();
renderer.draw(sprite);
renderer.draw(text);
renderer.display();
}
return 0;
}
See the online documentation for Gamedev Framework (gf).
If you want to talk directly with the developpers, you can
- chat on the Discord server of gf
- post a message on /r/GamedevFramework.
- join the #gf-devel IRC channel on Freenode
Gamedev Framework (gf) is very open to contributions. See the contribution guidelines.
You have to install the following dependencies:
- SDL2 >= 2.0.8 (zlib/libpng license)
- Boost String Algorithms >= 1.65 (Boost license)
- Boost Heap >= 1.65 (Boost license)
- Freetype >= 2.9.1 (FreeType license)
- zlib >= 1.2.11 (zlib/libpng license)
- pugixml >= 1.8.1 (MIT licence)
- CMake >= 3.10.2
See the documentation for more information on how to build and install gf.
These screenshots are from games included in the repository.