Posted on December 20, 2011 in Soku Lobby by dotMaiku
During the past couple of days, there have been various updates to Soku Lobby. There wasn’t really anything added in those. What was changed is the server that the program communicates with. It now gets its updates from a new location, and communicates with a different IP address for the lobby, chat, and etc. I did some much needed cleanup on my dedicated host when doing this.
Hopefully, in the next week or so, there will be a more significant update to the program.Fireseal has been working diligently for a while now on new netcode. So far it works great and is more reliable than the current code. And another great thing is that it has spectating. Some other minor bugs have been fixed as well, like in-game names. He is currently working out some bugs and defects. When he is finished, I will put the new code into the program as soon as possible.
Another big change coming up is a server redesign. The current server is written in Perl and runs on a single thread. This isn’t too much of a problem and provides a lot of flexibility. I’m able to execute custom code on the fly and add/change code while it’s running. However, there’s several problems with it.
First, and the most frustrating one is UDP. The server was written to use UDP, which I have taken to calling Unreliable Data Protocol. When multiple UDP packets come in at once, chances are that some will get dropped. And even just a single packet by itself could get dropped. This problem is far more frequent on wireless. Another “unique feature” of this is that you can unplug your internet, wait a minute, plug it back in, and still be connected. You will miss any messages sent in that time-frame, although. Here’s another interesting server quirk: it only “wakes up” to do something when it receives a packet. This is going to be fixed. In the next server, it will use TCP – which is far more reliable. It will be multi-threaded and have true objects.
The next problem is structure. There is very little structure in the current server. Objects are hacked (it is not true OOP for you programming-savvy). Perl’s “objects” are essentially a hack anyways. The next server will be written in C#. There will be a very strong structure to it. I’ll be adding some new features to it as well – some have been requested by users.
I have decided to expand the new server. Part of it will still be used for Soku Lobby, and Soku Lobby will be utilizing only part of the server and its functionality. I’m starting a new project, which takes full advantage of the server. You can use either program to connect to the server and play, but Soku Lobby will be specific to playing Hisoutensoku. There will probably be a migration process to transfer accounts. I will post more details in an upcoming post.