Saturday, June 27, 2009

Server Day 1 - Brainstorming

During this great and incredible summer vacation I'm going to attempt to program a server. This server will be part of my MMORPG, hence the title. Today I just brainstormed what and how the server will act like.

First of all I had to decide on the protocol. While UDP is very quick, it's not very reliable. Packets may get lost a long the way and there is no way to know if they arrive in the same order that they where sent. TCP is of course the opposite. It is very reliable, however it is of course slower. I choose to go with TCP. The reason is that I need a reliable connection between my Server and Client to debug the Server easily. TCP is also easier to implement, which is an added bonus. Maybe when the server is up and running I will switch some things the server sends in an endless stream (like the players locations) to a UDP protocol to ease the load.

The serve will be programmed in C. The reason being is that C is very quick and reliable once all bugs have been found. I do not now C fully yet, however for the last month or so I have been playing around with C and some parts are extremely similar to Java, my current all time favorite. I'll have to learn a little bit of C while programming this server, not to speak of the idea of sockets, something which I have never looked at before. Overall this server will be a tremendous learning experience, I will have gained a lot from it even if it ends up in heaps and ashes (something which I am positive won't happen) =D

The server will run on Linux. Linux is just more reliable. Period. My chosen Linux OS is Ubuntu. The reason behind this is that I have been using Ubuntu for the past year now and only switched to windows for the occasionally PowerPoint presentation I had to create for "educational means". I have my old computer lying around and I thought I might install Ubuntu on it and see where it goes from there =D

Now how do I test the server? Well my idea is that I will connect my main computer to my old computer (via LAN of course). After that I 'm going to install SSH on my old computer so I can compile and run the C code through SSH. That's what I'm going to try to do next.

This post has become very long and I hate to see it end, but if I would write about everything I have brainstormed the next few posts would look like nothing you've ever seen, simply because you wouldn't be able to see them =D

No comments: