Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Game Development
  4. Would you ever build a 3D Endless Runner Mobile Game with Qt? and if no why?

Would you ever build a 3D Endless Runner Mobile Game with Qt? and if no why?

Scheduled Pinned Locked Moved Unsolved Game Development
30 Posts 11 Posters 3.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Michele RossiM Offline
    Michele RossiM Offline
    Michele Rossi
    wrote on last edited by
    #1

    Hi all!

    What is your opinion in this case?

    Would you ever consider building a 3D Endless Runner mobile game using latest Qt version and eventually even Qt Design Studio for such outcome?
    Example of Endless Runner 3D game : https://en.wikipedia.org/wiki/Temple_Run

    If no, why?
    What do you think Qt is missing to empower you achieving the outcome in less than a day?

    Would you be interested in seeing a demo concept for such use case?

    If you have done already such project, we'd like to talk with you more. Feel free to reach me out via the Forum Chat.

    Thank you in advance to everyone for sharing your constructive feedback!

    Michele RossiM 1 Reply Last reply
    1
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      Usually, you would start building a game using a game engine such as Godot.

      In the case of a pure Qt implementation, you have to learn:

      • How 3D works in Qt
      • How Qt3D works
      • How QtQuick3D works
      • Get assets
      • Build the world
      • Build the control logic
      • Build the game logic
      • Understand how to animate the sprites
      • Understand how to handle physics
      • Build the UI
      • If on mobile, learn how to setup the environment for development, deployment.

      There might be other things that I am missing.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      kshegunovK 1 Reply Last reply
      1
      • 8Observer88 Offline
        8Observer88 Offline
        8Observer8
        wrote on last edited by 8Observer8
        #3

        The best solution will be to use Godot, Unity, Unreal Engine and so on. It depends what language do you like. Godot uses GDScript (it is similar to Python) and C#. Unity uses C# only. Unread Engine uses C++ and Blueprints (visual scripting without programming). These engines are the most popular. They have unofficial scripting languages, for example, you can use JavaScript for Unreal Engine: https://github.com/ncsoft/Unreal.js or Python, Lua and so on. If you don't like C++, you like JavaScript and you want to make web games you can use Three.js. Three.js game can be build to mobile and desktop using Cordova.

        But I like to study Qt, OpenGL ES 2.0, Box2D and Bullet Physics for game programming as hobby. It is very bad choice. I don't recommend it for commercial games. Because you will not find a job for game development in Qt. I study game development as hobby to study C++, Qt, computer graphics programming, WebSockets (client/server programming for games).

        I have some progress with Qt in 3D. I know how to build Bullet Physics for Android and WebAssembly. I know how to play 3D sounds for Android using OpenAL and how to play 3D sounds with WebAssembly using Web Audio API. The most important thing for 3D games is a physics engine because it allows to move your player, detect collisions, avoid obstacles, collect items (like coins). Bullet Physics has the btIDebugDraw class. This class has the drawLine method. My next example uses that class and method to draw the collider edges by OpenGL. I made a movement of character using Bullet Physics with OpenGL ES 2.0, Qt6, C++ for WebAssembly, Desktop, and Android. The desktop demo requires 27.8 MB. It is not so big like Cordova/Electron that requires more than 100 MB.

        Use WASD to move:

        • WebAssembly demo: https://65d4f11321dc4f162266ec50--astounding-pika-5d00ff.netlify.app/
        • Demo for Windows 10, 64-bit: mario-3d-simple-movement-qt6-cpp-win10x64-exe.zip - 11.6 MB
        • APK for Android 7-14: mario-3d-simple-movement-qt6-cpp-android-7-14-apk.zip - 9.06 MB

        mario-3d-simple-movement-qt6-cpp.gif

        mario-3d-simple-movement-qt6-cpp.png

        I already know how to import a skeleton animation from Blender using the DAE COLLADA format. But I have made the next my demo using pure WebGL 1.0, OimoPhysics, glMatrix, Web Audio API, and WebSockets. I want to remake it to Qt and OpenGL ES 2.0 to make a Android/Desktop/Web client in Qt C++: https://8observer8.github.io/webgl10-js/room-webgl-js/

        two-jills-websockets.gif

        1 Reply Last reply
        1
        • Michele RossiM Michele Rossi

          Hi all!

          What is your opinion in this case?

          Would you ever consider building a 3D Endless Runner mobile game using latest Qt version and eventually even Qt Design Studio for such outcome?
          Example of Endless Runner 3D game : https://en.wikipedia.org/wiki/Temple_Run

          If no, why?
          What do you think Qt is missing to empower you achieving the outcome in less than a day?

          Would you be interested in seeing a demo concept for such use case?

          If you have done already such project, we'd like to talk with you more. Feel free to reach me out via the Forum Chat.

          Thank you in advance to everyone for sharing your constructive feedback!

          Michele RossiM Offline
          Michele RossiM Offline
          Michele Rossi
          wrote on last edited by
          #4

          @Michele-Rossi Thank you @SGaist for your input. Do you mean that if we create a tailored documentation, examples and tutorial to cover those items in one course should be already a good start? Would not have Godot the same learning curve? Or maybe the question is: why do you think Godot has a lower barrier of entry to build such use case than using Qt? thx!

          Ronel_qtmasterR 1 Reply Last reply
          0
          • Michele RossiM Michele Rossi

            @Michele-Rossi Thank you @SGaist for your input. Do you mean that if we create a tailored documentation, examples and tutorial to cover those items in one course should be already a good start? Would not have Godot the same learning curve? Or maybe the question is: why do you think Godot has a lower barrier of entry to build such use case than using Qt? thx!

            Ronel_qtmasterR Offline
            Ronel_qtmasterR Offline
            Ronel_qtmaster
            wrote on last edited by
            #5

            @Michele-Rossi You can also use FELGO which is Qt based and more oriented for games.If you want to do a course it could be a great start

            Michele RossiM 1 Reply Last reply
            0
            • Ronel_qtmasterR Ronel_qtmaster

              @Michele-Rossi You can also use FELGO which is Qt based and more oriented for games.If you want to do a course it could be a great start

              Michele RossiM Offline
              Michele RossiM Offline
              Michele Rossi
              wrote on last edited by
              #6

              @Ronel_qtmaster thank you, would you use Felgo as well for a 3D Endless Runner, or you see value in Felgo mainly for a 2D Endless Runner use case? thx!

              Ronel_qtmasterR 1 Reply Last reply
              0
              • SGaistS SGaist

                Hi,

                Usually, you would start building a game using a game engine such as Godot.

                In the case of a pure Qt implementation, you have to learn:

                • How 3D works in Qt
                • How Qt3D works
                • How QtQuick3D works
                • Get assets
                • Build the world
                • Build the control logic
                • Build the game logic
                • Understand how to animate the sprites
                • Understand how to handle physics
                • Build the UI
                • If on mobile, learn how to setup the environment for development, deployment.

                There might be other things that I am missing.

                kshegunovK Offline
                kshegunovK Offline
                kshegunov
                Moderators
                wrote on last edited by
                #7

                @SGaist said in Would you ever build a 3D Endless Runner Mobile Game with Qt? and if no why?:

                How QtQuick3D works

                You don't really need this. You could learn it if you choose to use it, but it is commercial/GPL, while Qt3D is more permissive. The latter is still rather lacking in documentation quality, though.

                Read and abide by the Qt Code of Conduct

                1 Reply Last reply
                0
                • 8Observer88 Offline
                  8Observer88 Offline
                  8Observer8
                  wrote on last edited by 8Observer8
                  #8

                  Popular game engines have many ready-made free and paid game assets in Asset Stores. This can save a lot of time. There are many experts on game engines and companies. Game engines make it easier for you to form a team or find a job. Very few people and companies use Qt for game development. Of course, this doesn't concern you if you program games alone. But Qt requires much more time to develop games and much more knowledge needs to be mastered. You will have to study physics engines and write those assets yourself that you could quickly download from Asset Stores and master using ready-made popular game engines. Maybe you've come across the following book: Game Programming using Qt 5 Beginner's Guide: Create amazing games with Qt 5, C++, and Qt Quick, 2nd Edition I haven't read it, but maybe it will be useful to you.

                  kshegunovK 1 Reply Last reply
                  0
                  • 8Observer88 8Observer8

                    Popular game engines have many ready-made free and paid game assets in Asset Stores. This can save a lot of time. There are many experts on game engines and companies. Game engines make it easier for you to form a team or find a job. Very few people and companies use Qt for game development. Of course, this doesn't concern you if you program games alone. But Qt requires much more time to develop games and much more knowledge needs to be mastered. You will have to study physics engines and write those assets yourself that you could quickly download from Asset Stores and master using ready-made popular game engines. Maybe you've come across the following book: Game Programming using Qt 5 Beginner's Guide: Create amazing games with Qt 5, C++, and Qt Quick, 2nd Edition I haven't read it, but maybe it will be useful to you.

                    kshegunovK Offline
                    kshegunovK Offline
                    kshegunov
                    Moderators
                    wrote on last edited by
                    #9

                    Neither of those are reasons why you wouldn't develop a game with Qt. Qt3D already can import ready assets and as far as I recall you can wire the skeleton animations.
                    The most significant reason is actually the lack of tooling for the job.

                    You don't have a tool on hand to wire shaders, build materials, modify a render graph, etc.
                    (I'm excluding Qt Design Studio as it's a commercial product as far as I know, and I have not used it at all)

                    Read and abide by the Qt Code of Conduct

                    Michele RossiM 1 Reply Last reply
                    1
                    • 8Observer88 Offline
                      8Observer88 Offline
                      8Observer8
                      wrote on last edited by
                      #10

                      Personally, I chose Qt for game development because I like to understand how skeletal animation works, computer graphics on shaders, how linear algebra works, physics engines, COLLADA parsing, low-level audio on OpenAL. Qt allows you to create small executables for desktop and Android. Creating WebGL applications using Emscripten and Android is very easy. Compared to other 3D engines in C++, I like Qt much more based on the indicators that I listed above. I see great potential for the future in him. I like that Qt is not popular in games because in the future I can create Qt tutorials in English and become more famous than if I made Unity tutorials. But first I need to make a lot of small games in Qt and learn spoken English at a good level.

                      I see the following problems for beginners who want to make 3D games in Qt. Few tutorials. There are probably no companies where beginners can become an intern and gain experience developing games in Qt. For example, I worked as an intern for several companies on Unity, and this helped me learn a little about game development. Lack of store assets. For example, go to https://assetstore.unity.com/ and enter “3D Endless Runner” in the search bar. You will find out how many ready-made assets are available to you to start developing 3D Endless Runner:

                      8927a5f0-ae50-46da-a55a-cff3c267c5b4-image.png

                      Jarko VihrialaJ 1 Reply Last reply
                      0
                      • 8Observer88 8Observer8

                        Personally, I chose Qt for game development because I like to understand how skeletal animation works, computer graphics on shaders, how linear algebra works, physics engines, COLLADA parsing, low-level audio on OpenAL. Qt allows you to create small executables for desktop and Android. Creating WebGL applications using Emscripten and Android is very easy. Compared to other 3D engines in C++, I like Qt much more based on the indicators that I listed above. I see great potential for the future in him. I like that Qt is not popular in games because in the future I can create Qt tutorials in English and become more famous than if I made Unity tutorials. But first I need to make a lot of small games in Qt and learn spoken English at a good level.

                        I see the following problems for beginners who want to make 3D games in Qt. Few tutorials. There are probably no companies where beginners can become an intern and gain experience developing games in Qt. For example, I worked as an intern for several companies on Unity, and this helped me learn a little about game development. Lack of store assets. For example, go to https://assetstore.unity.com/ and enter “3D Endless Runner” in the search bar. You will find out how many ready-made assets are available to you to start developing 3D Endless Runner:

                        8927a5f0-ae50-46da-a55a-cff3c267c5b4-image.png

                        Jarko VihrialaJ Offline
                        Jarko VihrialaJ Offline
                        Jarko Vihriala
                        wrote on last edited by
                        #11

                        Hello @8Observer8 , such valuable discussion here.

                        I would like to point out couple things. The 3D has taken major advances with Qt and it's not just Qt 3D engine but also the the Quick3D engine which is 100% controlled by QML and backed up with tooling from Qt Design Studio. Both are also available thru the Qt installer and at the time of writing Qt is at level 6.6. and Qt DS is 4.5.

                        The way it works is that all QML items are atomic components, so for instance we don't currently ship ready-packaged items that have collision detection, but you need to build it from the existing pieces. Thing is there are lot of things you can do out of the box but they require some hand-holding and that's what we are now looking into. The Quick3D has 3D particle system, supports FBX, GLTF2 etc, has skeletal animation framework, can do mesh morphing, has support for LOD and resource management not to mention awesome rendering quality (in Qt 6.5) and we also have 3D physics. But it does not have level controls or game-related logic off the bat. This is where things like Tiled come into play but still you need the assets, right? You can get a lot of free stuff from Sketchfab or Turbosquid and with your credit card even hi-res versions. You pull them into the Qt Design Studio and then it's not just FBX but we create a proper QML components out from those assets, you get your animations, materials, lights etc as part of the process and you can then fine-tune or even replace parts of the imported components.

                        Already in the Qt Academy there are bunch of free courses on the topic to get started so go ahead.

                        1 Reply Last reply
                        1
                        • kshegunovK kshegunov

                          Neither of those are reasons why you wouldn't develop a game with Qt. Qt3D already can import ready assets and as far as I recall you can wire the skeleton animations.
                          The most significant reason is actually the lack of tooling for the job.

                          You don't have a tool on hand to wire shaders, build materials, modify a render graph, etc.
                          (I'm excluding Qt Design Studio as it's a commercial product as far as I know, and I have not used it at all)

                          Michele RossiM Offline
                          Michele RossiM Offline
                          Michele Rossi
                          wrote on last edited by
                          #12

                          @kshegunov thank you for your input! Would you be so kind to share your thought on which kind of "tooling for the job" Qt would be missing today? Would you be able to point concrete examples? thx!

                          kshegunovK 1 Reply Last reply
                          0
                          • K Offline
                            K Offline
                            kevin_d
                            wrote on last edited by
                            #13

                            In my perspective, I appreciated Qt3D in many ways.
                            A bonus is the simple adding of entities, transformations and components, for example materials.

                            The overall performance of my 3D scenes were good (in release mode).

                            Unfortunately, I was not able to apply shinings and shadows in my 3D view.
                            This would be a game changer for me and any new applications.

                            1 Reply Last reply
                            0
                            • Michele RossiM Michele Rossi

                              @Ronel_qtmaster thank you, would you use Felgo as well for a 3D Endless Runner, or you see value in Felgo mainly for a 2D Endless Runner use case? thx!

                              Ronel_qtmasterR Offline
                              Ronel_qtmasterR Offline
                              Ronel_qtmaster
                              wrote on last edited by
                              #14

                              @Michele-Rossi Both cases can be used with yocto, check this https://felgo.com/doc/felgo-examples/

                              1 Reply Last reply
                              0
                              • 8Observer88 Offline
                                8Observer88 Offline
                                8Observer8
                                wrote on last edited by 8Observer8
                                #15

                                I don't understand why Felgo was suggested several times. I carefully looked through the website of this framework and did not find any information that it supports the development of 3D games.

                                Ronel_qtmasterR 1 Reply Last reply
                                0
                                • 8Observer88 8Observer8

                                  I don't understand why Felgo was suggested several times. I carefully looked through the website of this framework and did not find any information that it supports the development of 3D games.

                                  Ronel_qtmasterR Offline
                                  Ronel_qtmasterR Offline
                                  Ronel_qtmaster
                                  wrote on last edited by
                                  #16

                                  @8Observer8 check this https://blog.felgo.com/updates/qt-3d-game-engine-with-qt-5-5-and-felgo-game-engine

                                  8Observer88 1 Reply Last reply
                                  0
                                  • Ronel_qtmasterR Ronel_qtmaster

                                    @8Observer8 check this https://blog.felgo.com/updates/qt-3d-game-engine-with-qt-5-5-and-felgo-game-engine

                                    8Observer88 Offline
                                    8Observer88 Offline
                                    8Observer8
                                    wrote on last edited by 8Observer8
                                    #17

                                    @Ronel_qtmaster said in Would you ever build a 3D Endless Runner Mobile Game with Qt? and if no why?:

                                    check this https://blog.felgo.com/updates/qt-3d-game-engine-with-qt-5-5-and-felgo-game-engine

                                    Developers of Felgo should add make these things on their website:

                                    • The car example should be ported from Qt 5 to Qt 6
                                    • Box2D in the car example should be replaced with Bullet Physics or PhysX for 3D games
                                    • Shadow mapping should be added to the car example and to the documentation
                                    • Documentation for 3D API should be added to the official web site of Felgo
                                    • Getting started tutorials for 3D games should be added
                                    • Official examples in 3D with 3D physics should be added

                                    Now all the examples, documentation and getting started examples on the official website are for 2D games with the Box2D physics engine. But perhaps Box2D can be used for 3D Endless Runner. Or the Bullet Physics engine can be integrated by Felgo user. I think shadow mapping was not integrated into Felgo because it was not integrated into Qt3D.

                                    I like using pure Qt with OpenGL because I can implement shadow rendering myself. This is my example in pure WebGL 1.0 (the camera can be rotated by holding the left or middle mouse button) https://8observer8.github.io/webgl10-js/door-with-ortho-shadow-map-webgl-js/

                                    door-with-ortho-shadow-map.gif

                                    Personally, I don't like Felgo because it also doesn't allow you to build WebGL for free. For this you need to pay 79 euros per month: https://felgo.com/pricing.

                                    1 Reply Last reply
                                    0
                                    • johngodJ Offline
                                      johngodJ Offline
                                      johngod
                                      wrote on last edited by
                                      #18

                                      I am using Qt and Quick3D for game developing and it is a beauty. Godot is becoming very popular, but I am some what lazy and lack the time to learn new stuff, so I just go along with javascript to develop my own algorithms. In the end of the day, the final user does not care what you use to develop the game. Third party libraries may be good for complex games, but thats depends of the type of game you are trying to develop. A endless runner game does not seem a complex task to me, and I thing it is perfectly fine to use only Qt / quick3D for that.
                                      Here is a 3D game I am developing using only qt / quick3D (quick3D makes it very easy to load 3D assets and animated characters using the balsam tool) https://bitbucket.org/joaodeusmorgado/davidgalacticadventures/src/master/

                                      https://www.youtube.com/watch?v=DJKYHq_x9VY

                                      I have also developed a 2D game using only Qt / qml:
                                      https://bitbucket.org/joaodeusmorgado/superepicmegahero/src/master/

                                      https://www.youtube.com/watch?v=U3Hx4uospF8

                                      Hope this helps.

                                      Ronel_qtmasterR 1 Reply Last reply
                                      1
                                      • johngodJ johngod

                                        I am using Qt and Quick3D for game developing and it is a beauty. Godot is becoming very popular, but I am some what lazy and lack the time to learn new stuff, so I just go along with javascript to develop my own algorithms. In the end of the day, the final user does not care what you use to develop the game. Third party libraries may be good for complex games, but thats depends of the type of game you are trying to develop. A endless runner game does not seem a complex task to me, and I thing it is perfectly fine to use only Qt / quick3D for that.
                                        Here is a 3D game I am developing using only qt / quick3D (quick3D makes it very easy to load 3D assets and animated characters using the balsam tool) https://bitbucket.org/joaodeusmorgado/davidgalacticadventures/src/master/

                                        https://www.youtube.com/watch?v=DJKYHq_x9VY

                                        I have also developed a 2D game using only Qt / qml:
                                        https://bitbucket.org/joaodeusmorgado/superepicmegahero/src/master/

                                        https://www.youtube.com/watch?v=U3Hx4uospF8

                                        Hope this helps.

                                        Ronel_qtmasterR Offline
                                        Ronel_qtmasterR Offline
                                        Ronel_qtmaster
                                        wrote on last edited by
                                        #19

                                        @johngod looks amazing.Do you have any tutorial on QtQuick3D?

                                        johngodJ 1 Reply Last reply
                                        0
                                        • Ronel_qtmasterR Ronel_qtmaster

                                          @johngod looks amazing.Do you have any tutorial on QtQuick3D?

                                          johngodJ Offline
                                          johngodJ Offline
                                          johngod
                                          wrote on last edited by
                                          #20

                                          @Ronel_qtmaster @Ronel_qtmaster I dont, I have learn it using the docs and demos.
                                          The assets that I have used make all the difference in visual of the game.
                                          Here is my take on 3D game development, one has to know 3d game development, them the tools you use are a bonus.
                                          For example I have used OpenGL before, but it is very low level, the API is not user friendly, you have to do a lot of coding for basic stuff, like loading textures. To me learning OpenGL was a very good school, but in the end it was a bit overkill to what I wanted to achieve.
                                          Why did I choose Quick3D? Compared with Q3D, I liked quick3D API better, with more documentation and examples, and at the time I believed that a lot more resources would be put in quick3D development from the Qt company than in the Q3D. Why I do not use Godot, Unity, or other? Because I am not a game developer, I am a hobbyist developer in my free time, and I really like Qt, so I just went with my gut feeling and jumped in the quick3D wagon and I did the right thing. For sure there could be better tools or tools that I would like better if I know them, but time is limited and I can’t learn every stuff out there. I can reuse the knowledge that I am gaining with quick3D, because I developed other 3D apps than games, not sure I could use unity, godot, for other stuff than games.
                                          What I like in Quick3D? It has a nice API, supports loading textures easily, loading animated assets from blender, Maya, and others, you have to use balsam utility, but once you get used to it, it works fine. Skyboxes are a beauty, they just work easily, I could never manage to put OpenGL skybox working correctly. The way you compose a scene using Nodes in the Viwe3D are more powerful and versatile than I thought at first. It has built in cameras, but in this it falls short, it lacks a proper camera for FPS games. I had to develop my own FPS cameras for my game. If you guys from Qt company are listen, adding a good FPS camera should not be that hard, also the Qt rockstars devs always surprise for how good API’s they make. There are several types of lights, they just work out of the box. The recent addition of physics is very good, I still haven explore these, but I think it will bring games to the next level. Quick3D performance seems to be good, I get 120 frames with a gaming monitor.
                                          At the end of the day, you can build a great game and still be a failure. It is a like a lottery, were the tools you use are least important, being the assets and the marking huge deals. Then some guy comes and builds a flappy bird with crappy graphs, and it gets huge success :)

                                          8Observer88 Michele RossiM 2 Replies Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved