GamedevFramework / gf

A C++17 framework for 2D games
https://gamedevframework.github.io/
Other
190 stars 21 forks source link
2d-game c-plus-plus cpp cpp-library cpp17 game-2d gamedev gamedev-framework gamedev-library sdl2

Gamedev Framework (gf)

AppVeyor UbuntuBuild WindowsBuild GitHub license GitHub tag

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.

Gamedev Framework (gf)

Quick example

#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;
}

Documentation

See the online documentation for Gamedev Framework (gf).

Packaging

Packaging status

Contact

If you want to talk directly with the developpers, you can

Contribution

Gamedev Framework (gf) is very open to contributions. See the contribution guidelines.

Dependencies

You have to install the following dependencies:

See the documentation for more information on how to build and install gf.

Screenshots

These screenshots are from games included in the repository.

Games

gf Pong! gf 2048!

Code Quality