Jump to content
  • Advertisement
Sign in to follow this  

What should I learn and what shouldnt I learn to start making multiplayer games?

This topic is 2174 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have studied c++ before a few years back but it's useless to know c++ on its own unless you only want to make singleplayer console text games.

And I didn't really learn the advanced stuff like multithreading.

I also did a little bit of WinAPI learning.. But I didn't want to learn about the draw stuff in WinAPI because I think you will use OpenGL or Direct3D for that (I didn't ever get into learning either of those two) or some game engine maybe.

I also looked into networking with telnet or something i can't remember anymore. or maybe it was called socket or something.
That was super complicated stuff and it's then that I gave up on learning game programming. Because learning multithreading + networking at same time is nightmare it's already nightmare both on its own.

I am assuming that you need to know how to use c++ advanced stuff like multithreading etc and networking BEFORE you start using a game engine?

I just am having a hard time puzzling together what I need to know and what I don't need to know..

So if you can tell me what I should do and maybe give links as well that would be awesome =)
The more detailed help you can give such as just for example what networking language I should learn and which ones I have available to chose from and advantages between them etc.

Share this post


Link to post
Share on other sites
Advertisement

I am assuming that you need to know how to use c++ advanced stuff like multithreading etc and networking BEFORE you start using a game engine?

Not necessarily; that would depend on the engine in question as well as how you're going to use it for a particular project. Some engines provide a fairly basic framework and require extensive programming to produce a game, but it's increasingly common for them to either need only a simpler level of C++ programming, or even to provide bindings to simpler languages. When using Unity3d for example, you can code in C#, Boo (similar to Python), or UnityScript (very similar to JavaScript). Unreal can be programmed using C++ or UnrealScript.

So, the question therefore becomes "what features do you need for your game?" If you have a clear idea of your game's requirements you can pick an engine that meets those requirements, and you can then learn what you actually need to use that particular engine rather than learning things that might or might not be useful in the end.


So -- what sort of games are you actually aiming to create? What features do you need, and what platforms are you planning to target. From there we can recommend specific engines and give you an idea of what might be useful to learn in order to use them.

Share this post


Link to post
Share on other sites

[quote name='glhf' timestamp='1338718673' post='4945767']
I am assuming that you need to know how to use c++ advanced stuff like multithreading etc and networking BEFORE you start using a game engine?

Not necessarily; that would depend on the engine in question as well as how you're going to use it for a particular project. Some engines provide a fairly basic framework and require extensive programming to produce a game, but it's increasingly common for them to either need only a simpler level of C++ programming, or even to provide bindings to simpler languages. When using Unity3d for example, you can code in C#, Boo (similar to Python), or UnityScript (very similar to JavaScript). Unreal can be programmed using C++ or UnrealScript.

So, the question therefore becomes "what features do you need for your game?" If you have a clear idea of your game's requirements you can pick an engine that meets those requirements, and you can then learn what you actually need to use that particular engine rather than learning things that might or might not be useful in the end.


So -- what sort of games are you actually aiming to create? What features do you need, and what platforms are you planning to target. From there we can recommend specific engines and give you an idea of what might be useful to learn in order to use them.
[/quote]

Thanks for the answer..

I will list a few game examples to get an idea what I need to create those different games..

Minecraft?
Counterstrike?
Ultima Online?
Magic the Gathering?

Share this post


Link to post
Share on other sites

How much c++ do you actually know? Have you made any games before?


I made a super tiny console text game singleplayer.
Where it reads info from a few notepad files.. for the map.... monsters... stats..
Kinda like

"You're standing on a dirt road, There's a few scattered dead trees in this area and you can hear the owls.
It's getting near midnight, The road goes north to south direction. Do you want to:
1. Go north.
2. Go south."

You get the idea.. the game had basic fighting system too where you just auto attack each other and lose health.

Share this post


Link to post
Share on other sites
That's really not too bad so far. What sort of code did you use? All If/Else statements? Switch? Classes? Because really what you've described could be made really easily, or made with more advanced options. (for the purposes of knowing where you're at knowledge wise)

Share this post


Link to post
Share on other sites

That's really not too bad so far. What sort of code did you use? All If/Else statements? Switch? Classes? Because really what you've described could be made really easily, or made with more advanced options. (for the purposes of knowing where you're at knowledge wise)


Yep I used all of that you mentioned..
Remember it's been a few years since I did this so I can't remember too many details but I could "easily" refresh what I knew if I decide to give it another try.
Used loops as well.

Edit: I also remember that I felt pretty confident about pointers towards the end before I gave up.
And I was still slightly foggy about allocating new memory with the "someting = NEW something" or something like that lol Edited by glhf

Share this post


Link to post
Share on other sites

[quote name='Inuyashakagome16' timestamp='1338728967' post='4945790']
That's really not too bad so far. What sort of code did you use? All If/Else statements? Switch? Classes? Because really what you've described could be made really easily, or made with more advanced options. (for the purposes of knowing where you're at knowledge wise)


Yep I used all of that you mentioned..
Remember it's been a few years since I did this so I can't remember too many details but I could "easily" refresh what I knew if I decide to give it another try.
Used loops as well.

Edit: I also remember that I felt pretty confident about pointers towards the end before I gave up.
And I was still slightly foggy about allocating new memory with the "someting = NEW something" or something like that lol
[/quote]
lmao well it sounds like you've got a decent understanding of all that so far. :P

Share this post


Link to post
Share on other sites
Ok, so those are four reasonably different games. There's not just one correct approach, but I'll give you a few thoughts about potential approaches to each game:

Minecraft?

Minecraft is written in Java, and it's a custom engine. The majority of it isn't really all that complex (relatively), but it was reasonably novel and took off.

If I were approaching the task of producing a minecraft clone, I would probably bind PolyVox to PyOGRE and write my clone in Python. Those who prefer C++ to Python might consider the same approach using the main version of OGRE and programming in C++ rather than Python. If you preferred Java you might consider jMonkeyEngine.

Given that my selected approach involves binding together different libraries, you'd need intermediate to good programming skills, and probably a reasonable amount of experience.

Counterstrike?[/quote]
To clone Counterstrike, I would most likely choose to use the Unreal Development Kit. Given Counterstrike is a relatively straight-forward FPS (i.e. there isn't much that's really different to any other shooter) most of the work would be done in the provided editor, with the required scripting being done in UnrealScript. The majority of the difficulty with this sort of project would actually be in producing the quality assets (models, textures, etc.) for such a game.

I wouldn't really recommend a standard FPS as an indie project if you're planning to make money -- if you've got something quirky like Portal you may be able to stand out, but the AAA studios produce plenty of hugely popular standard shooters already.

Ultima Online?[/quote]
Hero Engine. Again, most of the work could actually be done directly from the provided editors, with small amounts of code for any custom functionality being written in HeroScript. Again, the major difficulty with such a project would actually be asset production.

Magic the Gathering?[/quote]
I haven't played this one, and I'm actually in a bit of a rush right now... so I'll be back tomorrow -- I do have some additional thoughts to offer, and I'll see if I can find a video of this game to see what it's like -- assuming it's a reasonably direct translation of the card game it should be a fairly simple one though.

Share this post


Link to post
Share on other sites

Ultima Online?

Hero Engine. Again, most of the work could actually be done directly from the provided editors, with small amounts of code for any custom functionality being written in HeroScript. Again, the major difficulty with such a project would actually be asset production.
[/quote]

Hero Engine looks amazing!
Just too bad you need 3ds max or maya to work with HE.. I've only got blender.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!