The Gluon project is an open framework for creating and distributing games - supporting the flow of the idea all the way from the author to the player of the finished game. The primary use of Gluon is to create games using 2D graphics. The reasoning behind this is that the niche for this type of visual is very large and so far untapped by specialised tools. In the world of 3D games there are solutions such as Unity3D, which provide a distribution system, but in the 2D game development world, there are no tools to provide a complete eco system for both the creation, distribution and feedback gathering.
The three main audiences of Gluon are game creators, game players and application programmers. Each of these are a user of one of the tools. The application programmers are a side-effect of the openness of the framework, but one which is no less important for that: A vibrant open source community is created from openness, not restrictions.
To achieve the goals of the vision, a number of tools are devised to support each part of the distribution flow. Specifically Gluon Creator, Gluon Player and the underlying libraries.
Gluon Creator is the tool used by the game authors to bring their visions to life. It is a one-stop tool which allows the creative minds of the team to work together on their project, and allows them to finally publish it to anywhere the Gluon Player runs. It leverages the following technologies to achieve its goal:
- The Qt Framework
Qt is a cross-platform application framework written in C++ that allows great flexibility in creating new applications.
- The KDE Developer Platform
The KDE Developer Platform is a cross platform application development framework based on Qt which allows Gluon Creator to run across several desktop platforms with a little effort, while allowing the application to blend in with the native environment.
- Open Collaboration Services
(of which OpenDesktop.org is one implementation) is a set of technologies which allows for publishing and getting new items of information - including components, comments on the game, and many others.
The Distribution Site
The corner stone of the Gluon distribution system is called GamingFreedom.org and is a website which provides a wide range of functionality for both the creators of games and the players of games, and is based on the Open Collaboration Services mentioned above.
Simple as it seems, user avatars on community websites supply an important way of identifying friends: Humans are much faster at identifying shapes and colours than they are at identifying words, and as such a user avatar provides a straight forward way of doing this.
A relatively recent development in the world of gaming is that of achievements: The idea that in various games, there are other goals than those set down by the normal ﬂow of the game, basically providing an extra game within the game. This concept is known as achievements. Each game will have any number of achievements, and most games publish information on how to achieve each achievement in more or less vague ways, but always the number of achievements in the game is public. As such, the players of games are then able to show their achievements. Gaming Freedom itself provides, in addition to the in-game achievements, a way of gaining achievements for the community itself (such as publishing a number of highly rated games, posting a number of highly rated comments, performing a lot of tagging and others).
To allow both the players and creators of games to speak and discuss with each other, every item on the website can be commented on: Games, players, creators, even other comments.
However simple it might be to create games with Gluon, it will still require skills that not everybody has. As such, Gaming Freedom provides a forum for people to write up and discuss ideas for games they might wish to create.
One of the core concepts of community websites is that of adding people to a friends list. However, rather than having a ﬂat, Facebook-like structure of everybody simply being friends, Gaming Freedom will let you structure your friends by adding tags to them - same as any other piece of information, except you are the only tagger for your friends.
- Player Profile
The proﬁle of any player of games on Gaming Freedom provides a wide range of information on that player: What games they have played and how much, what Achievements they have gained, what comments they have made. For creators of games it also includes which games they have published.
Some people may be less vocal than others, but still wish to take part in the community in other ways - or simply wish to show their support or dislike of something in a non-vocal manner, rather than saying again the same things others have already said in a comment. So, they are then allowed to rate on each item on the website as well.
The term tagging in Web 2.0 covers two different concepts: Broad and narrow folksonomies. A narrow folksonomy is the type of tagging applied on anonymous websites, where the tagging is based on a word being connected to an item of information. A broad folksonomy is used on sites which require logging in to allow tagging, and connects the user, the word and the item of information, so that the applicability of a word to an item can be weighted on how many users have assigned that word to the item. Gaming Freedom, as a community website, employs broad folksonomies, except for the friends page mentioned above, which only employs narrow folksonomies.
The Player is the application used by the players of games to both play the games, but also communicate with each other and share information about the games. It is a way for them to enjoy Gluon based games, and to share their enjoyment with their peers.
Most important is, however, that Gluon Player is available in a number of flavours. While Gluon Creator is a desktop application, designed to be used on platforms designed to be used for content creation, the Gluon Player will run both on desktop platforms, as well as a number of content consumption platforms. In the infographic above is shown a number of icons around the Gluon Player icon: Windows, Linux (KDE, GNOME, XFCE and more), MacOS X, Maemo and more. In other words, Gluon Player will look native on all these platforms, and while it will support the same use cases, the way these use cases are reached is different between the platforms, due to their different form factors:
- Mobile platforms
...such as the Symbian^3 and MeeGo Harmattan based mobile phones with OpenGL ES support, as well as Android and others. These are essentially the lowest possible target for Gluon based games. They have very low screen resolution, and have only a simply digital joystick for navigation, and a few keys, if any, for extra input. The client for this class of devices is based on Qt only, and components requiring KDE technologies can be added conditionally.
- Tablet platforms
...such as the MeeGo platform and Android. They often have a touch screen, and often no hardware keyboard or keypad. The client for this class of devices is based on Qt only, but components requiring KDE technologies may be shipped with the client, but can also be added conditionally.
- Desktop and netbook platforms
...are together here, and mark the highest level of targets for Gluon based games. These have full OpenGL support, and any number of inputs. This class of devices often have much more space available for applications, and the KDE platform is thus available for development of the client itself.
The reason the KDE platform is only used for the desktop client is simple: the KDE platform is not yet universally available on all Qt platforms. Once that is the case, the KDE platform dependency can be introduced on the two other platform classes.
In the vision is stated that Gluon is an open framework. Because of this, it is important to note that while the main method of creating games using Gluon is to use Gluon Creator, it may not be the best solution for everybody. As such - any library created for Gluon is of course also free and usable by anyone directly through normal C++ code. GluonGraphics, GluonInput and GluonAudio are all available as separate libraries without being bound directly to Gluon itself or even each other.
...is a modern graphics rendering library based on OpenGL and OpenGL ES. It is built completely around the modern programmable pipeline and enhances the core OpenGL functionality with additional tools like easy shader management and creation through an advanced materials system, mesh and texture loading and more.
...abstracts away the tedious management of input on the many different platforms that Qt runs on. While Qt's own input system is sufficient for most traditional desktop applications, it is not capable of support many different devices at the same time. GluonInput provides device-independent actions for game programmers to work with as well as elements that allow simpler input on touch screen devices.
...provides a high level library based on OpenAL that can be used for positional audio and playing background music. It provides tools for loading and streaming audio files, creating advanced dynamic playlists for playing background music that responds to in-game events, configurable playback channels for different volume levels, and more.
...is a state of the art game AI system based on the Behavior Tree concept. It provides both tooling and libraries for implementing this in any game engine, and of course includes components and assets for use with GluonEngine based games.