Effective Mobile Game Development in 6 Research-Based Steps!

Effective mobile game development is something you can strive for. The development process shouldn’t be a struggle. The process should be rewarding and help you to grow! These proven techniques can help you become more effective in your work.

Researchers have backed up every one of these techniques. On top of that, they’re simple to put in place. Try them for yourself and let us know how you get on!

(Check out the TL;DR: at the end if you can’t read the full article!)

1. Have Diversions (Play Games)

Make a Game like Zelda!

You’re working hard. You’re always so focused when you work. You want to complete a task. Want to get more focused than ever?

Take a 5 minute break.

It seems counter-intuitive. The workaholics will hate this but sometimes you need to stop working. Then after a break you can reactivate your goals and improve your focus. It’s a simple technique and the research suggests that it offers great results.

The reason that this technique works is that the brain detects and responds to change. Give your brain a break; it’ll thank you for it.

Of course, when you look at video games it all makes sense. How much time did you spend fishing in The Legend of Zelda: Ocarina of Time? Did you go Chocobo racing in Final Fantasy VII? These mini-games offered a great diversion from the long storyline of the game. And then when you’d caught enough fish, it was time to get back to business.

Find something different that you can work on for 5 minutes. Get up and stretch your legs. Water your houseplants. Message a friend. It will make you more effective.

Maybe you should consider a mini-game as part of your next project. Give your players the chance to increase their focus and they’ll play longer!

TL;DR: It’s OK to have a distraction from your main task. These breaks will help you to refocus!

2. Understand Your Will

Make a Community Game!

Are you watching your favorite TV show when you should be working? Do you spend too much time playing games instead of developing them? Is the thought of tackling the mundane too much to handle?

If these problems or other similar issues apply to you, then you need to increase your willpower.

At the end of the day, we prefer doing some tasks more than others. Getting your app released means working on all aspects of your app. When you increase your willpower, you can tackle all issues head on and get them out of the way.

For some of you this may sound impossible. Some people just feel like they don’t have that much willpower. The good news is, we can all improve our willpower and gain the ability to get things done.

Kelly McGonigal, PhD has done a lot of research into willpower and discovered it’s like a muscle. If we exercise it on a regular basis, we can also increase it.

A stronger will means you can tackle the tedious and avoid procrastination. Stop playing Clash of Clans or Fallout Shelter. Aim for effective mobile game development. You can do it if you have the willpower.

McGonigal lays out a simple technique for improving willpower in her research. A 5 minute daily meditation routine can help improve willpower. Don’t fidget or move for 5 minutes a day. By sitting still and refusing to acknowledge outside influences, you exercise willpower. She also lays out other exercises but this one is definitely effective.

Flex your willpower muscle and become ultra-effective!

TL;DR: Improve your willpower by meditating and you can complete your least favorite tasks!

3. Set Proper Goals

Make a Game Like Super Mario Bros!

Mario is one of the most famous video game characters ever. Super Mario Bros became one of the most popular and enduring game series ever. But the original still remains the biggest seller.

The game was simple. Start a level, and get to the end without dying. There was only one way to advance, no tangents involved.

Setting proper goals can lead to effective mobile game development. I say proper for a reason though. Setting goals is a powerful tool for getting things done. But it can also lead to some detrimental results.

Researchers from Harvard Business School have discovered many flaws in goal setting. The worst are an increase in unnecessary risk-taking, unethical behavior and hyperfocus.

Take the infamous Ford Pinto. In the 1970’s, Ford set a goal of building a car for less than $2000 and weighing less than 2000 pounds. They overlooked safety testing and released the Pinto onto the market.  But the gas tank was vulnerable to rear-end collisions. There were 53 deaths as a result.

The research team did acknowledge that there are times when goal setting is appropriate. “Goals are appropriate when you know exactly what behaviors you want, you aren’t concerned about secondary behaviors, and unethical behavior is not a big risk.”

Goals work best when they are realistic and attainable in a short period of time. It’s also important to know the definite outcome of achieving your goals. Avoid setting goals that take an unknown time to do.

If you loved Super Mario Bros, consider setting similar goals to Mario for yourself!

TL;DR: If you set goals, make sure you know exactly how to achieve them!

4. Get Better at Lists

Try V-Play Now!

In the game Skyrim, you travel through the land completing quests. The game arranges quests in a list that you can view at any time. As you travel through Skyrim, you meet new people and they add quests to your list.

Over time, your list can grow large. This means that you have more stuff to do, meaning you keep playing the game. Unlike the game, you want to have a small list. You want to cross things off your list. An ever-increasing to-do list means one thing. You’ll spend more time organizing and less time developing.

Making lists can be a great tool to inspire effective mobile game development, if you do it right. A bad list could see you wasting time on an area of your app that isn’t a high priority. If you want to make good lists, you should follow a few simple steps.

Split your bigger tasks into smaller ones. This makes them more manageable. This will also help you to better track your progress.

You should also rank your list. Work on what’s important. The small stuff can wait.

When you’ve finished writing your list, cut it down to the three most important tasks. Long lists seem daunting and never-ending. You can finish a short list quicker and give yourself more chances to rank tasks.

The reason lists work could be due to the Zeignarik effect. This is the tendency to experience intrusive thoughts about a goal that was once pursued but left incomplete.

It’s why you keep playing Skyrim. Your brain isn’t happy with unfinished business. The Zeignarik effect makes you think about completing any unfinished quests. Even when you aren’t playing!

Write short effective lists and rank your tasks. You’ll get things done and focus on the most important things first. The Zeignarik effect will make sure of it.

TL;DR: Write short lists of three tasks and rank them by importance!

5. Work in Blocks

Make an Arcade Game!

Have you ever played a video game, loved every second of it and then gotten stuck at a boss? How can this happen? You were having so much fun. And sometimes the more you tried to beat that final boss, the further you seemed from doing it!

Then you take a break. You go and do something else for a while. You play a different game or work on your own game. And then when you play that boss again, you beat them. You can enjoy the game again!

It could be that the first time you played the boss; you had come to the end of one of your ultradian cycles.

This process has been well documented since the early nineties. In a famous study, K. Anders Ericsson conducted a survey of brilliant young violinists. The one thing they all had in common was that they practiced in 90 minute blocks. Then they took regular breaks of at least 30 minutes before beginning to practice again.

Work in 90-120 minute blocks. Then take a 10-20 minute break. This encourages effective mobile game development. It works because you sync your work to your ultradian rhythm. Ultradian rhythm is a physiological phenomenon that affects our focus. That’s why it’s important to unplug your brain every so often and give it some rest. You actually improve your focus for the day by doing so.

When things are going great, taking a break seems crazy! But you should aim to be working at a high level for the entire day. Take regular breaks in accordance to your ultradian rhythm. This will ensure you work at an optimal level.

Work this technique into your development process and see the results for yourself. Schedule tasks in 90-120 minute blocks and see if you become more productive.

TL;DR: Try taking regular breaks after longer periods of activity to work at a high level. Your brain will thank you!

6. Perfect your Flow

Make a Puzzle Game!

If you’ve played Tetris, you’ll understand the importance of getting in the zone. The classic arcade game is easy to begin with. But the challenge soon increases. If you want to beat your last high score then you might need to find your flow.

Effective mobile game development requires a lot of attention. Writing perfect code means a lot of concentration. Developing flow encourages this. It also makes you happier to spend time working.

The idea of flow is actually a well-documented phenomenon. Mihaly Csikszentmihalyi was the first to coin the term ‘flow’. He describes flow as occurring when someone finds the balance between control and arousal.

In a game of Tetris, you start off having control. You can manipulate and place the blocks with ease. As the difficulty increases you move towards a state of arousal. Between these two is flow. If you can’t keep up with the falling blocks you’ll most likely find yourself in a state of anxiety. You’ll finish your game sooner rather than later.

You can find your flow when developing by finding the right challenges. Don’t spend your time doing something too hard or too easy. Getting in the zone will provide you with a happy experience. This may also correlate with increased performance.

Over time, as your ability grows you’ll need to seek out harder challenges. Developing in a flow state also leads to mastery of certain techniques. Not only will you be happier and thus more effective, you’ll also become more able.

Don’t just use your flow to get better at Tetris. Challenge yourself and watch as your game development improves as well.

TL;DR: Working on appropriately challenging tasks will get you in the zone!

Effective Mobile Game Development


  • It’s OK to have a distraction from your main task. These breaks will help you to refocus!
  • Improve your willpower by meditating and you can complete your least favorite tasks!
  • If you set goals, make sure you know exactly how to achieve them!
  • Write short lists of three tasks and rank them by importance!
  • Try taking regular breaks after longer periods of activity to work at a high level. Your brain will thank you!
  • Working on appropriately challenging tasks will get you in the zone!

Effective mobile game development means working smarter, not harder. Whether on your own or in a team, these techniques will help improve your workflow. Get your game out into the world sooner than you expected!

If you use these techniques, please let us know how you get on in the comments section. If you know someone that would like this article, share it! You can like it on Facebook or Tweet it using the buttons on the left!

The post Effective Mobile Game Development in 6 Research-Based Steps! appeared first on V-Play Game Engine.

Meet You at Gamescom 2015!

Meet You at Gamescom!

How important is mobile game development to you? Planning to attend Gamescom 2015 in Cologne? Want to find out about the newest improvements in cross platform development?

Meet You at Gamescom!

You can meet us at Gamescom or in the Cologne area on Wednesday 5th and Thursday 6th August. Let us know if you’ll be there because we’d love to meet you for a chat!

There’ll be two new V-Play showcases at this year’s event for you. This opportunity is only at Gamescom; get your questions answered instantly!

What to Expect at Gamescom!

We’ve been working on a whole new range of features over the last months. Be the first to get a sneak peek at upcoming V-Play additions like:

  • Multiplayer Support
  • App Development Extensions
  • Animation Extensions
  • New Showcase Games & Apps

Get in Touch!

If you’ve met us at events like Gamescom before, we’d also love to reconnect with you.

Available time slots will soon run out. Schedule a meeting right now!

The post Meet You at Gamescom 2015! appeared first on V-Play Game Engine.

Why I Chose V-Play to Develop My First Mobile Game? An Indie Dev Story

