Jump to content

  • Log In with Google      Sign In   
  • Create Account


Qt C++ MMORPG


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
18 replies to this topic

#1 shawk08033   Members   -  Reputation: 96

Like
-2Likes
Like

Posted 16 July 2012 - 03:17 PM

I am starting making a mmorpg game using qt and c++ does if anyone can point my in the right direction such as books, tutorials, website anything to help me get started.

Sponsor:

#2 Narf the Mouse   Members   -  Reputation: 318

Like
1Likes
Like

Posted 16 July 2012 - 03:29 PM

http://www.gamedev.net/page/resources/_/technical/game-programming/how-do-i-make-games-a-path-to-game-development-r892 - Start with Tetris. Realize the ridiculously immense scale of the project you've set yourself. Lower your expectations.

#3 shawk08033   Members   -  Reputation: 96

Like
-2Likes
Like

Posted 16 July 2012 - 03:45 PM

I'm a very good programmer and have programmed many other games including android and xna game so I'm not worried that my project to big i just need to how to get started.

#4 ApochPiQ   Moderators   -  Reputation: 14623

Like
3Likes
Like

Posted 16 July 2012 - 03:56 PM

Write some code?


Seriously, if you're experienced enough as a programmer to handle writing a game like this, it should already be second nature to you to just start hacking on a project and then take it through to completion. Something tells me this isn't the case.

#5 Radikalizm   Crossbones+   -  Reputation: 2794

Like
0Likes
Like

Posted 16 July 2012 - 04:14 PM

Wow, it's been a while since we've had one of these infamous MMO threads.

I'm a very good programmer and have programmed many other games including android and xna game so I'm not worried that my project to big i just need to how to get started.


Have a look at the credits for some MMORPGs and count the amount of people who helped develop it. When you've done that go find some information about how much those projects cost to develop and maintain and how many years were spent actually developing the base game.

All those people who worked on those MMORPGs were experienced in their fields, yet they still require large teams and large budgets.
An MMO first of all is not a single person project, it's not a no- or low-budget project, and it definitely isn't a project for someone with moderate experience.

Also this: http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect

I gets all your texture budgets!


#6 SimonForsman   Crossbones+   -  Reputation: 5953

Like
0Likes
Like

Posted 16 July 2012 - 04:29 PM

I'm a very good programmer and have programmed many other games including android and xna game so I'm not worried that my project to big i just need to how to get started.


If this is the case then pointing out the direction is fairly easy:
Fire up your code editor / IDE and get to work, you might want to do a rough system sketch for the backend first though, (Depending on your design it doesn't have to be all that complex), normally however the words MMO and tutorial don't mix all that well.

For proper MMOs you might want to pick up a book or two on distributed simulations (As its pretty much required knowledge to get that first M in there), you could also look at HeroEngine which solves some of the harder technical challenges for you (I don't know what kind of MMO you want to make but i'd highly recommend going into space, space is rather empty and thus it is fairly easy to make alot of it) (a massive number of concurrent players require a large world and a large world can require quite insane amounts of artwork and other assets)

Once you got a playable prototype you can make a post in the classifieds section here to recruit more people. (Don't bother recruiting until you actually got a solid start though)

Edited by SimonForsman, 16 July 2012 - 04:34 PM.

I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#7 CC Ricers   Members   -  Reputation: 623

Like
0Likes
Like

Posted 16 July 2012 - 05:26 PM

You said you've made some games for Android and XNA, but of what complexity? If you're not worried about the project size getting too big, you should then have an idea on how to break it down into simpler goals and projects, so you can figure out the first step. However, this contradicts the statement that you don't know how to get started. Can you be more specific on what kind of games you've made before?
My development blog: Electronic Meteor

#8 Servant of the Lord   Crossbones+   -  Reputation: 17970

Like
2Likes
Like

Posted 16 July 2012 - 05:57 PM

One step in the right direction may be to rethink the decision to use Qt for your game. I'm a Qt user myself, and am currently using it on my game - but my game is a 2D RPG where performance isn't critical.
Qt isn't really designed with games in mind, and as such, has some performance issues that pop up at unpredictable times - in particular I'm thinking about a blog post I read recently, where someone was making a Minecraft clone using OpenGL and Qt, and showed performance measurements for his game where Qt was eating the lion's share of it.

Also Qt kinda enforces it's own programming paradigm on you, forcing you to use signals and slots whether you want to or not, and takes complete control of the main loop of the application. I begrudgingly tolerate that in my project.
However, I suppose being open source and all, you could edit it to fit your needs and then recompile it (LGPL, so your changes need to be made available to others). I intend to do that myself in the future on different projects, but for my present projects I'm not bothering with that.

If I was using Qt for a 3D game, I'd edit it in the following ways before proceeding on the project:
A) I'd reclaim control of the main loop.
B) I'd swap out signals and slots (which is fine for applications) for a different kind of messaging system.
C) I'd make the rendering happen when I say and not when Qt feels like it.

