Felgo Games Documentation

Felgo Games provide a specialized set of QML components for building 2D games on top of Qt 5 for multiple platforms, with the same source code. They are part of the Felgo SDK.

QML Introduction

QML stands for "Qt Markup Language" and is a declarative language designed to describe the user interface of a program: both what it looks like, and how it behaves. In QML, a user interface is specified as a tree of objects with properties. This tree is also often referred to as Scene Graph, because when the parent item moves all children will follow. JavaScript is used as a scripting language in QML. In this section we will cover the basics of QML and its advantages by an example.

As code speaks more than 1000 words, here is a QML example implementing the following:

  • Displays a white background Rectangle with 800x600 px
  • Adds a grey button element which changes the color from grey to blue while pressed
  • The button is draggable
  • The button tracks the number of presses and displays it in its text element
  • The button gets invisible after it got pressed 10 times.

How many lines of code would it take you to develop this application with the same functionality in another programming language? With QML, it is just 30 lines, excluding the comments and empty lines:

 import QtQuick 2.0 // for accessing all QML elements like Rectangle, Text or MouseArea
 import Felgo 3.0 // for accessing all Felgo elements like GameWindow

 GameWindow {

   Rectangle {
     // background rectangle filling whole screen with black color
     color: "#000000" // black color, open up color picker with Ctrl+Alt+Space
     anchors.fill: parent // make as big as parent GameWindow

   Scene {

     Rectangle {
       id: button
       color: mouseArea.pressed ? "blue" : "lightgrey" // make the button blue when pressed
       x: 100
       y: 50
       width: 100
       height: 40
       visible: pressCount < 10 // after the button being pressed more than 10 times, it gets invisible

       property int pressCount: 0 // initialize with 0, increase in onPressed

       Text {
         text: "Pressed " + button.pressCount + " times" // this will automatically update when pressCount changes
         color: "black"
         anchors.centerIn: parent

       MouseArea {
         id: mouseArea
         anchors.fill: parent // make the touchable area as big as the button
         drag.target: button // this forwards the dragging to the button

         onPressed: {
             button.pressCount++ // increase pressCount property by 1 each time the button is pressed
   }// Scene
 }// GameWindow

Felgo Games Topic Overview

Supported Platforms

Mobile iOS Version 11.0 and above (arm64 architecture and simulator)
Android Version 4.1 ("Jelly Bean", API level 16) and above (armv7a and x86 architectures). As of July 2018, this is a 99.3% market reach based on Google Play Store install stats.
RT Devices running Universal Windows Platform 10
Desktop macOS 64-bit Apple macOS 10.12 and later
Windows 32- or 64-bit Microsoft Windows 7 or later
Linux 64-bit Linux Ubuntu 14.04 or later, OpenSuse 13.1
Embedded Raspberry Pi and iMX6 (contact us for more information about these platforms)

Felgo Sample Launcher Application

The Felgo Sample Launcher allows you to quickly test and run all the open-source examples and demo games available with the Felgo SDK, from a single desktop application.

Felgo Benefits for Qt 5 Developers

Felgo, a Qt Technology Partner of The Qt Company, enhances the Qt 5 framework with many components and its gaming API used in hundreds of games.

Existing Qt 5 games can benefit from this gaming API and Felgo plugins, because they work as an extension of the Qt framework and work together with existing projects. As a Qt developer, you get the following benefits by using Felgo:

And of course as part of Felgo you can use leading Qt plugins that enable you to:

Voted #1 for:

  • Easiest to learn
  • Most time saving
  • Best support

Develop Cross-Platform Apps and Games 50% Faster!

  • Voted the best supported, most time-saving and easiest to learn cross-platform development tool
  • Based on the Qt framework, with native performance and appearance on all platforms including iOS and Android
  • Offers a variety of plugins to monetize, analyze and engage users
create apps
create games
cross platform
native performance
3rd party services
game network
level editor
easiest to learn
biggest time saving
best support