how do I create a small multiplayer game?

Started by
10 comments, last by Orymus3 9 years, 10 months ago
So basicly I want to create a small 2d multiplayer game with a server client and probably more stuff that I dont understand yet, my programing language is c++ with opengl as a graphic library. So my questions are how do I program a server? With what programming language poeple create servers? What is php? Can I define that my own laptop will be the server that will run 24/7? I tryed to find some tutorials but I could not find anything.

Hope you can help me.
Thanks
Advertisement
Since you do not seem to have any experience in the area you might as well start with the ancient but still relevant Beej's Guide to Network Programming. I would strongly advise forgetting about game related usage for now and do something simple (like a very simple file server or chat program).

I'd look into RakNet. It's much simpler and free to use.

Have you considered doing local multiplayer first to get the mechanics down?

So my questions are how do I program a server?


The same way you program anything else. It's just a program like any other.

With what programming language poeple create servers?


Every language under the Sun. Just like any language can be used to make a game client, any language can be used to make a game server. Games are typically written in C++, but that's not a requirement. C#, Java, Python, whatever you want can be used to write a server. Some languages have various niceties that make writing servers easier and some have oddities that make it harder, but ultimately 99% of what the server will be doing has nothing to do with "being a server" so that's not relevant.

What is php?


It's a programming language and associated library of functions/classes primarily designed for writing web applications. It's often used for Web games (think Facebook games), but it can be used for other purposes. I wouldn't bother worrying about it if you aren't already a PHP programmer.

Can I define that my own laptop will be the server that will run 24/7?


Yes and no.

Nothing stops you from leaving your laptop open to be a server, though that sounds inconvenient at best. Your ISP (Comcast, etc.) may have rules or policies that make this difficult to do, however; every computer on the Internet has an address and letting players connect to a server requires that the server have a fairly stable well-known address. Many ISPs constantly change their customers' Internet addresses, making them poor places to put server. They also almost always have rules that you had to agree to when you signed the service contract barring you from running any kind of server or service on the connection. You're much better off with a dedicated server or a Cloud server setup.

Sean Middleditch – Game Systems Engineer – Join my team!

All that being said, you might benefit from the Networking Forum's FAQ.

It covers the tutorials and libraries mentioned above, and links to stories and sites where people give step-by-step examples of what was originally requested.

Particularly relevant might be the 'server in about four hours' Q&A segment near the bottom of the FAQ.

Might be a good disclaimer to add to the FAQ or here, just to point out that some of the links are broken in that FAQ. For example, a link to a resource on this site gives a 404 page, and Gaffer's link goes to a juicer site now.

... do I even want to know what a Juicer site is?

As to the OP, I did a basic tutorial series on creating a server using C++/SFML as the client and Node as the server. Frankly using C++ on the server side is... bad. Will create a horrible amount of overhead for a minimal amount of gain. In server programming "speed" has a completely different meaning. Don't get me wrong, you can write C++ servers that perform very well... just doing it, and doing it in a way that scales well, is a fools errand.


... do I even want to know what a Juicer site is?

Gaffer's site ( http://www.gaffer.org/ ) now goes to a juicer site that talks about the best juicers to buy (the machines that you make home-made juice with like putting orange halves into it to get orange juice).

@Serapth

Is there anything your site doesn't cover? I'm blown away at the wealth of knowledge on it.

Did some searching. Here is gaffer's new link: http://gafferongames.com/networking-for-game-programmers/


... do I even want to know what a Juicer site is?

Gaffer's site ( http://www.gaffer.org/ ) now goes to a juicer site that talks about the best juicers to buy (the machines that you make home-made juice with like putting orange halves into it to get orange juice).

@Serapth

Is there anything your site doesn't cover? I'm blown away at the wealth of knowledge on it.

Did some searching. Here is gaffer's new link: http://gafferongames.com/networking-for-game-programmers/

A literally a juicer, like a Blender... I was thinking much much worse thoughts... well that or I figured it was on drugs... here juicing is slang for 'roid use.

Hmmm... I've yet to do a tutorial on knitting. ;) What can I say, I'm pretty lucky... I love and dabble in almost all aspects of game dev, so I get to do tutorials on just about anything that holds my attention. You wont see a ton of super in-depth technical posts though, things like optimizing for X-architecture, as my knowledgeset is broad but fairly narrow. Those posts are best written by people that spend their days in the trench specializing in a given subject.

This topic is closed to new replies.

Advertisement