That being said, the RIFT mmo uses Qt... I bet they didn't just use it out of the box, though. You have to weigh the pros and cons.

It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.

[Fly with me on Twitter] [Google+] [My broken website]

All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.                                                                                                                                                            [Need web hosting? I personally like A Small Orange]
Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal


#9 SimonForsman   Crossbones+   -  Reputation: 5953

Like
0Likes
Like

Posted 17 July 2012 - 01:00 AM

One step in the right direction may be to rethink the decision to use Qt for your game. I'm a Qt user myself, and am currently using it on my game - but my game is a 2D RPG where performance isn't critical.
Qt isn't really designed with games in mind, and as such, has some performance issues that pop up at unpredictable times - in particular I'm thinking about a blog post I read recently, where someone was making a Minecraft clone using OpenGL and Qt, and showed performance measurements for his game where Qt was eating the lion's share of it.

Also Qt kinda enforces it's own programming paradigm on you, forcing you to use signals and slots whether you want to or not, and takes complete control of the main loop of the application. I begrudgingly tolerate that in my project.
However, I suppose being open source and all, you could edit it to fit your needs and then recompile it (LGPL, so your changes need to be made available to others). I intend to do that myself in the future on different projects, but for my present projects I'm not bothering with that.

If I was using Qt for a 3D game, I'd edit it in the following ways before proceeding on the project:
A) I'd reclaim control of the main loop.
B) I'd swap out signals and slots (which is fine for applications) for a different kind of messaging system.
C) I'd make the rendering happen when I say and not when Qt feels like it.

That being said, the RIFT mmo uses Qt... I bet they didn't just use it out of the box, though. You have to weigh the pros and cons.


You can use QT without it taking over your mainloop if you want, (IIRC you only have to call ProcessEvents on your QApplication from your own loop) and i think you can call thinks like the updateGL method directly as long as its done from the thread that owns the QGLWidget.

It is however probably a better idea to use a different library for games unless the game is GUI driven. (QT is a great desktop GUI library, most of it is fairly useless in the average game though)
I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#10 scniton   Members   -  Reputation: 252

Like
0Likes
Like

Posted 17 July 2012 - 07:29 AM

Here is a good link: http://www.gamedev.net/index.php?app=core&module=search

More seriously, about the Qt thing, we've gone over this before, e.g. http://www.gamedev.net/topic/625708-use-qt-something-else-or-roll-my-own/page__p__4948203
Stop twiddling your bits and use them already!

#11 shawk08033   Members   -  Reputation: 96

Like
1Likes
Like

Posted 17 July 2012 - 07:48 AM

I want to use qt because of it network classes and its portability.

#12 mdwh   Members   -  Reputation: 838

Like
2Likes
Like

Posted 17 July 2012 - 07:54 AM

One step in the right direction may be to rethink the decision to use Qt for your game. I'm a Qt user myself, and am currently using it on my game - but my game is a 2D RPG where performance isn't critical.
Qt isn't really designed with games in mind, and as such, has some performance issues that pop up at unpredictable times - in particular I'm thinking about a blog post I read recently, where someone was making a Minecraft clone using OpenGL and Qt, and showed performance measurements for his game where Qt was eating the lion's share of it.

If that's the post I'm thinking of, it was specifically only to do with using the Qt GUI, overlayed with the graphics scene.

It's still perfectly fine to use Qt as an API for game development on a similar level to say SDL and SFML. Qt provides far more than a GUI - it provides windowing, input, sound, 2D graphics (or 3D via OpenGL/D3D, like with SDL), networking, SMP and so on, all the things you'd want in a cross-platform game API.

The key thing that's an issue for performance is if you want to have a GUI rendered as part of your scene, on the GPU. But say SDL doesn't provide any support for that whatsoever, but that's not a reason to not use SDL. As always, you either have to roll your own, or get a game UI toolkit that's built specifically for that job. (OOI, is there an open source cross-platform toolkit that does provide all the low level things like windowing, input, sound, networking, *and* a fast GUI toolkit as well?)

(This is a few times I've seen references to that blog post now - I fear it's starting a "Qt can't be used for games" myth, which completely misses the point of what Qt can provide, and what that blog post was measuring. Even without fast OpenGL/D3D based GUI, Qt still provides plenty for game development, and does just as well as the likes of SDL IMO.)