Mathias Sundholm, an Indie game developer, is part of a team based in Germany that has just released a new mobile game, MAYA – Forgotten Tiles. MAYA – Forgotten Tiles is the team’s first mobile game and they wanted to make it one of the best in its genre! Mathias chronicles the development process of MAYA – Forgotten Tiles while detailing why V-Play turned out to be the right choice for their journey. Read on to find out how this game came from a simple idea and was turned into reality.

We recently released our first mobile game, MAYA – Forgotten Tiles for Android and iOS. That’s why we want to share our experience as a step-by-step guide on how to develop your first mobile game!

Play MAYA - Forgotten Tiles!

Step 1 – Come Up with an Idea

The first step of any game project is to come up with an idea. A big idea is great, but it’s also important that the idea is somehow realistic with respect to the skill set of your team.

If you have close to zero experience, you probably shouldn’t start making a multiplayer strategy game with online matchmaking.

Since this was our first mobile game, we decided not to make something overly ambitious, but something simple, yet fun and appealing. We decided a memory style game would be perfect for this. Our idea was to make the best memory game ever!

Step 2 – Create a Simple Prototype

It’s important to test the basic gameplay as soon as possible. We decided to develop our game using V-Play, a cross-platform 2D game engine. This allowed us to create a mobile game for both Android and iPhone using a single codebase.

What helped us a lot, is that V-Play automatically scales content so it looks good on both phones and tablets!

Try V-Play Now!

What made V-Play a great match for our game is that the QML scripting language used in V-Play is excellent for quick prototyping of gameplay. With very few lines of code, you can create sophisticated user interfaces featuring advanced functionality and animations. In our case, we finished the first prototype in just a day!

Play MAYA - Forgotten Tiles!

Step 3 – Decide On an Art Style

Creating game art takes a long time. It’s therefore important to decide on a theme and art style early on in the project of your first mobile game.

To get ideas for the art style, we recommend browsing random photos and images for inspiration. We took a lot of inspiration from pictures of Mayan temples. The figures on the tiles for our game are based on Mayan hieroglyphs.

When you’ve decided on a theme; start sketching down your ideas on paper. It is much faster to prototype on paper than in any graphics editing software.

Play MAYA - Forgotten Tiles!

Step 4 – Develop, Test, Iterate, Develop, Test, Iterate…

While developing your first mobile game project, it’s nearly impossible to plan every aspect of the game in-advance. You might have a general idea in the beginning but during the development, you’ll get some awesome new ideas that you didn’t plan for.

This is great since you can start off with something basic and the more you work on your project the more awesome your game will become. Just start with the basic features of the game, and gradually add more.

Allow your friends to test your game, and you’ll get ideas that you’d never have thought of yourself. The great thing about developing with V-Play is, when you have an idea for a new feature, you can implement it within an hour.

The development phase however isn’t always a bed of roses. Sometimes you’re struggling with bugs or things aren’t working as expected. Fortunately, whenever we had a problem we could turn to the support forum, plus the V-Play staff is always fast to give advice.

Play MAYA - Forgotten Tiles!

Step 5: Monetization

Since game developers also need to eat, you might want to monetize your first mobile game. We used the V-Play Chartboost plugin to put ads into our game.

Chartboost is specifically targeted at games, and will only show ads about other games. It’s important that the advertisements aren’t too annoying because that will cause players to uninstall your game.

We decided to use full-screen interstitials rather than banners since they’re generally less annoying and generate higher CTR than banners. The ads are only shown between two gaming sessions and not more than every 2 minutes.

Note: Chartboost and many more plugins for monetization and analytics are included in the Indie License of V-Play.

Step 5 – Prepare For Launch

When you are happy with your game, you can start preparing for launch. It’s important that you spend some extra time on making a good looking icon since this is what users will see first in the App Store. If it’s not attractive they won’t download it, no matter how awesome your game is!

Plan enough time for this step. You’ll also need to provide a text description about your game, screen shots and promo art.

You’ll need to prepare your app binary for release by creating an app identifier and adding appropriate meta data to your game. V-Play has a great publishing guide to help get your game into the stores.

Play MAYA - Forgotten Tiles!Once you submit your game you’ll have to wait until it’s been reviewed before it’s available for download. This process takes a few hours for Google Play Store, and 7-9 days for the App Store. Hopefully you didn’t use any copyrighted words in your app title and your game gets approved!

Step 6 – Inform the Players

If you’ve made it this far and gotten your first mobile game published, congratulations! But unfortunately the work isn’t over yet. There are more than a million apps in the App Store, so if you want anybody to find your game, you have to do some marketing!

You can start by sharing the good news on social media, and by asking your friends to help you spread the word. If you also make a trailer and a website for your game, more people will notice it. Unity has a video on how to market your game here. This is the trailer we made for our final game:

Developing your first mobile game can be both rewarding and frustrating at times. But at the end of the day we do it because it’s fun to be creative, put ideas into action, and see the smiles on people’s faces when you show them your game. So is MAYA – Forgotten Tiles really the best memory game out there? We’ll let you decide!

Download MAYA – Forgotten Tiles

We’d like to thank Mathias for writing this guest post and wish the MAYA – Forgotten Tiles team the best of luck with their first mobile game! If you enjoyed reading this article and you think a friend would too, then please Tweet it or Share it on Facebook using the buttons to the left!

If you’re a V-Play user and you’d like to be our next featured developer, get in contact at support@v-play.net and you could be a guest blogger in no time!

The post Why I Chose V-Play to Develop My First Mobile Game? An Indie Dev Story appeared first on V-Play Game Engine.

Swift 3.0-beta2 Released

We have just released the second Swift 3.0 beta. Apart from several bugfixes, highlights include an emoticons menu in chat dialogs, bookmark for rooms can now be edited directly from the ‘Recent Chats’ list and rooms entered while offline will now get entered on reconnect.

Have a look at the changelog for a list of all the new features since 2.0.

We encourage everyone to get the new build and try it out, and tell us about any bugs they should come across.

QtLocation reloaded

Once upon a time, back in the Qt 4 and QtMobility days, there used to be a Location API. Unfortunately, during the transition to Qt 5, this API never managed to get a complete port. Qt Mobility location code was tightly bound to QML1, while Qt 5 introduced QML 2. However if you looked carefully, you may have detected that some QML 2 work had already been done for Qt 5.0. More attention and love was required though. With Qt 5.2 Qt Positioning was released, which was a subset of the Qt 4 Location API offering. It focused on providing the means to determine the geographic position.

Now, with Qt 5.5 the remaining Location APIs are back as a Technology Preview. The main differences between the initial Qt 5.0 work and the current state are the removal of the Qt3D dependencies, updating the map rendering logic and fixing the mouse/touch handling.

The heart of every location offering is accessing and presenting map data. Qt Location builds on top of the Qt Positioning offering and uses Mercator projections for tile -maps. They are rendered using Qt Quick Scene Graph with tiles being simple texture nodes. Users can interact with maps using gestures, insert markers or draw simple geometric objects like rectangles & circles. There are currently three plug-ins providing map data:




In addition, Qt Location provides utilities to find a geographic coordinate based on a street address (geocoding) and navigation routes between two locations. It includes simple driving and walking directions. Everything is exposed with nice and familiar model types in QML, for example GeocodeModel and RouteModel. The obtained navigation data can be presented on the map using the Route type and follows the model-view-delegate pattern. The route instructions can be extracted via the RouteManeuver type. Currently, the HERE and OpenStreetMap plug-in provide support for geocoding and navigation.


Last but not least, there is the Places sub module. It not only provides the means to discover categorized places of interests (POIs) but also presents place details like reviews and associated images. The Places API centers around several QML models with the main two being CategoryModel and PleaseSearchModel. Other features such as search suggestions and reviews are implemented in similar ways. Currently POI functionality is provided by the OpenStreetMap and HERE plug-in.

In summary, QtLocation is back in Qt 5.5. Please checkout our documentation and we are looking forward to your feedback !

The post QtLocation reloaded appeared first on Qt Blog.

KDAB contributions to Qt 5.5

Good news, everyone! Qt 5.5 has just been released!

The release process of Qt 5.5 has been focused on stabilizing and improving performances. Once more KDAB is proud to be a part of the release, with its engineers constantly providing contributions and patches, as demonstrated by the commit graph of the last 16 weeks:


In this blog post I am going to show some of the features developed by KDAB that you are going to find in Qt 5.5.

Qt3D 2.0

Qt3D is available as a Technology Preview with Qt 5.5 and is targeting Qt 5.6 for an initial release. Qt3D provides C++ and QML APIs to allow the easy creation and integration of compelling 3D content in your Qt-based applications without having to invest time into writing a generic 3D renderer.

The renderer in Qt3D is completely configurable from QML and C++ APIs by means of providing a so-called, framegraph. This allows Qt3D to be configured dynamically at runtime to control the OpenGL pipeline to achieve customised rendering algorithms, special effects and post processing. Moreover, Qt3D provides more than a 3D renderer. It is also a general purpose, soft-realtime simulation framework built on top of a highly multithreaded architecture.

Your feedback on use cases and APIs is much appreciated! You can get in touch with the engineers developing it on the Qt mailing lists, as well as on the #qt-3d IRC channel on Freenode.

For more information on Qt3D, please refer to our Qt3D blog post series.

Accelerated Qt Quick video rendering on iOS

A major drawback of Qt on iOS has been the inability to properly use video elements in a Qt Quick 2 scene. Video rendering had to be layered on top of the application, making it impossible to have it fully integrated with the other elements in the scene (for instance, placing other elements on top was impossible).

Due to demand by several customers, KDAB engineers managed to resolve the issue and contribute the relevant code upstream. Now the decoding of video elements on iOS is accelerated by the GPU, and they can be freely placed and transformed in a Qt Quick 2 application. For more information, please refer to this blog post.

OpenGL 4.4 and 4.5 versioned functions

The QOpenGLFunctions_4_4_Core, QOpenGLFunctions_4_4_Compatibility, QOpenGLFunctions_4_5_Core and QOpenGLFunctions_4_5_Compatibility classes have been added to QtGui. They provide automatic entry point resolutions for the respective OpenGL version / profiles.

Please refer to the documentation of QOpenGLContext::versionFunctions for more information on how to use these classes.


