Matt D Matt D - 10 months ago 71
C++ Question

What is a C++ equivalent to JavaFx and AnimationTimer class?

I have a tetris game programmed in JavaFX. I want to translate it into C++ to learn C++. What can I use in C++ to display the graphics and time the game loop, the way I did with JavaFX and the AnimationTimer class?

Answer Source

C++ really doesn't have any in-built compatibility for graphics. You need to learn an API.

Looking at JavaFX it seems to be a 3D rendering library. So this really is determined by how deep you want to go.

If you want to learn the baseline, engine design, etc. you could learn OpenGL directly which would teach you the nitty gritty of how all 3D graphics work and SDL2 for the OS interop. Timing the game loop can be done easily with the std::chrono classes.

If you want something slightly higher level where things like lights and such are already built for you I'd consider working with an existing framework that will give you practical experience towards game development. Most of these use scripting languages like C#, Lua, etc. Unity C# is great for something like this. Unreal Engine 4 has C++ bindings if C++ is the main consideration, but it is a bit heavy for such a small game but most game engines only use C++ for their optimized low level frameworks with scripting engines hooked on to them for ease of development while maintaining near optimal performance.

Ogre is another option for C++ open source engine that has a lot of documentation. Which could be a happy medium between the 2.

If you don't care about 3D graphics and just want rectangles / images in your game something like QT could work well also, but that is a GUI framework more than it is a game engine which if all you are wanting is something like Tetris is fine.