Point me in the right direction?

Started by
10 comments, last by Switchbladed 9 years, 7 months ago

I'd like to start properly learning C++ (or Java), however I am not really sure where to start. I've been coding in various languages for around 6 years and I've made a bit of a Text RPG in C++, so I know the syntax and basics. A goal I'd like to get to one day is creating a 3D MMORPG (and 2D before that probably). I originally wanted to use Java, however after some research I think for the end goal C++ would work out better. The way I like to learn is to jump into a bigger project and continue working on it and learning as I go, so I would be willing to jump straight into 3D, however it seems 2D is a better place to start. At the moment I've just been using documentation and googling problems as I get to them, is this the best way to learn? What I was thinking was to start working on a 2D Sidescrolling Platformer and learning off that to begin with. I've also taken a look at engines like Unity and Unreal Engine, although I don't think this is something I'm really after, I would rather do everything from scratch I think.

So what I'm really asking:

1. Should I use C++ or Java? Keeping in mind the end goal is a 2D/3D MMO.

2. If you know of any tutorials for a 2D (sidescrolling) game or beginner tutorials I should use, please link them. Or any good beginner tutorials in general.

3. Are there any resources I should use to learn or use while I code?

4. What IDE would you suggest? Is Code::Blocks a good choice?

Any other tips are appreciated.

Advertisement

Hey there,

First i would like to point out one thing:

As you might know, is an MMO maybe one of the most complex games to make. If you haven't done

nothing but a text-based RPG in c++ it is probably really hard and discouraging to make such a game.

So my advice is: start a bit smaller. While you know the basics already and have other coding experience,

your first project might even be something cooler than a simple pong clone.

But if you really are confident and sure that you learn better starting with a large project, then okay I can't hold you back from that,

so good luck then.

For the answers on the questions:

1. While i see that you already know the basics, then I think that it might be handy to do it with c++.

It doesn't really matter which one you will be using, because you can do almost everything with almost every programming language.

2. Many people use this tutorial: http://www.cplusplus.com/doc/tutorial/

3. The tutorial from question 2, and the book c++ primer (5th edition) is probably a good book for both learning and using as reference.

4. Personally i use Code::Blocks, because for me it fits good for learning purposes,

but that is different for everybody. If you use Code::Blocks, Microsoft Visual c++, etc. there isn't a "Best one"

you just need to try some of them out and see which one fits the best for you.

I hope that this info is usefull for you and good luck,

RaoulJWZ

-snip-

Thank you, that's very helpful. I won't be starting with the MMO, although I do plan to start at something a little more complex than pong. I felt I should mention it as it will be the direction I'm heading in. I've used Microsoft Visual C++ in the past, so I am familiar with the layout, however I am going to try out Code::Blocks and see which I prefer.

For anyone else in the same position as me, another good read I found is: http://www.reddit.com/r/gamedev/wiki/getting_started

And anyone else also willing to answer, I'm looking for as much input as possible, so all replies are appreciated.