qtplugininfo is a small utility which dumps a Qt plugin’s meta data. This is extremely convenient in order to debug plugin loading issues.

Other contributions

In no particular order:

  • It is now possible to use the Freetype font shaper on Qt on Windows. This allows applications to achieve pixel-exact rendering of text on different operating systems.
  • The SSL classes in Qt, as well as QNetworkAccessManager, now support the TLS-PSK ciphersuites when used with the OpenSSL backend. Moreover, it is now possible to select which elliptic curves are used when negotiating an elliptic curve cipher.
  • Qt on Android now supports the arm64-v8a, x86_64, and the mips64 architectures.
  • Many commits went into fixing long-standing bugs of QColorDialog, especially on Windows. For instance, it is finally possible to pick colors from windows belonging to a different application.

Special mention

A special mention goes to all the bug fixes and minor enhancements, whose constant stream ultimately make Qt so robust and reliable. The list is too long to be reported here, but you can see how much work by KDAB engineers went in during the last few months here and here for fixes and enhancements respectively.

The post KDAB contributions to Qt 5.5 appeared first on KDAB.

Squish 6.0 Beta with fully integrated BDD support released

About two years after the release of Squish 5.0, we are proud and excited to make available a BETA of Squish 6.0 to you.

The main new features of this release are fully integrated support for Behavior Driven Development and Testing (BDD) as well as major improvements to Squish’s reporting capabilities.

You can read the full announcement at http://www.froglogic.com/news-events/index.php?id=squish-6.0.0-beta-released.html.

A quick video introduction to Squish 6.0 and BDD can be found at http://youtube.com/embed/62Vrnb21hio?vq=hd1080&autoplay=1&rel=0&showinfo=0&autohide=1.

We will also host a live webinar showcasing what’s new in Squish 6.0 shortly. You find details about this in the above announcement.

We are looking forward to your feedback which we happily accept at squish@froglogic.com.

How to make your Qt application icon appear on Wayland task managers

Several months ago I was redesigning the Hawaii launcher.

Now Green Island offers a class called ApplicationManager that emits signals when an application is registered or unregister (that is when a window of a certain class first appears or when the last one is closed).  This class is also exposed by a Wayland protocol for shells that are running in another process.

Soon I noticed that for some applications the launcher panel didn't show an icon and I realized there was something wrong with the app_id (also known as the class in wl_shell_surface).

The class name identifies the general class of applications and can be used by a task manager to know which desktop entry contains application information.

Unfortunately this is not as easy as it sounds because there is no way to tell that automatically.
So back in the day I had to set the class name to the executable name as you can see here.
This approach worked almost always because desktop entries were usually named after the executable.

However things changed recently, as a matter of fact desktop file names now follow the reverse DNS convention while executables keep being called like before.

This is now achieved by QtWayland with this commit reversing the QCoreApplication::organizationDomain property and appending the executable name. If the property is not set, QtWayland falls back to the old behavior.

The patch is available on Qt 5.4.2 and 5.5.0.

TL;DR: Rename your desktop files using the reverse DNS convention and set the organizationDomain properly.

QtAccountsService 0.6.0

We are proud to announce a new QtAccountsService release.
QtAccountsService is a Qt-style API for the AccountsService D-Bus service available for both C++ and QML.
Highlights of this release:

  • Use extra-cmake-modules
  • Use standard installation directories
  • Use new CMake macros to generate camel case headers
  • Link to Qt5 targets rather than using the old qt5_use_modules macro
  • Implemented UserAccount::setPassword
  • Export UsersModel to QML
  • Add a couple of small examples for C++ and QML

Qt World Summit 2015 | What’s better than a speaker announcement?

Why would we announce one speaker when we could announce 50 at once? We are beyond thrilled to share our lineup for Qt World Summit 2015 with you.

We also have the preliminary agenda launched for you to take a look at. Make sure to check back often — we’re adding new sessions. Visit the QtWS15 website to take a closer look at the thought-provoking content we’ll be sharing with you in October.

2015 Tracks:

Tech Strategy — focused sessions for decision makers / strategists AND Technical — a crowd-pleaser every year

  • Latest Qt Offering
  • Device Creation
  • Introductory Qt
  • Qt in Use
  • Qt in Automotive
  • Developer Unconference


We know you don’t want to miss QtWS15. The question is, do you want to save €50 on your pass? In celebration of launching our agenda and announcing 50 speakers, we are offering you a 24-hour flash sale. Register for QtWS15 with the code “AGENDA” to get €50 off your registration by Friday, July 17th, 5 pm CET / 11 am EDT / 8 am PDT .

Need help convincing your manager? Download the justification e-mail, tailor it to fit your situation, then send it on for approval.

Thinking about becoming a sponsor? Please contact us.

Hope to see you there!

The post Qt World Summit 2015 | What’s better than a speaker announcement? appeared first on Qt Blog.

V-Play 2.5.0 Release Adds New Match-3 Game, Tutorial and Sharing Feature

V-Play update 2.5.0 adds a new match-3 game to the V-Play Sample Launcher. The source code and game tutorial are also included in the latest update, as well as a new sharing feature. See below on how to update and enjoy these new features.

Introducing Juicy Squash

Juicy Squash is a simple match-3 game in the style of Candy Crush Saga. Just match 3 or more fruits and watch them disappear as you earn points.

Match-3 Game

You’ll really enjoy Juicy Squash. To play the game or use the source code, just update and then open the V-Play Sample Launcher at <Path to your V-PlaySDK>/Examples/V-Play/samplelauncher.

Update to V-Play 2.5.0 Today

A New game demo, tutorial and share feature are just some of what you should expect from the latest update.

Update Today!

The latest version of V-Play will open up a whole new world of opportunities for you. Of course, the only way you can experience these possibilities is by updating. So don’t miss out, update to V-Play 2.5.0 now and explore all of these opportunities for yourself!

Update and Get the Full Juicy Squash Source Code for Free

If you’ve already installed V-Play, this is how to update to the latest version:

  • After installing the V-Play SDK, you will receive Game Engine updates through the Qt Maintenance Tool. The Maintenance Tool is located in the installation directory of your Qt SDK and is called SDKMaintenanceTool.
  • Run this application and select ‘Update components’ to update the V-Play SDK.Match-3 Game

Alternatively, you can download and install the new V-Play 2.5.0 Offline Installer and remove your current installation afterwards.

If you fancy a look at the source code for this new match-3 game, update to V-Play 2.5.0 and then open your V-Play Sample Launcher, you can find it at <Path to your V-PlaySDK>/Examples/V-Play/samplelauncher.


Do it Yourself!

So you’ve updated to the latest version of V-Play and now you can make one of these games yourself!

Match-3 Game Tutorial

The Juicy Squash tutorial will guide you through the entire process and teach you the following key skills. Learn how to:

  • Create random objects and place them within a grid layout.
  • Find groups of elements of the same type within the grid.
  • Remove objects from the grid.
  • Move objects down to fill empty spots.
  • Communicate events using signals.
  • Load and use custom fonts.

This is a tutorial with a lot to offer. Hope you enjoy the challenge and follow the Match-3 Game tutorial here!

Share and Share Alike

Need another reason to update? How about the fact, that a new sharing feature has been added. There were a lot of requests for this feature in the past and it’s finally been added in the latest update.

Match-3 Game Tutorial

Now your users can tell their friends about their experiences with your game or app in an instant. With the new NativeUtils::share() function, users can post their high scores and thoughts about your game on Twitter and Facebook, as well as a host of other social networks.

Add just a single line of code to your game to enable native sharing and enjoy the added benefits of having your users spread the word about your game for you.

If you know someone who would be interested in these changes, why not share this post with them too!

The post V-Play 2.5.0 Release Adds New Match-3 Game, Tutorial and Sharing Feature appeared first on V-Play Game Engine.

Vacation 2015

IMG_20150703_172538So, vacation has finally arrived in 2015. To the despair of some, and joy of others, the Swedish standard vacation is 3-5 weeks over the summer. I’ll be having five weeks of this year.

So, what do you do with five weeks? Generally, I start out ambitious and end up in reality after 3-4 weeks and then scramble to get something done. Here is my list for the summer 2015:

  • Hang out with the kids and wife and do fun stuff.
  • Do some work around the house (a shed for our bikes and some general painting are on the wish list).
  • Get the calendar for foss-gbg into place. It does look as if we will have an awesome autumn.
  • Work on a whole bunch of little Yocto projects that I’ve been planning for a while (meta-kf5 being one of the high priority ones, playing with various targets such as the Raspberry Pi 2, Beagle Bone Black and more another).
  • Getting my 3D printer back into shape and do something fun with it (if it rains a lot)

That summarizes my ambition pretty much – but first things first – lets spend a few days hanging out with the kids before they grow tired of me and think that I’m old and boring :-)

Psst! Qt World Summit 2015 – Early Bird Prices are ending today!

If you’ve been putting off buying your ticket to Qt World Summit 2015, you should definitely stop procrastinating. You have just a few hours left to purchase early bird tickets at the discounted rate (July 13, 11:59pm CET).

Qt World Summit 2015 runs from October 5-7 and with all of the amazing speakers and killer demos we’re lining up, it’s shaping up to be one heck of a Qt-astic time. You won’t want to miss it.

Wondering what’s happening as the preparation for Qt World Summit continues? Here’s a quick rundown:

  • The Program Committee selected the presenters and topics that will provide attendees with superior session content
  • Trainers are updating their course material
  • The Qt Company Support team is doing finger dexterity exercises for code review, architecture guidance, & components assistance
  • Demos for the Network Lounge are being developed
  • Sponsors are being engaged
  • Fantastic networking evening party is in the works

You probably already know that your investment of time and money in QtWS will pay for itself and then some. Need help convincing your manager? Download the justification e-mail, tailor it to fit your situation, then send it on for approval.

You know what they say about the early bird gets the worm…


The post Psst! Qt World Summit 2015 – Early Bird Prices are ending today! appeared first on Qt Blog.

Qt Creator 3.5 beta1 released

We are happy to announce the release of Qt Creator 3.5 beta1.


In this release we added highlights to the editor scroll bar, which allow you to quickly see where bookmarks, breakpoints, and search results are located in your document.

