Skip to content

Game Development

What can we say - we like games. And you can use Qt to write some. Questions? Ask here.
875 Topics 4.1k Posts
  • Welcome!

    Pinned
    42
    2 Votes
    42 Posts
    44k Views
    JKSHJ
    Hi, [quote author="cseder" date="1423513071"]But Qt has an excellent solution which makes working with OpenGL a lot simpler: The QGLWidget class is a widget for rendering OpenGL graphics. Read all about it: "QGLWidget docs":http://doc.qt.io/qt-5/qglwidget.html#details.[/quote]QGLWidget is deprecated. Use "QOpenGLWidget":http://doc.qt.io/qt-5/qopenglwidget.html instead. Also check out "VoltAir":http://blog.qt.io/blog/2014/07/21/google-labs-voltair-game-built-with-qt/ -- it is a game that Google built on top of Qt Quick.
  • 3 Votes
    43 Posts
    15k Views
    8Observer88
    Debug drawer for Box2D v3 using QPainter It uses b2World_Draw to draw Box2D objects for debugging. You can just download and run it without compiling libs because it include libs for Windows (MinGW) and Android. Source: https://github.com/8Observer8/debug-drawer-qpainter-box2dv3-qt6-cpp [image: 2a9af153-b7d2-40a0-9702-5fdfb79ccf52.png]
  • [QT Quick 3D] QRchi shaders and QQuick3DRenderExtension

    Unsolved
    4
    0 Votes
    4 Posts
    4k Views
    EskilE
    "Stencil Outline Extension Example" is the main documentation for this at the moment. There will be more API, examples and documentation coming in this area in future releases. The "outline material" is where the shader lives in this example (here it is a built-in PrincipledMaterial). Note that render extensions are for quite advanced use cases where you want to introduce additional render passes. In this case, for instance, we are introducing an additional color pass which also renders to the stencil buffer. If you only want to apply a post-processing shader, then there is also built-in support for this, so maybe this is more appropriate: https://doc.qt.io/qt-6/qml-qtquick3d-effect.html
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    4 Views
    No one has replied
  • Physics Optimization in a Ragdoll-Based Battle Simulator (Qt 6, Mobile)

    Unsolved
    2
    0 Votes
    2 Posts
    2k Views
    No one has replied
  • 0 Votes
    1 Posts
    210 Views
    No one has replied
  • Mouse Control on Wayland: Calculating Delta Without Centering

    Solved
    3
    0 Votes
    3 Posts
    491 Views
    EndrII 0E
    Issue moved to bug tracker : : https://bugreports.qt.io/browse/QTBUG-113795 and https://bugreports.qt.io/browse/QTBUG-116493
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    2 Views
    No one has replied
  • Simple Qt/C++ games

    Unsolved
    85
    9 Votes
    85 Posts
    59k Views
    BondrusiekB
    @8Observer8, Nice to hear that you like it! As for the offset — it's not a bug, it's a feature ;D. I originally designed the game for a standard window size, where the position (-2, -2) hides those elements. However, when using a browser, the background can be larger, which makes some items visible.
  • 0 Votes
    1 Posts
    333 Views
    No one has replied
  • Tips for Optimizing Qt Performance on Cross-Platform Apps

    Unsolved
    2
    0 Votes
    2 Posts
    612 Views
    ImperoITservicesI
    Hi @meme001 Your proactive steps for UI performance on Android devices should be Utilizing Loader for deferred component initialization Minimizing constantly-updating bindings Optimizing image assets To further enhance UI responsiveness on Android, Consider this Leverage (QtQuick.Controls 2) Optimize Animations Profile with Qt Tools Reduce Overdraw Resource Management Asynchronous Operations Remember, performance optimization is an iterative process. Regular profiling & testing across different devices can provide insights into areas needing improvement.
  • Q: Qt - [c++] Correct CONNECT statements with lambda

    Solved
    11
    0 Votes
    11 Posts
    3k Views
    K
    Well thanks for all your suggestions! Thread solved. best regards
  • LAN Communication for my Multiplayer Board Game on QT/QML

    Unsolved
    2
    0 Votes
    2 Posts
    498 Views
    Pl45m4P
    @SrisharanVS said in LAN Communication for my Multiplayer Board Game on QT/QML: Could anyone guide me on how to handle LAN discovery, establish a connection, and start communicating? If you know of any similar projects, tutorials, or helpful resources, I'd really appreciate it. Start here https://doc.qt.io/qt-6/qtnetwork-programming.html
  • keyPressEvent isn't called simultaneously.

    Unsolved
    3
    0 Votes
    3 Posts
    699 Views
    BondrusiekB
    Hi, try use key handling in this way: https://stackoverflow.com/questions/23816380/using-multiple-keys-in-qt-c I implement this in my simple qt game. Can check: https://github.com/Przemekkkth/top-down-shooter-qt
  • New version of Qt I am trying to write again the code

    Unsolved opengl
    5
    0 Votes
    5 Posts
    1k Views
    ?
    I added -x instead of x and It is working better.
  • Trying To Explain To Qt That I Need QGView To Follow My Player Sprite

    Unsolved
    15
    0 Votes
    15 Posts
    3k Views
    G
    @Pl45m4 Thank you for those ideas. I'm feeling less wandering-the-wilderness now, thanks to the advice I'm getting here.
  • Q: Qt - [c++] Qt6 TextToSpeech does not use Localization

    Solved
    9
    0 Votes
    9 Posts
    2k Views
    K
    It appears as if I have mutliple engines installed on my setup. So, instead of auto *text2speech = new QTextToSpeech(this); i changed my code accordingly: for (auto const& v : QTextToSpeech::availableEngines()) { qDebug() << "available engine: " << v.toStdString(); auto *text2Speech = new QTextToSpeech(v); // find suitable locales } So I am not randomizing voices anymore. I take the first best english voice. It works. Now testing on Linux :-) best regards, kevin_d
  • QPainterPath to draw curve with fading

    Unsolved
    5
    0 Votes
    5 Posts
    2k Views
    johngodJ
    @Ejok88 Hi I used the the book of shaders site tutorials to create the fuzzy circle check here https://thebookofshaders.com/ I actually got a very simple idea for your problem, just use a line with width which is just nothing more that a rectangle with two colors on the edjes, and use GL_TRIANGLE_STRIP , see this new example https://bitbucket.org/joaodeusmorgado/opengltutorials/src/master/T11_FuzzyLine/mygl.cpp#lines-185 Then you just add vertices to compose your line, note that you have to use "two" lines side by side to make the double fade out effect. Then you need to add 3 more lines without width, to the center and the 2 lines in the extremes. A bit of work but doable. I can help further if you need, but right now I just to much work overloaded. What is your use case, are you using widgets and Opengl ? I think going with quick3d would be easier, it that is an option for you.
  • No way to use particle system directly from C++?

    Unsolved
    2
    0 Votes
    2 Posts
    624 Views
    BondrusiekB
    Hi, i was also looking for such a module in pure Qt/C++ some time ago. Unfortunately, as far as I know, there is no such equivalent. If you want to achieve such results, you have to use either QPainter or OpenGL.
  • QRhi rendering question

    Unsolved
    2
    0 Votes
    2 Posts
    789 Views
    D
    FWIW, the fixed code (thanks to github copilot) void SpectralChannel::render(QRhiCommandBuffer *cb) { //update resources first updateTextures(); Area scaledDisplayArea=convert.toScaled(displayArea); scaledDisplayArea.moveLeft(0.); QMatrix4x4 scaledDisplayMatrix=scaledDisplayArea.toMatrix(); resourceUpdateBatch()->updateDynamicBuffer(...); for(QHash<LayerPtr, SpectralTextureMeta2>::iterator tex = textureList.begin(); tex != textureList.end(); tex++) { resourceUpdateBatch()->updateDynamicBuffer(...); ... } cb->resourceUpdate(resourceUpdateBatch(true)); //start drawing commands cb->beginPass(renderTarget(), Qt::black, { 1.0f, 0 }, resourceUpdateBatch(true)); cb->setViewport({ 0, 0, float(width()*devicePixelRatio()), float(height()*devicePixelRatio()) }); for(QHash<LayerPtr, SpectralTextureMeta2>::iterator tex = textureList.begin(); tex != textureList.end(); tex++) { cb->setGraphicsPipeline(tex.value().spectralPipeline.get()); const QRhiCommandBuffer::VertexInput vbufBinding(tex.value().vertexBuf.get(), 0); cb->setVertexInput(0, 1, &vbufBinding); cb->setShaderResources(); cb->draw(4); } cb->endPass(updateFrameBuffer()); }