You might look into SFML for c++. If you're eventually going in the MMO direction, it does have networking capabilities. I've only used them for LAN connections, but I imagine they can be used for an MMO (though, I'm certain scale is going to be an issue for an indie MMO at some point). Additionally, it has graphics/audio/input modules that are incredibly handy.

Beginner here <- please take any opinions with grain of salt

You might look into SFML for c++. If you're eventually going in the MMO direction, it does have networking capabilities. I've only used them for LAN connections, but I imagine they can be used for an MMO (though, I'm certain scale is going to be an issue for an indie MMO at some point). Additionally, it has graphics/audio/input modules that are incredibly handy.


Thanks. I'll be checking out both SFML and Allegro for now, and yeah, I will need something that can scale for an MMO, but that probably won't be an issue for now.
You don't need anything that can scale to an MMO, because you are not going to build an MMO. There are indie games you can write on your own or with a few friends, but those can't be MMOs, because an MMO implies an infrastructure of servers with their sysadmins, some customer support, distributing patches, billing, accounting... And that's all after the game is complete!

If you are thinking of games like WoW or DotA, you will need programmers for several different areas (graphics, audio, network, gameplay, AI...), graphic artists, riggers, animators, game designers, writers, producers, lawyers...

I have made the following analogy before: Imagine you go to a forum for filmmakers (I am sure they have forums) and you explain you have been making home videos in your backyard for about 6 years, but you need someone to point you in the right direction because you would like to eventually make a movie like Avatar. What type of camera should you use, what kind of lighting... Does that sound ridiculous? This thread sounds exactly like that to me.

If you want to participate in that kind of endeavor in the future, you have to think of what role you want to have. Or you can just get some experience in the indie world and eventually make the jump. But to think that you need your tools to apply to both worlds is kind of insane.

You don't need anything that can scale to an MMO, because you are not going to build an MMO. There are indie games you can write on your own or with a few friends, but those can't be MMOs, because an MMO implies an infrastructure of servers with their sysadmins, some customer support, distributing patches, billing, accounting... And that's all after the game is complete!


I'm not coming here just asking how to build an MMO, that is where I'll get to myself. The servers and business side are no issue, I currently run 2 game server hosting businesses.

If you are thinking of games like WoW or DotA, you will need programmers for several different areas (graphics, audio, network, gameplay, AI...), graphic artists, riggers, animators, game designers, writers, producers, lawyers...


Again, the MMO is the end goal, could be years down the track. I'm only wanting to start on a simple 2D game.

I have made the following analogy before: Imagine you go to a forum for filmmakers (I am sure they have forums) and you explain you have been making home videos in your backyard for about 6 years, but you need someone to point you in the right direction because you would like to eventually make a movie like Avatar. What type of camera should you use, what kind of lighting... Does that sound ridiculous? This thread sounds exactly like that to me.


Yes, that sounds ridiculous and also sounds nothing like this thread.



I was expecting responses like yours. Thank you for wasting your time on your very useless post.


I was expecting responses like yours. Thank you for wasting your time on your very useless post.

Hold your horses there.... I think Alvaro makes some good points, and altough they might not apply to you, nothing in your first post really pointed in the direction that you had any expierience in running real MMO Game Servers (well, I am still not convinced you are talking about real MMO Cluster Servers and not just game servers for normal multiplayer games, which can be worlds apart because of scaling).

Let alone that you have the time, expierience, large team, money or other resources needed to really be successfull with your MMO endgoal.

But I understand that this was not your question... just try to understand that you are number 193492398 in theline of people coming here asking questions about MMO development (and your question, in the end, was about that: "What language to choose (with the endgoal to use it for MMO development)"), with little to no expierience to show that they are capable on really reaching their lofty goal (again, you might be different, but your TO Post does not read like that). While I don't think Alvaros post was that helpful or answering your questions, he makes some valid points you should consider (and, if you think they don't apply to you, safely ignore).

To come back to your question: I am pretty sure for Game dev C++ will be the more popular choice than Java. I know there are enough people cheering for Java, there are Java engines out there and then there is Android development, but for raw performance C++ will certainly still beat Java.

If that is important to you, only you can answer.

As soon as your game is not using cutting edge graphics, is not very CPU intensive and performance hungry, the question about language becomes a moot one. Use whatever you feel comfortable with. If you have C++ expierience, continue with that. Java will give you not enough benefits over C++ to justify re-learning everything.... of course, learning a new language is an easy task as soon as you are an expierienced developer.

The question should be rather, what Middleware / Frameworks / Engines to use to prevent re-inventing the wheel. Of course, if you like to develop your own engine, have fun and do just that.

But its a lot of time and work for little to no gain, that will take you off track from your real goal: developing your game.

So I would suggest you really take a step back and ask yourself: "Do I want to develop an engine or a game?" .... for learning purposes, to become a good engineer and get some portfolio pieces and streetcred for an engineer position in a game studio, the first path certainly is a good one.

If your own game is your only real goal, get an existing engine, research a good Network middleware, and let other people do the low level plumbing for you. Especially with your lofty aspirations, developing all the necessary netcode and DB Stuff will take you years for no real gain over already existing solutions.

@Alvaro: gave you a +1 to even out the score as I don't think you deserve the downvote.

Thanks for the reply Gian-Reto. Alvaro did make some good points, I probably jumped the gun a bit there. Most of my server experience is with just normal multiplayer games, however in the last few months I've been working with a bunch of cluster/mmo kind of servers. Either way, the MMO is not what I was asking for help with, that is something that I would tackle when I get to that stage which is why I wasn't really happy with Alvaro's response.

The question should be rather, what Middleware / Frameworks / Engines to use to prevent re-inventing the wheel. Of course, if you like to develop your own engine, have fun and do just that.
But its a lot of time and work for little to no gain, that will take you off track from your real goal: developing your game.

So I would suggest you really take a step back and ask yourself: "Do I want to develop an engine or a game?" .... for learning purposes, to become a good engineer and get some portfolio pieces and streetcred for an engineer position in a game studio, the first path certainly is a good one.
If your own game is your only real goal, get an existing engine, research a good Network middleware, and let other people do the low level plumbing for you. Especially with your lofty aspirations, developing all the necessary netcode and DB Stuff will take you years for no real gain over already existing solutions.


I don't really just want to make my own game, it's something that I hope to make a career out of. I think developing my own engine would be more enjoyable and satisfying, so that is likely what I'll do. That decision is also partly because I haven't really found an engine that can offer what I'm after, but then again I haven't really looked into many other than Unreal Engine. Unreal Engine looks great and I may use it in the future, although not for an MMO.

Right now I'm just looking into libraries to find which is best for me.


I don't really just want to make my own game, it's something that I hope to make a career out of. I think developing my own engine would be more enjoyable and satisfying, so that is likely what I'll do. That decision is also partly because I haven't really found an engine that can offer what I'm after, but then again I haven't really looked into many other than Unreal Engine. Unreal Engine looks great and I may use it in the future, although not for an MMO.

Right now I'm just looking into libraries to find which is best for me.

AFAIK, finding an MMO-capable engine is still quite a task. When Wargaming started developing World of Tanks, they selected Bigworld engine just because it was the only commercial engine available designed for MMOs out of the box (and reasonably priced). Now, don't get me wrong, Bigworld is (was, WG bought it some years ago so its most probably not available for licensing anymore) a capable mulitpurpose engine, but it was (and in some cases still is) way behind the cutting edge engines at the time when it came to rendering and other stuff like that.

So I guess WG, which was a small studio, but still already quite expierienced at the time, did search the marketplace, did not find any of the cutting-edge engines capable of doing the MMO Gruntwork for them (I guess they were not expierienced MMO devs, so they wanted something out-of-the-box), and resorted to a secondrate engine that just was the only one with good netcode that they could afford.

Now, I have not tried the third party netcode you can get/buy for the commercial engines yet, but most of it comes with strings attached (only working for a specific server provider, or expensive)...

So one way you could take is to get an existing engine, and write your own netcode as a plugin to that engine.

This would make sure you could concentrate your energy on what you know best / what really IS missing currently in the big engines affordable to indies, while not re-inventing the wheel were the current crop of big indie engines already excel (graphical rendering, Editors)

This topic is closed to new replies.

Advertisement