If you are working with C++, you’ll be happy to find many fixes for our code model. The Clang-based model backend received a major refactoring: We moved the actual work into a separate process, which should make us safer from bugs in Clang itself. Also, our binary packages got upgraded to use Clang 3.6.

On the Qt Quick side I have to notify you that we removed support for Qt Quick 1, from Qt Quick Designer. We also removed the Qt Quick 1 wizards, and support for profiling with V8. The visual designer for Qt Quick 2, the code editor for Qt Quick 1 and 2, and profiling of Qt Quick 2 from Qt 5.2 and later and of Qt Quick 1 are not affected.

We also removed support for BlackBerry 10 development, lacking a maintainer. QNX development is not affected by this.

There have been many changes for Android support, including fixes for Android M and 64bit. On OS X we added a locator filter that uses Spotlight as a backend for finding files on your whole file system. For CMake projects we added support for file targets when they are explicitly specified in the generated CodeBlocks file. There were many more feature additions and bug fixes. Please have a look at our changes file if you are interested in more.

You find the opensource version on the Qt download page, and Enterprise packages on the Qt Account Portal. Please post issues in our bug tracker. You can also find us on IRC on #qt-creator on irc.freenode.net, and on the Qt Creator mailing list.

The post Qt Creator 3.5 beta1 released appeared first on Qt Blog.

16 Great Sites Featuring Free Game Graphics for Developers

If you need some free graphics for your game, where do you look? Browsing through tilesets, textures and sprites can take up a lot of your time, time that could be used improving your game. To help you out, we’ve put in the legwork and tracked down the best free assets on the internet. All of these websites offer image assets that are free for you to download and use, and not a royalty-fee in sight. We’ve also taken the time to rank them, so let us know what you think of our selections in the comment section!


  1. Kenney.nl
  2. OpenGameArt.org
  3. Untamed.wild-refuge.net
  4. Crateboy.itch.io
  5. Bagfullofwrong.co.uk
  6. Gameart2d.com
  7. Wigdetworx.com
  8. GlitchtheGame.com
  9. Dumbanex.com
  10. Reinerstilesets.de
  11. Sharecg.com
  12. Roenica.com
  13. Blogoscoped.com
  14. Lostgarden.com
  15. Subtlepatterns.com
  16. Openclipart.org


1. Kenney.nl

Free Game graphics

Kenney.nl is based in the Netherlands and is producing some fantastic art for game developers.   There are some really cool free assets on this site which have been made part of the public domain, meaning you can do anything you want with them. The free game graphics can be browsed according to their category so you can find your game art really quickly.  Kenney.nl also makes sounds and game sources available for free which could also be pretty useful for some readers. On top of all that, it’s a really beautifully designed site.


2. OpenGameArt.org

Free Game Graphics

This website has to be first on anyone’s list of places to go in search of free game graphics. OpenGameArt.org is a large site offering all kinds of graphics and even has a selection of sounds for game devs to use.  It can be browsed according to category and all of the art is clearly displayed. It has a huge selection of 2D and 3D elements and is also home to a very active forum. The site is constantly being updated with content from its users and is ranked so you can find the most popular graphics of the month or go in search of some lesser used assets.


3. Untamed.wild-refuge.net

Free Game Graphics

This site is a huge resource of free game graphics for anyone looking to make their own RPG. Untamed.wild-refuge.net is home to Sithjester’s RMXP resources, a collection of image assets that are free to download and use how you like. The highlight of this site is the giant collection of 2D game sprites that you can browse all on one page. Clicking on a character you like brings you to a webpage where you can download a .png of the character from all angles, perfect for making your own sprites!


4. Crateboy.itch.io

Free Game Graphics

This collection of image and sound assets is brought to you by Crateboy. The best part of this collection is the 8 bit city resource files. Crateboy advertises that there will be enough 16×16 tiles for you to build an entire city and there really are. This is some really great work and all Crateboy asks is that you credit him in your game. If you end up using these tiles a lot he also accepts a ‘pay what you like’ option. The use of colour tone in this artwork really makes it stand out from the crowd and could really help to define the look of your project.


5. Bagfullofwrong.co.uk

Free Game Graphics

Some of you will recognize this next website as belonging to indie game designer Robert D. Fearon, who has worked on games like Synso, War Twat, and Fish Fish Bang Bang. Mr Fearon has very kindly made the art assets from his Synso game available for game developers to use in their own games. Why? He says ‘I want you to make games. No, really. I do. Making games is great.’  We completely agree and think you should check out these free game graphics as soon as possible.


6. Gameart2d.com

Free Game Graphics

Gameart2d.com is home to some amazing image assets. This website is run by Zuhira Alfitra a.k.a pzUH. He’s an Indonesian game developer with a real eye for great game graphics. The majority of the assets on this site are for sale but there is a freebies section where you’ll find more images like those featured above. As well as these sprites, there is also a selection of tilesets, GUI assets and many more assorted images for you to choose from. They’re also completely free.


7. Wigdetworx.com

Free Game Graphics

If you need some sprites for your game, you should check out this website. Wigdetworx.com has made a great collection of static and animated sprites available for free in the SpriteLib project. While it’s not the biggest collection of sprites in this list, there is definitely something here for everyone. The pack includes a plethora of landscapes and characters that would look at home in any 2d game. All it takes is a click to download, so why not browse the assets yourself and get some free game graphics.


8. Glitchthegame.com

Free Game Graphics

Some readers will know Glitch as the web-based, collaborative, massively multiplayer game. Having been shut down in 2012 after two years online, the game’s developers have decided to release the game’s artwork into the public domain. There are over 10,000 assets to download and they’re all amazing quality. If you already like the look of these graphics, you’re in luck as you can download the entire package with one click and peruse them for yourself offline.


9. Dumbanex.com

Free Game Graphics

Dumbanex.com is another site that has made some really cool artwork available to game developers. It’s all free to use as long as you credit them somewhere in your game. There’s a really rich collection of sprites and tilesets on this site and a lot of them can be downloaded quickly in .zip format. This site is run by Brent Anderson, who works professionally as a freelance game designer and developer. These free game graphics would be perfect for a mobile sidescroller or platformer.


10. Reinerstilesets.de

Free Game Graphics

This website is run by Reiner “Tiles” Prokein and is brimming with free assets for game developers. Reiner himself is a hobby game developer who has produced a number of games. When he started out developing he couldn’t find the graphics he wanted, so he started making them himself. Ever since then he’s been sharing them online and they’re all available to you to use for free. He’s got a great selection of 2D and 3D images as well as some brilliant tutorials.


11. Sharecg.com

Free Game Graphics

Sharecg.com is primarily a site for artists to upload and share their work. It’s really worth a look if you’re after 3D or 2D art or if you want to find an artist to work with on some new ideas. The art is licensed under different terms so it’s important to check and make sure it can be used freely before you incorporate it into your games. There’s some really great indie art showcased on this site and you can also find tutorials, audio and software to use.


12. Roenica.com

Free Game Graphics

This is a cool site for indie and casual game developers and they have a nice collection of free game graphics for devs. Their assets are categorized according to game theme and can be downloaded as .zip files. The artwork on this site has been made available by a variety of artists so license types may vary but roenica.com states that all details should be clarified within the .zip files. Roenica hosts both 2D and 3D graphics so there should be something here for everyone.


13. Blogoscoped.com

Free Game Graphics

Now it’s time for something completely different. The next site on our list is actually a blog about Google and everything related to Google. So then why is it included on our list? It’s included because in 2006 blog contributor, Philip Lenssen, posted a collection of almost 700 game sprites that you can use under a Creative Commons License. The sprites are all character avatars from a game he was working on called ‘Last Guardian’. If you’re working on something that looks similar, then you definitely should check his stuff out.


14. Lostgarden.com

Free Game Graphics

Lostgarden.com is a little bit different to most of the other sites featured in this article. It’s the blog of Daniel Cook, a game designer working for Spry Fox. Daniel dedicates a section of his blog to game art and likes to update it periodically with free game art for developers. This site is also home to some great essays on game design in general and it would definitely be worth a look, if not to gain the insight of an industry professional, then purely for interest’s sake.


15. Subtlepatterns.com

Free Game Graphics

Subtlepatterns.com offers some of the most beautiful work out of all the websites listed in this article. This website is run by Atle Mo, who designs and curates patterns for the site. He has made all of these wonderful patterns available to use under a creative commons license, so all you have to do is provide him with some credit in exchange for using his patterns. There is a lot of content on this site and it’s all of a very high standard. These patterns would make great UI backgrounds or could even be used in your game levels.


16. Openclipart.org

Free Game Graphics

The great thing about this website is that absolutely every piece of art that they share is completely free to use in every way. Openclipart.org is a great community dedicated to sharing free art to everyone that wants it. But let’s not forget the art itself. There’s some really great looking clipart on this site and a lot of it would definitely look at home in your next 2D game. Another great feature of this website is that you can make requests of the users and get tailor made clipart.


How to Use Static Images and Sprites in V-Play

All of these free graphics won’t be much use unless you know how to use them in your game!

With V-Play, adding both Static Images and Sprites to your game is as simple as ever.

Sprites can be added to your game using V-Play’s SpriteSequenceVPlay element. This is a great element if you have a game entity that can have multiple exclusive states like walking and jumping.

Below is an example of the SpriteSequenceVPlay Element at work.

import VPlay 2.0
import QtQuick 2.0

