Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


how do I create a small multiplayer game?


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
11 replies to this topic

#1 LiziPizi   Members   -  Reputation: 84

Like
1Likes
Like

Posted 12 June 2014 - 05:54 AM

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

Sponsor:

#2 BitMaster   Crossbones+   -  Reputation: 4436

Like
8Likes
Like

Posted 12 June 2014 - 06:44 AM

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).

#3 GameCreator   Members   -  Reputation: 786

Like
4Likes
Like

Posted 12 June 2014 - 12:37 PM

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



#4 NickW   Members   -  Reputation: 313

Like
0Likes
Like

Posted 12 June 2014 - 03:50 PM

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



#5 SeanMiddleditch   Members   -  Reputation: 7245

Like
7Likes
Like

Posted 12 June 2014 - 05:29 PM

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.

#6 frob   Moderators   -  Reputation: 22779

Like
7Likes
Like

Posted 12 June 2014 - 07:41 PM

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.

Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I write about assorted stuff.


#7 BHXSpecter   Members   -  Reputation: 1675

Like
0Likes
Like

Posted 12 June 2014 - 10:02 PM

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.


Edited by BHXSpecter, 12 June 2014 - 10:04 PM.

"Through vengence I was born.Through war I was trained.Through love I was found. Through death I was released. Through release I was given a purpose."


#8 Serapth   Crossbones+   -  Reputation: 5791

Like
0Likes
Like

Posted 13 June 2014 - 08:15 PM

... 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.



#9 BHXSpecter   Members   -  Reputation: 1675

Like
0Likes
Like

Posted 13 June 2014 - 09:44 PM


... 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/


Edited by BHXSpecter, 13 June 2014 - 09:48 PM.

"Through vengence I was born.Through war I was trained.Through love I was found. Through death I was released. Through release I was given a purpose."


#10 Serapth   Crossbones+   -  Reputation: 5791

Like
0Likes
Like

Posted 16 June 2014 - 08:46 AM

 


... 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.



#11 Amaz1ng   Members   -  Reputation: 131

Like
0Likes
Like

Posted 16 June 2014 - 10:14 AM

beej guide is pretty good. I havent found any resources specific to games yet though. 


http://innercirclegames.freeforums.org
Email me at: innercirclegames@hotmail.com

#12 Orymus3   Crossbones+   -  Reputation: 10674

Like
0Likes
Like

Posted 18 June 2014 - 08:25 AM

Backend engineering is really not my forte, but my understanding, from a frontend perspective, is that your backend code should:

 

- Receive requests

- Process requests

- Return results (and save them in your DB assuming persistence)

 

 

Now, let's assume you're translating your frontend code from your usual code to server-based code. What you'll want is to have an independent entity effectively poking your server with queries. You will be pooling this entity from your usual classes. Our personal approach is to make an API class and include all of the message types we could be sending to the server, effectively allowing other classes to poke the API with a request (and letting the API build the request from the arguments, encoding, and sending)

 

You'll also need a standalone entity listening for server messages, and populating them into some form of local database replica, which other classes will be able to get from. 

 

I personally went to PHP because this is what my partner knew the most, and we're using JSON format for all data. 

Note: This is a turn-based game, may not be ideal for real-time.






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