Key concepts for Online Game Dev

Started by
2 comments, last by hplus0603 9 years, 8 months ago

Hello everyone.

I applied to an Online Game Developer position in Gameloft and the first step is going to be an online test about c++.

Its been a while since i dont use c++, but im sure i wouldnt have any problems with the syntax and with basic stuff, BUT, i have no previous experience in game development, so im pretty lost about what are the important things when talking about an this positions. Im really interested in the job and want to prepare myself for the test smile.png

These are some of the requirements they listed within the job offer (just to let you makes an idea of what the position should be)

Excellent C/C++ programming skills.
Experience working with relational databases such as MySQL.
Web scripting experience, PHP/Python and Javascript preferred
Experience in HTTP protocol and REST services.
Prior experience working with Facebook or other Social Networks API/SDKs.
Extra:
Experience on iOS will be a big plus.
Sockets programming skills (UDP/TCP) would be an asset.

So, knowing that the test will be focused on c++, my questions here are:

What are the key/core concepts when developing online game in c++? Standard libraries exists?

What are the typical data structures used for this (circular lists? binary trees? other kind of trees?)

What kind of questiosn should i expect about networking?

Someone who work/worked on Gameloft can give me some advice?

Thank you all in advance!

Advertisement
First: If you feel rusty about C++, and the first requirement of the position is "expert in C++," then you might want to re-consider whether you would really be the best person to fill this position.

That being said: There's no "one standard library" for networking in C++. It all depends on which game engine is being used, and which middleware. There are standard libraries like WinSock, Berkeley sockets, and Boost ASIO, as well as more game- or platform-specific libraries like RakNet, GameSpy, Steam, Xbox Live, Playstation Home, etc. Games often also use traditional network and web services frameworks for non-real-time tasks, and there are tons of those for all possible languages.

In general, it's more important to understand how the internet actually works (what's a route? what's an address? what's NAT? how is a UDP port different from a TCP port? What's the role of the application, versus kernel, versus network card, versus routers?)
enum Bool { True, False, FileNotFound };

First: If you feel rusty about C++, and the first requirement of the position is "expert in C++," then you might want to re-consider whether you would really be the best person to fill this position.

That being said: There's no "one standard library" for networking in C++. It all depends on which game engine is being used, and which middleware. There are standard libraries like WinSock, Berkeley sockets, and Boost ASIO, as well as more game- or platform-specific libraries like RakNet, GameSpy, Steam, Xbox Live, Playstation Home, etc. Games often also use traditional network and web services frameworks for non-real-time tasks, and there are tons of those for all possible languages.

In general, it's more important to understand how the internet actually works (what's a route? what's an address? what's NAT? how is a UDP port different from a TCP port? What's the role of the application, versus kernel, versus network card, versus routers?)

First of all, thanks for the answer!

Even though is true that i currently feel "rusty" in C++, im pretty confident in my capability and im sure i could perform perfectly fine on the job. During my college time i acquired a deep understanding of algorithms, data structures, memory management... So i really think that besides the uniques features that c++ might have, i have the necessary skill for this! I also have some experience in networking, so im aware about protocols, tools (like nmap, tcpdump, wireshark, snort) and all this stuff :P

Its going to be a challenge? Sure, but i have to try :)

Now, back to the main topic: I will take a look at some of the standard libraries you told me, but i think what you said about games using traditional network web services for non real-time tasks is pretty interesting. Is there some place where i can read some examples of "standard/basic" network design for an online game? I know that there is going to be a lot of differences depending on the game, im just looking for some examples to start with.

Thanks!

Maybe start here? http://highscalability.com/blog/2010/2/8/how-farmville-scales-to-harvest-75-million-players-a-month.html
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement