This event has ended. View the official site or create your own event → Check it out
This event has ended. Create your own
Please visit the C++Now website.
View analytic
Thursday, May 12 • 9:00am - 10:30am
Let's make a web match-3 game in C++14 using Dependency Injection(experimental Boost.DI), Meta State Machine(experimental Boost.MSM-lite) RangeV3 and MSVC and Emscripten

Log in to save this to your schedule and see who's attending!

Developers often complain that there is no practical usage for some design patterns like Dependency Injection. This tutorial will prove them wrong. It will show them how to use the whole potential of Dependency Injection/Meta State Machine/MSVC to make a game/app quickly with minimal maintenance as well as testing support. During this tutorial we are going to create a match-3 game for the WEB using only C++14 features, Emscripten and mentioned experimental Boost.DI/Boost.MSM-lite libraries. After this tutorial you will have more knowledge about Dependency Injection/Meta State Machine and how they fit together. On top of that you will see how to use Emscripten and C++14 in order to create cross-platform games/apps. Experimental Boost.DI Although Dependency Injection is a popular concept in Java and C# it's not a first class citizen in C++. The reasons behind this are mostly related to the missing C++ features like reflection and popular believing that Dependency Injection will slow down the execution. Well, that could have been true a few years ago, however experimental Boost.DI is going to change this belief! During this lecture you will be exposed to main features of experimental Boost.DI, such as: - how it is possible to create objects without macros and reflection support? - how there is no performance overhead when using experimental Boost.DI? - how experimental Boost.DI provides a compile time guarantee when creating objects? - how experimental Boost.DI compiles so fast? - how experimental Boost.DI gives short error messages without using concepts? After this part you would have a better understanding of the Dependency Injection and how C++14 made it possible. Experimental Boost.MSM-lite Boost has a great Boost.MSM library. Boost.MSM - eUML is even better because it provides a DSL for creating transition tables. However, it is really hard to use Boost.MSM library on a larger scale due to horrible compilation times and big executable files. Guess what, experimental Boost.MSM-lite is going to change it! During this lecture you will be shown how C++14 was used to achieve the following: - faster compilation times - up to 60x times faster than Boost.MSM - smaller executable size - up to 15x smaller - slightly better performance than Boost.MSM! - smaller memory usage - short error messages After this part you will understand what Meta State Machine is, why it is so useful and how experimental Boost.MSM-lite can achieve the above goals.

avatar for Kris Jusiak

Kris Jusiak

Kris is a software engineer focused on modern C++ development, especially for embedded systems. He is currently working for King, making mobile games for living, whilst contributing to the open source community at his free time.

Thursday May 12, 2016 9:00am - 10:30am

Attendees (15)