multiplayer too hard for beginner

Started by
3 comments, last by Butabee 11 years, 3 months ago

is basic server client multiplayer too hard to learn for someone who is a beginner to game development. Im looking to implement basic UDP multiplayer for a 2d game using winsock or enet. im fairly proficient with c and i have learnt c++ but havent made anything with c++.

Advertisement
It is not too hard. But it is an additional thing.

If you want to learn network programming, then start with bare-bones network programming. Make connections between two computers, then grow to sending simple text copied between two computers, then grow to a bigger protocol, and so on.

After you understand network programming a little bit, it won't be too hard to incorporate it into a simple game. Assuming you have experience already making simple games.

If you start out saying you want to make a game that includes 50 things you've never done, you are going to need to learn 50 things at once. If you learn how to do each of the 50 things separately, and then slowly learn how to combine them, it will just be a simple learning experience.

There are a few ways that you can implement a multiplayer game.

  1. You can learn networking first and then use that fresh when developing a game
  2. You can learn game design first and use that when developing networking
  3. You can do both simultaneously with some pointers.

If you're in a rush, then a hybrid between 1 and 2 (3) us possible. Essentially, I believe that networking is the most flexible; the underlying concepts can be applied to most games. Either way, you can write a network-friendly game without having to use networking at all. It's simply a case of understanding where data would need to be accessible, and where other players would need to interact with the game. By ensuring that those parts of the system are accessible so that you can override a single player mechanic later on with networked hooks you could "get away" with learning how to network in parallel.

Like frob says, networking is an additional component to the game that you have to consider while making the game.

I found it a bit overwhelming to learn both networking and game programming at the same time. So I did (using SDL and its networking library SDL_net):

1. Made a very very simple 2D game (Pong). It took me 1-2 days. Its all in one file so easy to copy/paste.

2. Started playing around with Networking tutorials to better understand how networking works.

2.5 After modifying tutorials and seeing how the library works, I started to experiment

3. Made a small "guess my number ?" game. Just in the console/terminal view. (tried to keep it simple and easy)

4. Lastly I copy/pasted my pong code with the server and client code.

4.5 After modifing the code to work properly, I had a working 2 player pong game.


I wouldnt say that networking is hard. But it does bring an additional layer of complexity to a game. Eg One player may see something totally different from another.
If you want a quick and easy multiplayer game without having to learn too much of the lower level stuff I'd say use something like unity. I'd recommend it. I don't really like programming network code so maybe I'm bias. Making a small multiplayer game in unity should be a snap compared to anything else.

This topic is closed to new replies.

Advertisement