Jump to content
  • Advertisement
thiodolfr

languages needed for MMORPG

Recommended Posts

I did some programming in high school,  Mostly independent study since then.  Realizing I need more resources to make headway, sooooo...

I've chosen c++ for my main programming language, but what other languages should I learn to (don't laugh) program EVERYTHING myself?

client, server,graphics, sound...

Already know I'm insane for contemplating it, but I consider it a masterwork in progress and want to get a basic version running before MAYBE recruiting help.

Share this post


Link to post
Share on other sites
Advertisement
39 minutes ago, thiodolfr said:

I did some programming in high school,  Mostly independent study since then.  Realizing I need more resources to make headway, sooooo...

I've chosen c++ for my main programming language, but what other languages should I learn to (don't laugh) program EVERYTHING myself?

client, server,graphics, sound...

Already know I'm insane for contemplating it, but I consider it a masterwork in progress and want to get a basic version running before MAYBE recruiting help.

You can program the client and server with C++.

Share this post


Link to post
Share on other sites
7 minutes ago, thiodolfr said:

okay, Is there a better way to communicate between the client and server?

 

What limitations have you found by using C++ that would make it not a good choice for the client and server based on your project requirements?

Share this post


Link to post
Share on other sites
1 hour ago, thiodolfr said:

I did some programming in high school,  Mostly independent study since then.  Realizing I need more resources to make headway, sooooo...

I've chosen c++ for my main programming language, but what other languages should I learn to (don't laugh) program EVERYTHING myself?

client, server,graphics, sound...

Already know I'm insane for contemplating it, but I consider it a masterwork in progress and want to get a basic version running before MAYBE recruiting help.

Geezzzz. You sound like my clone (probably a younger version, LOL) . Welcome to the crazy MMO builders club! High five!

I'm using C++ too. But I haven't settled on a scripting language myself. I'm debating doing my own, since I did a couple of them in previous jobs. My preference if for a language without a GC but then referenced counted languages can have issues with data loops.  So many decisions.

Share this post


Link to post
Share on other sites
Posted (edited)

 My preference if for a language without a GC

GC?

 

Edited by thiodolfr

Share this post


Link to post
Share on other sites
8 minutes ago, thiodolfr said:

 My preference if for a language without a GC

GC?

 

Garbage Collector

Share this post


Link to post
Share on other sites

Anything works to setup an MMO and there are plenty of frameworks out, even for those engines like Unity found in their Asset Store. I also met someone who was presenting his barebone MMO on a meetup so anything is possible.

As for an MMO you first need to write your engine as for every other game but plan and focus on a larger scale in for example Multithreading, Network communication and most important your workflow on managing and building the project. Trust me, when I started 6 years ago to get the (general) game engine of my dreams to life, any slowdown occuring was because the project and building environment was not well organized. Today I invested lots of time into management tools I wrote by myself and it was worth it because everything I need is just a command line away.

A general advice I can give for network communication is to really really think well about what you want to achieve and then rethink it twice. For an MMO, performance is anything; you don't want to write network code that runs like a rabbit through a tube, so it works well when you are alone on the server but gets into trouble when the normal workload of clients are connected.

Linux and Windows have different network stacks, you best start with the windows IOCP model and then mimic the behavior with Unix Poll technology. The other way round is very difficult to achieve.

Using IOCP is necessary to get arround the socket connection limit and drive your server with less resources than the usual blocking socket approach could offer.

Mixing different network protocols is also something to make some performance. TCP is a request response protocol so every package send via network requires the sender to send a response on the socket layer otherwise the package isn't dequeued from the sender. Network traffic can slow down this process and at least when your packages leave the private and enter the world wide public network, there is enougth traffic that can block your TCP packages from arriving. I use TCP and a proper endpoint encryption for example to send authentication data or important account data.

UDP is the fire-and-forgett protocol you put a package to the network queue and don't expect an answer. This is usefull for small fast data like player is moving, player is fighting, player is talking kind of messages. You however need to detect connection-loss by yourself in this scenario

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!