GameWindow {

  Scene {
    // GameWindow & Scene allow multi-resolution support
    width: 480
    height: 320
    SpriteSequenceVPlay {
      id: girlAnimation
      property bool pointingRight: true // set this property to true to make the character point right
      mirrorX: pointingRight

      anchors.centerIn: parent // center it in the screen

      width: 100 // width of the image in the game
      height: 100 // height of the image in the game
          defaultSource: "../assets/shootingGirl.png" // path to the spritesheet file     

      SpriteVPlay {
        name: "shootAnimation" // you can switch animations by name later
        frameCount: 3 // number of frames in the animation
        frameRate: 10 // how fast animation plays
        frameWidth: 640 // width of 1 frame
        frameHeight: 540 // height of 1 frame

This animates our sprite like so:


If you’d just like to insert a static image, a simple Qt Image Element should do the trick.

The following code will show our image frozen in place:

import VPlay 2.0
import QtQuick 2.0

GameWindow {

  Scene {
    Image {
        id: shootingGirl
        anchors.centerIn: parent
        width: 100 // width of the image in the game
        height: 100 // height of the image in the game
        source: "../assets/shootingGirlOneFrame.png" // path to the image


Just like this:


And there you have it. If you know of any other great free game graphics for game devs, let us know in the comments section. And don’t forget to like, share or retweet if you think one of your friends would be interested in this list too!


The post 16 Great Sites Featuring Free Game Graphics for Developers appeared first on V-Play Game Engine.

Indie Mobile Available Until Aug 31st

There are many of you who have expressed disappointment with our decision to discontinue the Indie Mobile commercial license subscription product – we are disappointed with this decision as well. Our disappointment comes from the fact that we expected and believed from previous feedback that there in fact would be potential for this kind of product, as there has been tens if not hundreds of people who have expressed interest in that in different forums. Unfortunately, that potential has not materialized in real life, the adoption rate has been extremely low, and we were forced to discontinue that product as it requires resources that we are not able to justify by commercial terms. We did not expect this to be a gold mine for us, rather a product that would fill a demand gap in our offering, with a very affordable pricing. In the end, we must say that we did not see any real demand for this – having just some tens of subscribers is a testament to this. Our mistake was not to announce the retirement of that offering earlier, and we do apologize for that.

We do honor our current subscribers, and we would like to now offer, for a limited time, those who have been considering the Indie Mobile package the opportunity to still subscribe to it with the same price of $25/month. We will offer this until August 31. Please use the following link to take advantage of the offer: www.qt.io/buy-product. We will continue to honor all subscribers of Indie Mobile after August 31st, however, after that date we will no longer make new sales of the package and we will proceed with discontinuing it.

We are constantly looking for new business models and opportunities to serve our customers and community better. The discontinuation of Indie Mobile will enable us to invest in new things, and we still believe that there should be opportunities for other products like Indie Mobile. Our new Qt for Application Development offering provides all desktop and mobile platforms and the subscription price is actually a lot cheaper than it was previously ($350 vs. $399). The latest Vision Mobile CPT report names Qt #4 with 18% mindshare as a cross-platform mobile development tool. Vision Mobile, at least, believes Qt will catch up to the Top 3 in no time. So, if you would still like to develop with Qt for mobile app development, you can, of course, use our Open Source offering.

Thanks again for your feedback and we do apologize for not being transparent earlier with our plans for the Indie Mobile package. We hope that those that were planning to develop a commercial mobile  app with Qt, take advantage of Indie Mobile before August 31st.

The post Indie Mobile Available Until Aug 31st appeared first on Qt Blog.

New in Qt 5.5: Q_ENUM and the C++ tricks behind it

Qt 5.5 was just released and with it comes a new Q_ENUM macro, a better alternative to the now deprecated Q_ENUMS (with S).

In this blog post, I will discuss this new Qt 5.5 feature; What it does, and how I implemented it. If you are not interested by the implementation details, skip to the conclusion to see what you can do in Qt 5.5 with Q_ENUM.

The problem

In order to better understand the problem it solves, let us look at this typical sample code using Q_ENUMS as it already could have been written with Qt 4.0.

class FooBar : public QObject {
  enum Action { Open, Save, New, Copy, Cut, Paste, Undo, Redo, Delete };

  void myFunction(Action a) {
    qDebug() << "Action is: " << a;

But here, the qDebug will look like this:
Action is: 8
It would be much better if I could see the text instead such as:
Action is: Delete

Q_ENUMS tells moc to register the names of the enum value inside its QMetaObject so that it can be used from Qt Designer, from QtScript or from QML. However it is not working yet with qDebug.

One could use the information in the QMetaObject while overloading the operator<< for QDebug and use QMetaObject's API:

QDebug operator<<(QDebug dbg, FooBar::Action action)
  static int enumIdx = FooBar::staticMetaObject.indexOfEnumerator("Action");
  return dbg << FooBar::staticMetaObject.enumerator(enumIdx).valueToKey(action);

That has been working fine since Qt 4.0, but you have to manually write this operator and it is a lot of code that is somehow error prone. Most of Qt's own enumerations did not even have such operator.

The Solution

I wanted this to be automatic. The problem is that we had no way to get the QMetaObject of the enclosed QObject (or Q_GADGET) associated with a given enumeration. We also need the name of the enumeration to be passed as an argument to QMetaObject::indexOfEnumerator.
Let us suppose we have some magic functions that would do exactly that. (We will see later how to make them):

QMetaObject *qt_getEnumMetaObject(ENUM);
const char *qt_getEnumName(ENUM);

We could then do:

template <typename T>
QDebug operator<<(QDebug dbg, T enumValue)
    const QMetaObject *mo = qt_getEnumMetaObject(enumValue);
    int enumIdx = mo->indexOfEnumerator(qt_getEnumName(enumValue));
    return dbg << mo->enumerator(enumIdx).valueToKey(enumValue);

Argument dependent lookup (ADL) will find the right overload for qt_getEnumMetaObject and qt_getEnumName, and this function will work. The problem is that this template will match any type, even the ones that are not enumerations or that are not registered with Q_ENUM for which qt_getEnumMetaObject(enum) would not compile. We have to use SFINAE (substitution failure is not an error) to enable this operator only if qt_getEnumMetaObject(enum) compiles:

template <typename T>
typename QtPrivate::QEnableIf<QtPrivate::IsQEnumHelper<T>::Value , QDebug>::Type
operator<<(QDebug dbg, T enumValue)
    const QMetaObject *mo = qt_getEnumMetaObject(enumValue);
    int enumIdx = mo->indexOfEnumerator(qt_getEnumName(enumValue));
    return dbg << mo->enumerator(enumIdx).valueToKey(enumValue);

QEnableIf is the same as std::enable_if and IsQEnumHelper is implemented this way:

namespace QtPrivate {
template<typename T> char qt_getEnumMetaObject(const T&);

template<typename T>
struct IsQEnumHelper {
  static const T &declval();
  // If the type was declared with Q_ENUM, the friend qt_getEnumMetaObject()
  // declared in the Q_ENUM macro will be chosen by ADL, and the return type
  // will be QMetaObject*.
  // Otherwise the chosen overload will be the catch all template function
  // qt_getEnumMetaObject(T) which returns 'char'
  enum {
    Value = sizeof(qt_getEnumMetaObject(declval())) == sizeof(QMetaObject*)

So now it all boils down to how to implement the Q_ENUM macro to declare this qt_getEnumMetaObject.
We need to implement the function qt_getEnumMetaObject in the same namespace as the class. Yet, the macro is used within the class. How can we implement the function in the class? Perhaps using some static function or some template magic? No! We are going to use a friend function. Indeed, it is possible to define a function in a friend declaration. As an illustration:

namespace ABC {
  class FooBar {
    friend int foo() { return 456; }

foo is in the namespace ABC (or the global namespace if FooBar was not in a namespace). But the interesting fact is that in the body of that function, the lookup is done within the class's scope:

class FooBar {
  friend const QMetaObject *getFooBarMetaObject() { return &staticMetaObject; }

  static const QMetaObject staticMetaObject;

This uses the staticMetaObject of the class (as declared in the Q_OBJECT macro). The function can just be called by getFooBarMetaObject(); (without the FooBar:: that would be required if it was a static function instead of a friend).
With that we can now construct the Q_ENUM macro:

#define Q_ENUM(ENUM) \
    friend constexpr const QMetaObject *qt_getEnumMetaObject(ENUM) noexcept { return &staticMetaObject; } \
    friend constexpr const char *qt_getEnumName(ENUM) noexcept { return #ENUM; }

Each instance of this macro will create a new overload of the functions for the given enum type. However, this needs the ENUM type to be declared when we declare the function. Therefore we need to put the Q_ENUM macro after the enum declaration. This also permits only one enum per macro while Q_ENUMS could have several.

(moc will still interpret the Q_ENUM macro like the old Q_ENUMS macro and generate the same data.)

Using this, I also introduced a new static function QMetaEnum::fromType<T>() which let you easily get a QMetaEnum for a given type. This is how it is implemented:

template<typename T>
QMetaEnum QMetaEnum::fromType()
  const QMetaObject *metaObject = qt_getEnumMetaObject(T());
  const char *name = qt_getEnumName(T());
  return metaObject->enumerator(metaObject->indexOfEnumerator(name));

We can also integrate it with QMetaType to register this type automatically and register the correspding meta object to the metatype system. From that, we can use this information in QVariant to convert from a string or to a string.

(Note: The code snippets shown were slightly simplified for the purpose of the blog. Check the real implementation of the debug operator<<, or QMetaEnum::fromType, or QTest::toString.


Q_ENUM is like the old Q_ENUMS but with those differences:

  • It needs to be placed after the enum in the source code.
  • Only one enum can be put in the macro.
  • It enables QMetaEnum::fromType<T>().
  • These enums are automatically declared as a QMetaTypes (no need to add them in Q_DECLARE_METATYPE anymore).
  • enums passed to qDebug will print the name of the value rather than the number.
  • When put in a QVariant, toString gives the value name.
  • The value name is printed by QCOMPARE (from Qt 5.6).

You can read more articles about Qt internals on our blog.

Qt3D Technology Preview Released with Qt 5.5.0

KDAB is pleased to announce that the Qt 5.5.0 release includes a Technology Preview of the Qt3D module. Qt3D provides a high-level framework to allow developers to easily add 3D content to Qt applications using either QML or C++ APIs. The Qt3D module is released with the Technology Preview status. This means that Qt3D will continue to see improvements across the API design, supported features and performance before release. It is provided to start collecting feedback from users and to give a taste of what is coming with Qt3D in the future. Please grab a copy of the Qt 5.5.0 release and give Qt3D a test drive and report bugs and feature requests.

Qt3D provides a lot of functionality needed for modern 3D rendering backed by the performance of OpenGL across the platforms supported by Qt with the exception of iOS. There is work under way to support Qt3D on iOS and we expect this to be available very shortly. Qt3D allows developers to not only show 3D content easily but also to totally customise the appearance of objects by using the built-in materials or by providing custom GLSL shaders. Moreover, Qt3D allows control over how the scene is rendered in a data-driven manner. This allows rapid prototyping of new or custom rendering algorithms. Integration of Qt3D and Qt Quick 2 content is enabled by the Scene3D Qt Quick item. Features currently supported by the Qt3D Technology Preview are:

  • A flexible and extensible Entity Component System with a highly threaded and scalable architecture
  • Loading of custom geometry (using built in OBJ parser or assimp if available)
  • Comprehensive material, effect, render pass system to customise appearance
  • Data-driven renderer configuration – change how your scene is rendered without touching C++
  • Support for many rendering techniques – forward, deferred, early z-fill, shadow mapping etc.
  • Support for all GLSL shader stages (excluding compute at present)
  • Good support for textures and render targets including high-dynamic range
  • Support for uniform buffer objects where available
  • Out of the box support for simple geometric primitives and materials
  • Keyboard input and simple camera mouse control
  • Integration with Qt Quick 2 user interfaces

Beyond rendering, Qt3D also provides a framework for adding additional functionality in the future for areas such as:

  • Physics simulation
  • Skeletal and morph target animation
  • 3D positional audio
  • Stereoscopic rendering
  • Artificial intelligence
  • Advanced input mechanisms

To learn more about the architecture and features of Qt3D, please read KDAB’s series of blogs and the Qt3D documentation.

KDAB and The Qt Company will continue to improve Qt3D over the coming months to improve support for more platforms, input handling and picking, import of additional 3D formats, instanced rendering, more materials and better integration points to the rest of Qt. If you wish to contribute either with code, examples, documentation or time then please contact us on the #qt-3d channel on freenode IRC or via the mailing lists.

The post Qt3D Technology Preview Released with Qt 5.5.0 appeared first on KDAB.

Make Qt 3D Games with Qt 5.5 and New V-Play Release 2.5.0

The new Qt release 5.5.0 adds a long desired feature: 3D support for Qt. The new Qt3D module allows 3D content within Qt applications. This is great news for all game developers, because 3D games are now possible with Qt and V-Play!


Qt3D Use Cases

Why is 3D support such a big deal?

V-Play and Qt have always been 2D specialized and optimized frameworks. Although popular 3D applications were created with Qt like Autodesk Maya and Daze3D (using QGLWidget), this required to work with C++ and OpenGL. In comparison, you can develop much faster with QML (aka Qt Quick) while keeping native performance. The new Qt3D additions enable you to use QML and dedicated 3D QML components to avoid low-level OpenGL development, with the same performance benefits.

This allows you to mix both 2D and 3D elements in your game or app, which is especially useful when you want to:

  • Define the User Interface in QML and 2D, and load the game objects in 3D.
  • Load 3D models and freely move and rotate them in your Qt app, which saves space compared to using sprite sheets.

To showcase some of these concepts, we made a tech demo of what’s possible with Qt3D. Our experience from creating the demo is:

Mixing 3D content with 2D elements has never been easier & faster in any programming language!

How V-Play Adds 3D Game Support to Qt

When creating the tech demo, we had the following goals:

  • Mix 3D Content of the Qt3D Tech Preview with 2D UI
  • Re-use the same entity-based game logic of a 2D V-Play game with 3D models
  • As Proof of Concept: A Minimap that is rendered with 2D images on top of 3D world
  • Use these Qt3D features: 3D Models, Transforms, Skybox, Follow Camera
  • Box2D physics-based movement

It’s really amazing how little code we needed to change an existing 2D-based game and transform it into a 3D world. All you need to do is replace the 2D images and sprite animations with 3D models and add a camera. In the tech demo, we even left the 2D visuals in the game to show that mixing 2D and 3D is possible as well – you can see the 2D rendering on the minimap. You could of course also create a top-down minimap in 3D by adding another viewport, but for the tech demo the 2D mixing approach was a perfect proof of concept.


We have added 3D components to the new V-Play release 2.5.0 which makes working with Qt3D easier and simplify game creation.

For example the Car entity looks like this:

import VPlay 2.0
import QtQuick 2.0

EntityBase {

  // this Box2D physics component modifies the entity position by applying forces
  // when the entity position changes, the Render and Image components change too
  BoxCollider {

  // new V-Play component that allows loading a Mesh and a texture
  Render3D {
    source: "assets/3d/car_model.obj"
    texture: "assets/3d/car_texture.png"

  // like this it was in the 2D version, a top-down image of the car
  // mixing of 2D components with 3D components is easily possible
  Image {
    source: "assets/2d/car.png"

You can also have a look at the full source code of the Car Challenge 3D game here.

Play the Qt 3D Game Car Challenge 3D

The following options are available to you to test the game and experiment with the tech demo:

Download Car Challenge 3D from Google Play Store


Download Car Challenge 3D for Desktop

Car Challenge 3D is available for Windows & Mac as part of the V-Play Sample Launcher. You can either download the standalone desktop application here, or download the V-Play SDK which allows you to develop with Qt 3D and V-Play for free.

On Linux, you can run Car Challenge 3D from <V-PlaySDK/Examples/V-Play/demos/CarChallenge3D after downloading the V-Play SDK.

Note: In order to improve the Qt3D state, it helps if you share your experiences (or possible crashes on your device and operating system). You can share your feedback here.

Get the Full Car Challenge 3D Source Code for Free

To develop with the brand-new V-Play 3D components and Qt3D, download the V-Play SDK.

Download V-Play SDK & Car Challenge 3D

If you have an existing Qt 5 installation, you can also add V-Play on top of the new Qt 5.5 release as described here.

If you already have V-Play installed, add update to the latest release 2.5.0 as described in the Update Guide and make sure to use a Qt 5.5 compiler. Alternatively, you can downlad and install the new V-Play 2.5.0 Offline Installer and remove your current installation afterwards.

Start 3D Development

The V-Play Sample Launcher allows you to quickly test and run all the open-source examples and demo games that come with the V-Play SDK, from a single desktop application. This also includes the new Car Challenge 3D Tech Demo!

After installing the V-Play SDK, you can start it from <V-PlaySDK/Examples/V-Play/sampleLauncher.

Now just choose Car Challenge 3D and you can explore & copy the source code right from within the Sample Launcher, and then continue development with Qt Creator.

What’s the Roadmap of Qt 3D and V-Play 3D?

Qt3D is in a Tech Preview state now supported on Android, Windows, Mac and Linux, with the goal to gather feedback about its API, stability and performance. iOS support and API finalisation will follow with the next Qt releases in the coming months, based on your feedback. However, Qt3D and V-Play 3D is already now in a good shape and you can use it in your published games and apps already.

We will continue to provide more 3D components and examples to show you how to use shadow mapping, multiple viewports and anaglyph rendering in games and apps.


PS: Kudos to KDAB who have contributed massive parts of the Qt3D module and have done a great job in designing the 3D Qt APIs. You can find a great article series about Qt3D concepts on the KDAB Blog here.

PPS: For more details on the Qt 5.5.0 Release and our Qt3D launch partnership with The Qt Company visit the awesome Qt Developer Blog.


Join us on this exciting new journey and share the good news below. :)

The post Make Qt 3D Games with Qt 5.5 and New V-Play Release 2.5.0 appeared first on V-Play Game Engine.

Qt 5.5 Released

It is my pleasure to announce that Qt 5.5 has been released today. Over the last 6 months, we’ve been working hard to create a great release for you.

As a result, close to 1500 reported bugs have been fixed during this period, and we’ve implemented numerous performance improvements throughout the whole stack. We’ve filled a couple of holes in our cross platform offering, bringing better feature parity between the platforms in areas such as Multimedia and Bluetooth.

We have invested lots of efforts to make sure Qt 5.5 is ready for Windows 10 once it gets officially released by Microsoft. That Qt is running on top of the new WinRT APIs on Windows 8 already since Qt 5.3 gave us a great basis for those efforts. With this we are confident that we can fully support Windows 10 as soon as it is being made available with a Qt 5.5.x patch release.

Linux packages are now being built on RedHat Enterprise Linux, allowing to cover a wider range of Linux distributions (from RHEL 6.6 up to Ubuntu 15.04) with one set of binaries.

A lot of work has been put into the version for Mac OS X, where we now use Apple’s Secure Transport layer to enable SSL functionality, support Bluetooth and Bluetooth LE, support Qt WebView and fixed many issues with Qt Multimedia.

Simplified Product Offering

Another change coming with Qt 5.5, is a greatly simplified product structure. There are now three versions of Qt available.

Qt for Application Development is our commercial offering that allows you to create applications for all desktop and mobile platforms that Qt supports. It comes with full support and our flexible commercial licensing.

Qt for Device Creation is the second commercial product. It targets the creation of embedded devices, and comes with a lot of tooling and support to make this as easy as possible. Of course with full support and our flexible commercial licensing as well.

And finally, we have Qt Open Source, our open source version that you can use under the terms of the LGPL (version 2.1 and/or version 3) or GPL.

For more details about this new product offering have a look at our new product pages on qt.io .

New Functionality

As always, Qt 5.5 comes bundled together with the latest version of Qt Creator and a large amount of new functionality. Let me highlight some of them in this blog.


The Bluetooth LE API that got introduced as a Technology Preview with Qt 5.4, is now final and supported on Android, Mac OS X and iOS in addition to the existing backends on Linux.


With Qt’s root being a graphical toolkit, we have always had a strong focus on graphics. A good integration with OpenGL has been available since Qt 2 times. This integration has mainly focused on low level enablers and classes.

With Qt 5.5, we now take a large step forward, adding two new modules that greatly extend our set of 3D APIs:

Qt Canvas 3D is a new module that makes it very easy to directly use WebGL code from within Qt Quick. The module existed as a Technology Preview in Qt 5.4. We’ve taken the time since then to mature it, and I’m happy to now have it as a fully supported module inside the Qt frameworks. Qt Canvas 3D implements a WebGL-like API for Qt Quick, and can be used both with low level WebGL code or in conjunction with JavaScript frameworks such as three.js, making the handling of 3D content inside Qt Quick trivial.

The other new module is Qt 3D, available as a Technology Preview for Qt 5.5. Qt 3D existed as a library during Qt 4 times, but has now undergone some major rework to make it fit to the world of modern OpenGL.

Qt 3D takes our OpenGL support a large step forward making it much easier to integrate 3D content into Qt applications. The module comes with both C++ and QML APIs. For more details what Qt 3D 2.0 brings, you can check the Qt 3D documentation and the KDAB guest blog post. Being a Technology Preview, the module still has some rough edges. However, check out the Qt 3D game demo that V-Play managed to create already with the tech preview. Please let us know what you think, so that we can turn Qt 3D into a fully supported part of Qt with Qt 5.6.

Using OpenGL on Windows has always been somewhat problematic as good drivers are not available in all installations by default. Qt 5.5 helps solve this problem by switching dynamically between using the OpenGL driver or the ANGLE emulation layer implementing OpenGL on top of DirectX.

Qt Location

Another new module that now found it’s way to Qt 5.5 as a Technology Preview is Qt Location. Qt Location adds mapping, geocoding, routes and places support to Qt. In conjunction with the existing Qt Positioning API, it should give you all you need to create location aware applications. Qt Location can make use of different mapping providers. We currently support Nokia Here, Mapbox and Openstreetmap. Check out the examples in documentation.

Qt Quick

A lot of work has gone into improving Qt Quick. The QML and JavaScript engine now supports JavaScript typed arrays. In Qt Core, we added support for properties and invokable methods to Q_GADGETs, making it much easier to expose your own value based classes in QML. Qt Quick has gotten improvements to make Flickable and PinchArea work better on Mac OS X and iOS.

The Enterprise Controls have been folded into Qt Quick Controls and are now also available in the open source version. A TreeView control has been added to complete the set of controls required for creating desktop applications.

Qt Multimedia

A lot of work has also gone into Qt Multimedia. On Linux, we have now added gstreamer 1.0 support and lots of bugs have been fixed for the other platforms. Camera support has been greatly improved. The new Video filtering framework is a great new feature that allows the integration of frameworks, such as OpenCL or CUDA with VideoOutput elements.

Watch how Qt Multimedia with real-time video/camera integrates with the computer vision library (OpenCV) to create a real-time pattern recognition application that identifies speed signs on this short road trip. Further functionality could be added to this demo by, for example, displaying a warning if the vehicle’s speed exceeds the last recognized sign.

Qt WebEngine

Qt WebEngine has been updated to Chromium version 40 and has received new APIs for managing downloading of files, controlling cache and cookies, as well as settings. Support for Qt WebChannel is now built-in and many experimental APIs are now public and fully supported.

Other Improvements

Of course, there are a lot of other improvements and new features in Qt 5.5. Please have a look at the wiki for all the details.

Deprecated Modules

With all these new features coming, some older ones are being deprecated, namely Qt WebKit, Qt Quick 1 and Qt Script. All of these modules are still available with Qt 5.5, but we strongly recommend using their replacements for any new functionality: Qt WebEngine, Qt Quick, and Qt QML, which also provides a fully compliant JavaScript engine. For most uses cases, the new replacement modules should be more suitable and provide better functionality than the replaced ones.

Learn More about Qt 5.5

To ease you into Qt 5.5, we have scheduled 2 LIVE webinars (July 2nd & July 3rd) so you can hear first hand what is new in Qt 5.5. Please make sure to register here: http://www.qt.io/webinar-qt5-5/.

Learn Even More at Qt World Summit 2015

Registration for the Qt World Summit 2015 (Oct 5-7, Berlin) is open. This is the main global Qt event where Qt experts from The Qt Company and the community will deliver 50+ technical and strategic sessions. Qt World Summit will give you the knowledge you need to kick start your Qt development project as well as provide you with the insight and tips and tricks necessary to make sure your Qt product is successful. Make sure to register today and take advantage of the Early Bird pricing (SAVE EUR 70) ending July 13th and/or learn about group discounts: www.qtworldsummit.com.


I’d like to take the opportunity to thank everybody who helped develop and create Qt 5.5. The release wouldn’t have been possible without the hard work of many people in the community and from The Qt Company. A special thanks goes to KDAB, who invested lots of time and efforts to make the Qt 3D Technology Preview ready for Qt 5.5.

Now go and get Qt 5.5 from your Qt Account portal or from qt.io/download. Enjoy!

The post Qt 5.5 Released appeared first on Qt Blog.

Qt Creator 3.4.2 released

We are happy to announce the release of Qt Creator 3.4.2.

The main change in 3.4.2 is that our binaries are now based on the new Qt 5.5 release, benefitting from its support of a wider range of Linux distributions, and its other improvements. We also fixed recognition of the MSVC 2015 tool chain and a crash in the Valgrind analyzer.

You find the opensource version on the Qt download page, and Enterprise packages on the Qt Account Portal. Please post issues in our bug tracker. You also can find us on IRC on #qt-creator on irc.freenode.net, and on the Qt Creator mailing list.

The post Qt Creator 3.4.2 released appeared first on Qt Blog.

Qt3D 2.0 Technology Preview

This blog post is written by a guest blogger, the maintainer of Qt3D module and the Managing Director KDAB UK Ltd, Dr Sean Harmer.

KDAB is pleased to announce that the Qt 5.5.0 release includes a Technology Preview of the Qt3D module. Qt3D provides a high-level framework to allow developers to easily add 3D content to Qt applications using either QML or C++ APIs. The Qt3D module is released with the Technology Preview status. This means that Qt3D will continue to see improvements across the API design, supported features and performance before release. It is provided to start collecting feedback from users and to give a taste of what is coming with Qt3D in the future. Please grab a copy of the Qt 5.5.0 release and give Qt3D a test drive and report bugs and feature requests.

Qt3D provides a lot of functionality needed for modern 3D rendering backed by the performance of OpenGL across the platforms supported by Qt with the exception of iOS. There is work under way to support Qt3D on iOS and we expect this to be available very shortly. Qt3D allows developers to not only show 3D content easily but also to totally customise the appearance of objects by using the built in materials or by providing custom GLSL shaders. Moreover, Qt3D allows control over how the scene is rendered in a data-driven manner. This allows rapid prototyping of new or custom rendering algorithms. Integration of Qt3D and Qt Quick 2 content is enabled by the Scene3D Qt Quick item. Features currently supported by the Qt3D Technology Preview are:

  • A flexible and extensible Entity Component System with a highly threaded and scalable architecture
  • Loading of custom geometry (using built in OBJ parser or assimp if available)
  • Comprehensive material, effect, render pass system to customise appearance
  • Data-driven renderer configuration – change how your scene is rendered without touching C++
  • Support for many rendering techniques – forward, deferred, early z-fill, shadow mapping etc.
  • Support for all GLSL shader stages (excluding compute at present)
  • Good support for textures and render targets including high-dynamic range
  • Support for uniform buffer objects where available
  • Out of the box support for simple geometric primitives and materials
  • Keyboard input and simple camera mouse control
  • Integration with Qt Quick 2 user interfaces

Beyond rendering, Qt3D also provides a framework for adding additional functionality in the future for areas such as:

  • Physics simulation
  • Skeletal and morph target animation
  • 3D positional audio
  • Stereoscopic rendering
  • Artificial intelligence
  • Advanced input mechanisms

To learn more about the architecture and features of Qt3D, please read KDAB’s series of blogs and the Qt3D documentation.

KDAB and The Qt Company will continue to improve Qt3D over the coming months to improve support for more platforms, input handling and picking, import of additional 3D formats, instanced rendering, more materials and better integration points to the rest of Qt. If you wish to contribute either with code, examples, documentation or time then please contact us on the #qt-3d channel on freenode IRC or via the mailing lists.

The post Qt3D 2.0 Technology Preview appeared first on Qt Blog.

Qt Japan Summit 2015 | Build Your World

Last month’s Qt Japan Summit 2015 offered insightful keynotes & several technical sessions focusing on the latest Qt features as well as amazing demos and customer stories from industries such as automotive, consumer electronics and automation.

We are happy that this year’s event was even larger than last year’s and we have our sponsors SRA, ISB, Adeneo Embedded, Wind River, PTP and the Japan Qt Users’ group to thank for that.

Whether you were able to attend the event or missed it, the presentation materials are available for your convenience.

View presentations: http://www.qt.io/qtjapansummit2015-sessions/

Japan had a ‘Build your world with Qt’ theme, from talks to exhibitions, demos to anniversary celebrations, and you can relive the experience via the photos. If you came to the Qt Japan Summit, thank you again for visiting us!

QtJS Keynotes Collage

Qt JAPAN SUMMIT Breakout collage

Please contact qjs@theqtcompany.com for any questions & comments regarding the Qt Japan Summit.

The post Qt Japan Summit 2015 | Build Your World appeared first on Qt Blog.

Qt Bluetooth and its state of the union

Even though a lot of Qt use cases are about creating user interfaces, Qt provides a diverse set of middle-layer APIs for non-GUI functionality. One of the younger middle-layer APIs in Qt is Qt Bluetooth. From its first release in Qt 5.2 onwards, it has grown and improved in every Qt release.

In light of the forthcoming Qt 5.5 release, I’d like to tell you a bit more about the current status of Qt Bluetooth. It started out as a solution to interact with Bluetooth devices on Linux using Bluez 4.x. At the time, the supported feature set focused on classic Bluetooth development. It targeted the type of profiles and capabilities most commonly encountered by applications:

  • Local Device Control
  • Device & Service Discovery
  • OBEX Push
  • Serial Port Profile for Server & Client

Over time, the number of supported platforms was significantly expanded to cover Android (Qt 5.3), Bluez 5 (Qt 5.4) & OS X (Qt 5.5). Unfortunately, there are no API’s which would permit the implementation of the above features on iOS too.

One of the more recent feature additions is related to Bluetooth Low Energy and Internet of Things. What started as a Technology Preview in Qt 5.4 for Linux quickly became a very important subset of the Qt Bluetooth APIs. The recent explosion of available wearables, health and environment sensors requires Qt to be able to interact with such Bluetooth Smart enabled devices. Qt 5.5 takes this development into account and provides Bluetooth Low Energy support on all existing Qt Bluetooth platforms. In addition, Bluetooth Low Energy on iOS was added too.

Well, what’s missing? I guess my personal list is rather long and some of those items are less visible. Hopefully, we can close the gap towards the last major platform which is not yet supported. A WinRT port is being planned for Qt 5.6. On the Low Energy side of things, Qt Bluetooth should be able to run on Bluetooth Low Energy devices which offer their services to other devices (server role). Better scanning and advertising features, to interact for example with devices adhering to the iBeacon standard, are desirable too.

For the interested mind, the semi-official roadmap for the missing features is QTBUG-31674. I am interested in your feedback. Either drop a comment here or directly in Jira.

The post Qt Bluetooth and its state of the union appeared first on Qt Blog.

Squish tip of the week: Bring window to foreground

When working with multiple applications, or multiple windows in a single application, you can tell Squish to bring the desired window to the foreground before working with the window.

This applies to many different technologies or toolkits.

For example, when working with NSWindow on Mac OS X (Cocoa), given the name or title of the window, you can do the following:

def main():

    objName = "{title='MyApp Window #1' type='NSWindow'}"
    waitFor("object.exists(\"%s\")" % objName, 20000)
    nsw = findObject(objName)

Read more about this Mac OS X Cocoa example, or other examples in the following Knowledgebase articles:

Remember; we’re always adding to our knowledgebase and other online resources to provide you with the most current and helpful information!


16 Great Websites Featuring Free Game Sounds for Developers

Every game needs great music sounds. Here at V-Play, we’ve put together a list ranking 16 of our favourite websites offering free game sounds to help you develop your next game. If you’re looking for effects, UI sounds, background music or more, you’ll find it here. Best of all, they’re all for royalty-free so you can use them again and again. Hope you like the free game sounds!


  1. Freesound.org
  2. 99Sounds.org
  3. NoiseForFun.com
  4. Incompetech.com
  5. OpenGameArt.org
  6. RaisedBeaches.com
  7. Musopen.org
  8. PlayonLoop.com
  9. Bensound.com
  10. SoundJay.com
  11. Dig.ccmixter.org
  12. Soundgator.com
  13. Pacdv.com
  14. Freesfx.co.uk
  15. Soundtrack.imphenzia.com
  16. Bxfr.net



Freesound - for free game sounds

The first site on our list is www.freesound.org. This site is a treasure trove of royalty-free sound samples and is utilised by many professional musicians and filmmakers. Samples from freesound.org have been used by The Prodigy and featured in the movie Children of Men. You can search freesound.org by keyword, licence type, file type and many more parameters so you’ll only see the search results you want. If you don’t find what you need, reach out to the community and someone might be able to help you.



99sound - for free game sounds
99sounds.org is a website offering free downloads of royalty-free content generated by its own users. It has a great selection of high quality sound effects and is updated every month with a new sample pack. The variety of sample packs range from punching sound effects to ambient soundscapes. My favourite thing about 99sounds is that you don’t even have to register to access these amazing free game sounds, although registration does mean that you receive updates every time a new pack is launched.



noiseforfun - for free game sounds

NoiseForFun.com is a freeware project created in 2011 by sound designer and composer Filippo Vicarelli. All of the sound effects are available to use royalty-free and you don’t even need to register. Sounds are arranged according to game genre making it extremely easy for game developers to navigate. If you need to find a sound quickly, then this is the place to go.



Incompetech - for free game sounds

For an even broader and more eclectic mix of game music, you should definitely check out incompetech.com’s royalty-free music section. The unique thing about imcompetech.com is that all of the tracks that make up the songs are also available to download individually. So if you hear even one part of song that you like, you can download it and use it in your game.



OpenGameArt - for free game sounds

OpenGameArt.org is the starting point for many indie developers on the hunt for graphics, but it’s also a source for free game sounds. Users upload their own sounds and choose what licence they share their music under. There are already hundreds of sounds to choose from and more are always being added. Besides the free game sounds, OpenGameArt.org also has an extremely active forum where you can interact with the very people that create the sounds.



Raisedbeaches - for free game sounds

Raisedbeaches.com offers something every game designer needs. The Octave collection that they’ve made available is a comprehensive selection of free UI sound effects in .aif form. The collection is made up of 48 beeps, slides and clicks that will bring your UI to the next level. The Octave collection can be downloaded at the click of a button and used in your project today. Its author doesn’t require attribution but it’s always welcome.



Musopen - for free game sounds

If you want to add a touch of class to your game, then you’ll want to check out musopen.org right now. This non-profit website is dedicated to sharing music, but most noticeably, it has a great collection of classical music that is free to download and use in your games. You can browse by composer, artist, time period or instrument. You can preview all recording, which may be a good idea as the sound quality varies from track to track.



PlayonLoop - for free game sounds

Playonloop.com is the sister site of noiseforfun.com and offers background loops for games. This site definitely lives up to the standards of its sibling and is a fantastic source for game music. While all of the loops on the site have a price listed, the same loops are also available as a free download in shortened form. Free downloads are available with a CC-BY 3.0 License, meaning you need to attribute playonloop.com



Bensound - for free game sounds

Bensound.com is a source of royalty-free game music that is available to use under Creative Commons License Attribution-NoDerivs 3.0. This website is really easy to use and the songs themselves really stand up at a professional level. There is a song for every game on this website and if you want to find a song as quickly as possible, then this would definitely be my pick. The songs are arranged by genre and made available for free as mp3 files.



SoundJay - for free game sounds

Soundjay.com have a huge collection of royalty-free content available on their site that you can use without any attribution, although they would like to be properly credited for their work. Their content is very well organised and you can download both mp3 and wav files at the click of a mouse. The stand-out category for me is the miscellaneous section which contains some really obscure sounds.



digccmixter - for free game sounds

Dig.ccmixter.org is next on our list and for a very good reason. This website gives you access to royalty-free songs submitted by its users and searchable according to different tags. A cool feature on this site is that you can listen to tracks from one artist while you continue to browse other titles. There’s a broad range of genres to choose from so it’s a great site for game devs to delve into.



Soundgator - for free game sounds

Soundgator.com is a site dedicated solely to providing royalty-free sound effects. It does require registration but the effects are completely free to use. The site is really easy to navigate and it has great search functionality. The sounds are ordered according to category and I particularly like its collection of ambient sounds. If you want to add some real life sounds to your game, this would definitely be the place to look.



Pacdv - for free game sounds

This website has been operational since 2001 and has amassed a great deal of sound effects since then. All of the sounds on Pacdv.com are royalty-free and have also been used by a number of filmmakers and music producers. The sounds are once again ordered by category and can be previewed on site. In order to download a sound, you just need to click on it and then right-click and select ‘Save as’ to anywhere on your computer.



freesfx - for free game sounds

Freesfx.co.uk is a great site to find sound effects for your game. This site has hundreds of effects in a large variety of categories that can be used in any commercial game, as long as you credit freesfx.co.uk. On top of the selection of sound effects, they also have a great library of royalty-free songs. It could have the effect that you’re missing right now.



Imphenzia - For Free game sounds

Soundtrack.imphenzia.com is the work of Stefan Persson and it offers a great number of sound effects for free. Although this site mainly offers sound effects for sale, it has a great number of completely free game sounds which are available to download in a variety of file types. Stefan’s area of expertise is alarm, laser and explosion sounds, so if that’s what you’re after, don’t waste any time visiting his site.



bxfr - for free game sounds

Bfxr.net isn’t necessarily a resource, it’s actually an online tool that allows you to create your own sound effect and then export it to disk as a .wav file. It’s a really cool way to create your own free game sounds and will keep any musically inclined V-players entertained for hours. If you’ve got a bum ear, don’t worry too much. Bxfr is loaded with presets that can be easily tweaked to give you high quality sound effects in seconds. It’s also available to download as a stand-alone program.


How to Play Free Game Sounds in V-Play

Now that you’ve found all these amazing free game sounds for your new game, you may be wondering how to use them. With V-Play, you can add background music or sound effects to your game in seconds.

For background music that will always play during your game, you can use our BackgroundMusic element. It supports ogg and mp3 format and it streams the music to the game, saving on resources. On top of that, the music will pause if you ever get a phone call or some other game interruption.

For shorter sounds such as sound effects or UI sounds you can use the SoundEffectVPlay element. This element works best with low latency sounds and sounds that need to begin immediately after their play function has been called.

Here is a quick example of how both of these sound elements can be used:


import VPlay 2.0
import QtQuick 2.0

GameWindow {    
    Scene {
        Column {
            SimpleButton {
                text:"Sound Effect"
                onClicked: clickSound.play()
            SimpleButton {
                text: "Background Music"
                onClicked: music.pause()
        SoundEffectVPlay {
            id: clickSound
            source: "clickSound.wav"
        BackgroundMusic {
            id: music
            source: "awesomeBackgroundMusic.mp3"


So that’s our list. If you know of any other great free game sounds for game developers, let us know in the comments section. And if you really liked the article or think someone you know would like to read it, please share it using the options below!


The post 16 Great Websites Featuring Free Game Sounds for Developers appeared first on V-Play Game Engine.

Qt is coming to Red Hat Enterprise Linux!

For some time now it has been possible to compile and use Qt manually on the Red Hat Enterprise Linux platform, but with the later Qt 5 releases it hasn’t been as  straightforward due to the libraries and tools that come provided with Red Hat Enterprise Linux. Now with the release of Qt 5.5.0, there will be full and official support for Red Hat Enterprise Linux 6.6!

What this actually means is that Qt is tested on Red Hat Enterprise Linux 6.6 along with the other platforms that are CI tested (i.e Qt is regularly built and platform tests are run on a regular basis to try and prevent bugs from being introduced when a change is made), as indicated here http://doc.qt.io/QtSupportedPlatforms/index.html.

In addition to the fact that Red Hat Enterprise Linux 6.6 is now tested much more thoroughly on a regular basis, there will also be a pre-built version of Qt for this platform. This will enable you to download Qt and install it without having to wait for the compilation to succeed. This also means less hassle with setting up all the dependencies and the like to get Qt built.

Since the same rules apply for earlier versions of Red Hat Enterprise Linux, as for any other Linux distribution, Qt will be usable on these platforms, too. As long as you can use a supported compiler version and the dependencies required for building Qt are also available then there is no problem with compiling and developing with Qt on the earlier versions. However, for simplicity and ease of use reasons, we recommend that you consider moving to Red Hat Enterprise Linux 6.6 when switching to Qt 5.5.0.

The post Qt is coming to Red Hat Enterprise Linux! appeared first on Qt Blog.