For Beginners Qt
-
You start with an idea of the game you wish to make.
I think you did not read (or understand) the link I gave you yet. Please read it (again). Your question still is not specific enough to give any real guidance.
Since you are a student, I also suggest you seek guidance from your teachers, at least on the generic issues of how to design your application. This forum is great for Qt related questions, but your question just isn't Qt related (yet).
-
Sir Andre, I really appreciate your responses. I admit that my first questions are still not Qt related. I already have the complete idea and concept of the game. My problem is that I don't know how to start developing my project. The style of the game is quite similar to the famous game Mario. I've watched several tutorials regarding mobile game development. One of the videos that I've watched is the "Flying Bus". As I have understood the video, the developers created the game objects first. I also want to apply that kind of approach with my project. I would like to ask for guidance on how to create game objects in Qt. These object are the game characters, menus, and also the game screen. Thanks in advance!
-
I'm afraid it's still too general. I doubt anyone here would be glad to teach you "from zero to hero" - apart of the fact, that this type of thing is a bit beyond the scope of such a forum, and belongs more to a university/ self learning (books), there is another thing - in code writing, you are the "master", and there are ALWAYS a lot of ways to complete any task.
OK sorry for the intro, I guess you already knew that. Now, onto some details. I'll try to give you a few pointers on where to look for further info. Since you ask on Qt forum, I guess you are set on using this framework. For games, you've essentially got 4 choices:
- "QML":http://developer.qt.nokia.com/doc/qt-4.7/qml-intro.html#id-1af86190-ca73-4225-919c-2efce7eef327 (Qt QUICK) - the newest kid on the block, very handy for mobile (well, it's good for desktop, too). Easy to learn and use, allows for extremely quick prototyping
- "Qt Graphics View":http://developer.qt.nokia.com/doc/qt-4.7/graphicsview.html#id-ec9f687a-392e-4c38-8ac0-3e96d2c164d9 - which is the base of current Qt Quick implementation (there will be a change in Qt5, but it should not be of any importance to you right now), solely C++ based. More low-level than QML, but still a nice choice
- QPainter - that would be the lowest level software renderer available
- QOpenGL/ QtOpenVG - allows you to do your visuals using OpenGL/VG magic
And another link to wrap it all: http://developer.qt.nokia.com/doc/qt-4.7/gettingstarted-develop.html#id-07ddfe45-593e-4c5e-abc0-36e74d6e044f
You might also want to use QWidget family for menus, although QML is probably better for mobile.
As for implementing characters and game logic - it's all up to you, sorry. As the engineer of your app, it's your job to make the design. A read on software engineering and game development might be a good first step. There's plenty of books around on these topics, and - as you've mentioned - various tutorials, wikis etc.
[Edit] some typos (sierdzio)
-
That's more than enough :) I'm developing a proof-of-concept game in QML right now myself. I am developing in Qt for like 4 years now, but knew not a single thing about QML - so I figured out a complicated big project of that kind would be great for learning purposes. And it indeed is.
After a few days work I had some base actions working. After 2 weeks - a substantial part of the UI was done. QML is really great in use and extremely easy to learn - remember I had no prior experience in it. And, Qt's documentation is very good, too.
So, my advice is: since you've got the concept ready, start hacking right away! No better way to gain experience than doing a real project. It may be tough at the beginning, but with help of docs it will get better. And don't be afraid if it turns out you did something "wrong" - you can always refactor. It will take time, sure, but you'll also be better prepared in the future. And any time you stumble upon a show-stopper problem - ask here, the forum is very active and usually people are happy to answer in detail. I've already noticed you doubled the question and Gerolf did provide some additional info on QML for you there.
-
I forgot to link this earlier, might help you (I have not read it, but a quick glance leaves a good feeling about the contents), especially in the beginning: "LINK":http://quitcoding.com/download/Qt_Quick_Game_Programming_1_0.pdf.
-
"QPainter":http://developer.qt.nokia.com/doc/qt-4.7/qpainter.html is part of Qt framework (QtGui module), no need to install anything. In most applications, you don't even need to explicitly include <QtGui/QPainter>, because you are very likely to have it included by other components (almost everything is rendered through QPainter in Qt. Well, that statement is not really true, but it's a nice lie that will help you get onwards ;) ).
QPainter is the base rendering class in Qt, widgets, graphic framework objects etc. are being drawn using QPainter. Mind you, it won't be as easy to use as QML or graphic view framework, as it is a low-level part of Qt API.
-
Thanks a lot sir! So this QPainter is the one used for drawings. As of now I am creating image using adobe photoshop. I'm about to import these images to Qt and use them as buttons and game screen. But I'm wondering if what I'm doing is necessary. Should I use QPainter instead of Adobe Photoshop?
-
No.
QPainter is a C++ class of Qt. It's not being used to "draw" as in drawing in Photoshop, it draws things on screen. See the documentation link I've sent you in my last post.
You can continue using AP to prepare your button's visuals. You will then just use them in (for example) QML as basis for your button (QML Image element). It can also be done using QtWidgets and QPainter, but will require more coding.
-
BTW. I'm perfectly fine with being called "mate", no need for this "sir" thing ;) Terry Pratchett, for example, is a Sir, he was knighted a decade ago. I'm not.
It's up to you, anyway.
-
Yeah, I did suspect that was the case, no problem there, it just seemed a bit awkward to me to be addressed that way ;)
Cheers and good luck!