From stand-alone game to online-multiplayer

Amuseware_Scott 101 Nov 01, 2012 at 14:57

Sorry if this is the wrong place for my questions. I’m a brand new member and this is my first post.

I have been developing and selling stand-alone games for Windows for many years. Now, I would like to put one (or more) of my games online, so that people can log in and play other people from around the world.

The games are written in C using National Instruments CVI environment (if that’s relevant). I have a website (Amuseware) which is hosted by IDCSoft.

Okay. The first question is: can I use my existing C code or do I need to learn another language?

  1. Would the game exist on the (IDCSoft) server and people would download a client application?

  2. Is the “game room” a separate application? And do I write that or buy it?

  3. Are there tools out there designed for what I want to accomplish?

Thanks so much for your help.

1 Reply

Please log in or register to post a reply.

TheNut 179 Nov 01, 2012 at 16:44

To answer your questions:

  1. You can still use your existing C code. You will be required to implement sockets in your game client and adjust the design of your game so that it’s multiplayer ready. Meaning you need to include the option to render additional players as well as send and receive various messages over the network.

  2. The client portion of your game will still be downloaded from your CDN. The game itself will communicate with your game lobby to find active servers that the player can join. These game servers can either be hosted by you or on the machines of your gamers. Depends on what your business model is.

  3. Depends. You can create a separate dedicated server, which would be required if you wanted to host the servers yourself. You could optionally add hosting capabilities in your game client and let your gamers run their own servers. Due to the specific nature of game servers, there are no pre-made solutions for you. There are however networking frameworks that you could use instead of rolling your own. ACE is one of them, but it’s a bit of a beast. Boost also has asynchronous support over the wire, but these are all C++ solutions. You could role your own as well, but this requires you read up on socket programming. BeeJ’s guide to network programming is a good starting point. This will only get you talking over the wire though. It won’t help you talk with web servers or create a client-server protocol for your game. These are things you have to deal with manually once you can start sending and receiving data via sockets.

  4. Developing a game server doesn’t involve any tooling as much as it does logic and programming. You can use drawing tools and office software to help you document and plan your game protocol, but other than that it’s a manual effort.