|No 3D graphics with those libraries. He's looking for 3D graphics.|
Both of those provides direct contexts to openGL so yes they both provide 3D graphics and yes both can be used to do 3D games.
|Paul Combaldieu wrote:|
|Well maybe you should consider a game engine, like source or havok, or try finding less popular ones. These days, no games are made without game engines|
While it is true most AAA games are made with either commercial engines like Cryengine, Unreal Engine, ect or their own in house engine.
A lot of indie development like he is trying to do are built from scratch without the use of a premade engine. So the statement that no games now days are made without a engine isn't true. In fact I have a few games that prove that wrong.
Though using a Game Engine like Unity or Irrlicht or even Orge3D (Which is more of a rendering engine then a game engine) would simplify the process greatly.
Now for the OP. You really need to learn the basics of game development before you even attempt to program a MMO or even a indie game of any quality. Commercial MMO's (Even 2D browser based ones) are programmed by huge teams (Some of the larger ones can top out over 200 people) that are working full time for a few years.
So if I might suggest a better path for you to follow?
First pick out a very simple game that has already been made. Them two points are very important. It needs to be simple since you have no experience with game development and it needs to be a clone of a game because you already know what needs to be implemented.
When it's a clone you don't need to work out all the minor details of the game design, instead you can just concentrate on learning the techniques required to make that game and leave all the harder stuff to the creators of that game.
Some simple suggestions would be
- Space Invaders
- Pac Man
All of them are much harder then they might seem to program (Yes even pong) and they will give you insight into the different topics of game development.
They can be in 2D or 3D doesn't really matter that much (Though in 2D learning the techniques can be easier for some people and the math is easier). You can also of course implement your own little add on features to them to make them standout and be special but I would hold off on that till you get a working clone of the game.
Also here is some basic beginner subjects that you will NEED to be proficient at in order to continue on further.
The Main Game Loop
- Make sure you understand how this works, how to set a timestep and why you need a timestep.
- Learn how to manage your resources efficiently. You don't necessarily need to dig into advance smart caches but you should understand how resources are managed and used in a game.
The Coordinate System
- Whether you work in 2D, 3D or 21/2
D you will need to understand exactly how coordinate systems work and how to use them. This includes stuff like understand vectors (Not std::vector), the difference between local space and world space, ect.
- While not every game uses physics in it, you should still have a good grounding in physics before moving on to more advanced games. Some starting points would be learning how to use velocity and acceleration forces to move your Entities around your game world. This topic is far to large to go into what you will need to know so can't really give you any guidance on what to learn.
- Most games aren't a single scene or even a single screen. There is usually a Main Menu, Pause Screen, Level 1, Level 2 or even a Massive open world. So you need to know how to transition between them different states.
- This is a huge topic so I won't go into specifics but you should know at least a little bit about AI before moving on to larger games. This might be as little as how to implement a FSM (Finite State Machine) to control your AI or as much as digging deep into Steering Bahaviors, Pathfinding, Behavior Trees, Autonomous Actors, ect.
- This is actually quite optional but since you said you wanted to make a MMO this is going to be a must for you. Before moving on to larger games you should understand how sockets work, the basic protocols, how to create your own custom protocols, different styles of architecture and all that fun stuff.
- You say you already know openGL so I won't go into this though make sure you understand it quite well.
Sounds, Shader Effects, User input, Profiling the game, Working with datafiles, ect, ect.
- I could keep on going on about just the things in basic game development but I think this post is getting quite long as it is already.
But the main point is don't try and rush into making a huge massive AAA hit of a game all at once. I am sorry but it won't happen. You need to take it slow and at least get a basic understand of all the different parts of a game so you know how they work together before even attempting to finish a actual game (And a small one at that). Game development isn't a walk in the park and it will take a lot of time and hard work to learn and 100x more to master (If there is such a thing in game dev).
So don't rush it, take it nice and slow and make sure you get a good grounding in the basics.
Anyways that is just my 2 cents (Sorry for the long post ;p)