Now yes, Qt is perhaps most well known for its GUI engine and it perhaps seems a waste to not use that at all - but if we've decided that the GUI shouldn't be used, that doesn't mean there's nothing left to offer when it comes to low level game APIs like SDL etc. I'm not saying Qt is necessarily better than SDL, but they're both viable choices. Also a well written game/engine shouldn't necessarily be restricted to one or the other, and it shouldn't be the constraining choice in developing a game - I have a game that uses SDL for Windows/Linux/OS X, but I added Qt support for Symbian and Android (on Android, the Qt port seems better supported and easier to use than SDL or anything else I could find for C++). Nothing in my game code has signals/slots forced upon it, apart from a small amount of Qt specific code.

I'm also using it in a game where I use the Qt GUI elements in separate windows (and RPG, where the UI surrounds the main game window), and so I'm not sure if the performance criticisms apply there(?) since the GUI won't be rendered every frame.

Also Qt kinda enforces it's own programming paradigm on you, forcing you to use signals and slots whether you want to or not, and takes complete control of the main loop of the application.

Signals and slots are great things, though yes it does mean you aren't writing "pure" C++. Though as I say, you don't have to use signals and slots everywhere, only where your game/engine interfaces with the Qt API.

The latter is a good thing, particularly for mobile development (it means the programmer doesn't have to be trusted when it comes to things like sleeping, not wasting battery life on unnecessary CPU and so on). E.g., you don't get a main loop in Android at all - see http://stackoverflow.com/questions/1099640/main-loop-in-android .

Edited by mdwh, 17 July 2012 - 08:11 AM.

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://homepage.ntlworld.com/mark.harman/conquests.html - Conquests, Open Source Civ-like Game for Windows/Linux

#13 mdwh   Members   -  Reputation: 838

Like
0Likes
Like

Posted 17 July 2012 - 07:56 AM

double post

Edited by mdwh, 17 July 2012 - 07:59 AM.

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://homepage.ntlworld.com/mark.harman/conquests.html - Conquests, Open Source Civ-like Game for Windows/Linux

#14 DZee   Members   -  Reputation: 194

Like
0Likes
Like

Posted 17 July 2012 - 09:57 AM

I am starting making a mmorpg game using qt and c++ does if anyone can point my in the right direction such as books, tutorials, website anything to help me get started.


As it happens I am almost a certified QT programmer. I've had an in-depth course of one year by an expert. I don't know if you want your game to be in 3D then you have to check out the QtOpenGL module, from that point on you have an OpenGL context. If you want the mmo to be 2D the QGraphicsView and the Animation State Machine are a solid option.

The QGraphicsScene implements a search tree that let's you easily handle millions of drawn elements on screen.

http://qt-project.or...phicsScene.html

Essentially, you have a QGraphicsScene, a QGraphicsView and then add items that inherit QGraphicsItem for custom behavior. This is mostly for a 2D game. Otherwise I'd go with OpenGL.

Keep in mind that QT isn't an engine, it doesn't provide game-peculiar tools to help you in your development. If you are feeling adventurous, Qt Quick can be worth it. It has a similar writting style to javascript and CSS, yet you can write C++ backend for intensive tasks if you wish.

QT has very, very good documentation, I doubt you really need any book at all. Here's the page with examples, there's a tetris and an asteroid game in there:

http://doc.qt.nokia....l-examples.html

There's a QT Dev who wrote a game down where you shoot things down on a boat using a cannon. That's it.

Edited by DZee, 17 July 2012 - 09:58 AM.

I "surf" the web, literally.


#15 shawk08033   Members   -  Reputation: 96

Like
0Likes
Like

Posted 17 July 2012 - 10:35 AM

Its a 3d game so i want to use opengl

#16 Nickie   Members   -  Reputation: 319

Like
0Likes
Like

Posted 17 July 2012 - 10:46 AM

I want to use qt because of it network classes and its portability.


The network code from one game is the most easiest part of its development. If the game's architecture is well written it can take a day or two to make "the multiplayer mode".
Nothing more to say. Call me when you finish it, but with this SDK priorities it won't be soon Posted Image
My opinion, no offence. However, good luck!

Edited by Nickie, 17 July 2012 - 10:46 AM.


#17 scniton   Members   -  Reputation: 252

Like
0Likes
Like

Posted 17 July 2012 - 11:30 AM

(This is a few times I've seen references to that blog post now - I fear it's starting a "Qt can't be used for games" myth, which completely misses the point of what Qt can provide, and what that blog post was measuring. Even without fast OpenGL/D3D based GUI, Qt still provides plenty for game development, and does just as well as the likes of SDL IMO.)

Other people have been burned by using Qt in their games too, it's not as if that person who blogged about it was the only one.

Nobody is saying that it "can't" be used for games, but rather that there are important issues to weight into consideration.

As it happens I am almost a certified QT programmer. I've had an in-depth course of one year by an expert.

How much of this course was related to game programming? Don't get me wrong, Qt is pretty good at what it is designed for, just in my experience Qt has been a bad choice for games.
Stop twiddling your bits and use them already!

#18 Servant of the Lord   Crossbones+   -  Reputation: 17970

Like
0Likes
Like

Posted 17 July 2012 - 11:51 AM


One step in the right direction may be to rethink the decision to use Qt for your game. I'm a Qt user myself, and am currently using it on my game - but my game is a 2D RPG where performance isn't critical.
Qt isn't really designed with games in mind, and as such, has some performance issues that pop up at unpredictable times - in particular I'm thinking about a blog post I read recently, where someone was making a Minecraft clone using OpenGL and Qt, and showed performance measurements for his game where Qt was eating the lion's share of it.

If that's the post I'm thinking of, it was specifically only to do with using the Qt GUI, overlayed with the graphics scene.

Yes, I meant the GUI in particular. Here's the post.

It's still perfectly fine to use Qt as an API for game development on a similar level to say SDL and SFML. Qt provides far more than a GUI - it provides windowing, input, sound, 2D graphics (or 3D via OpenGL/D3D, like with SDL), networking, SMP and so on, all the things you'd want in a cross-platform game API.


You're absolutely right. For myself personally, one of the main draws of Qt is the GUI, so I do tend to think of Qt as a 'GUI' toolkit, even though I have made use of many other parts of its extensive libraries. It is definitely more than just GUI, as you said.

As I mentioned earlier, my own game project uses Qt for the editor, and the editor is built into the game itself (Qt-controlled SFML window for the game, and Qt-controlled Qt widgets all around the sides). For my 2D RPG, the performance costs aren't a hindrance. The signals and slots, which are nice for desktop applications, don't sit too well with me for game messenging, but that's probably from a lack of experience with them.

Qt is definitely very useful! Especially when it comes to desktop applications. I should rephrase my criticism to the OP as:
"If you are using Qt for a GUI in your 3D MMORPG (if your MMO is 3D), then you ought to be aware of possible performance hogging by Qt's widget system. However, Qt is open source, so you can alter it to fit your needs, or just not use the GUI part of Qt - Qt has much more than just widgets that may benefit your project."

Better? Posted Image

I appreciate the correction, Qt is an awesome set of libraries! I only meant to make sure the OP weighs the pros and cons (of the Qt widget system) for his particular project, not dissuade him from all Qt use, or even from all Qt for games use - so thank you for making me clarify my statements. Posted Image

It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.

[Fly with me on Twitter] [Google+] [My broken website]

All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.                                                                                                                                                            [Need web hosting? I personally like A Small Orange]
Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal


#19 DZee   Members   -  Reputation: 194

Like
0Likes
Like

Posted 17 July 2012 - 08:34 PM

As it happens I am almost a certified QT programmer. I've had an in-depth course of one year by an expert.

How much of this course was related to game programming? Don't get me wrong, Qt is pretty good at what it is designed for, just in my experience Qt has been a bad choice for games.


Well, since QT was originally a wrapper to make writing cross-platform C++ code there was never an intention to write native classes with gaming in mind. My course mostly went trough the different layers of the QT hierarchy starting from QtCore to QtGui all the way to phonon and multi-threading etc. There was too much ground to cover to have anything to do with games. I'd say that QT works well for games that rely heavily on graphical interfaces. I wrote a Sudoku and it took around 1 hour to style it with QSS in Qt Designer. So in that regard it's interesting.

Personally QT has an interesting approach in the sense that you are forced to use an MVC-like structure with each entity being a graphical item with a set position in space(Already done for you in 2D) which eases understanding of the code. I've worked at a company that remade the interface of a flight simulator with graphs in QT and it handled it very well with at least 1000 classes. My only gripe with QT is that the moc it generates for it's signal/slot mechanism and custom slang can sometimes cause headaches during compilation time.

If I were to write a desktop application with a GUI Qt would be a definite choice. It's up-to-date and the documentation is stellar. Also, projects with a large scope of different tasks would leverage the library well. If your goal is to use QT by spawning a window with a blank canvas to draw space ships and stuff then it's crap. You're gonna include half the world for something other more straight-forward libraries can do for you.

Here's an interesting page that shows what people have done with QT, ranges from small and big projects:

http://qt.nokia.com/qt-in-use

So to sum it up, you can very well use QT for your game. It provides touch support too. So I suppose making games for some embedded devices could be interesting.

Edited by DZee, 17 July 2012 - 08:52 PM.

I "surf" the web, literally.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS