Muxy

From Luukland's Servers OpenTTD Wiki

Muxy

The Guy from the Goulp - Goulp Guru - Initial Luukland OpenTTD Server Patch Provider - Rubiks Solver & Dog Killer.

Goulp

What is Goulp ? This place appears in a 1970's French TV show called Les Shadoks. You can get information about those stupid birds on Archimede Labs or on The English Wiki.

Some of their famous principles are :

The first one is also reverse known as "Keep It Simple, Stupid" - KISS (not the french one, but the Goulp One !)

The Goulp is a place where Shadoks are sent when they are doing stupid things. Its a kind of Jail. In fact it's Hell, well its a french joke. It's L'enfer (Hell) cause they are enfermé (locked in).

OpenTTD

And what has to do OpenTTD with Goulp ? As you already know, Goulp is a friendly place where you can find friendly services. So I decided to host some OpenTTD Servers and give them a friendly hostname openttd.goulp.net.

Server Side Patches

First Server Side Patch

I wrote my first patch on 0.5.3 server. It was a console command to give money to a particular player. Money was added to the player, but few seconds later a desync occurs. From this day i started to understand how client & server worked together.

Server Hosting at Goulp

After this, i started to host OpenTTD Server. Of course I learnt about becoming an OpenTTD Server admin and moderator. When you host public OpenTTD Server, you need to have a look at the game from the console window. This to avoid nasty people to use bad language or destroy the map and make all good players go elsewhere.

Second Patch

My second Server Side patch was to improve console output by adding a timestamp with real time and ingame date. This patch has been reported to flyspray - Task 2339 and has been integrated to trunk in r17488. Of course, the way it has been trunked is not the way I wrote it. It means that my knowledges about OpenTTD Source code is not as good at it should be to become a real OpenTTD Developper.

Other Patches

I have a problem at home with Power Cuts. Sometimes because I have too much hardware powered on (Computers, TV, Washing machine, Dish Washer, Micro wave oven, ... ) at the same time. Then all servers go down. When restarting the OpenTTD Servers, a new game starts. To avoid this and enable server to restart with the last automatic backup, I added 2 functionnalities to Goulp OpenTTD Servers :

Automatic save has been planified every 6 month. So when game is running (paused when no clients), then if server goes down (for any good reason), Clients will loose up to 6 months work.

Each time a Player set or unset company password, a backup of all passwords is made. When loading a savegame or starting a new game, if the backup files exists, its loaded into memory. All protected company before crash will be secured upon server restart. This is very interesting when some companies have a lot of money. This will avoid whole map terraforming by nasty people.

About Password : When a client sets a password, it is encrypted before being sent to the server. This encryption is made with the game seed. It means that for the same password on 2 different games, the encryption will not be the same. The Save Password patch will save the encrypted password. OpenTTD Server Admin has NO ACCESS to the real password.

Around password, I wrote this Patch for people who dont set company password when playing. It can be very dangerous when company is well managed and has lot of money. Some nasty people connects to that company and do their nasty job. So if you dont set a Company Password, you get a Private Chat message when trying to build something.

Client Side Patches

Watch Company GUI

The watch company GUI is a patch with whom you can open a window where you can follow a particular company building actions.

On the left, you have the buttons to select a company After, you have the activity bulb :

Luukland

Luukland is a great adventure who came after Kurt has shut down its goal servers and a first try to build a new Goal Server System (OHG - OpenTTD Hard Goal) with some other people. At the very begining of this Adventure, Luukland was running OpenTTD Servers on his laptop and made great animation around them. From my side, i just wrote some usefull server side patches and was searching some people to discuss about it and use them :

I met him on the #openttd channel. He was desapointed about a client introducing into non protected companies and with the money terraforming the whole map:

<Luukland> I just want to keep some fellow out
<@Rubidium> as if a nickname isn't even easier to change
<Luukland> who comes every night
<Luukland> terraforming the map
<Luukland> Rubidium, sometimes the obvious is the best for those idiot who think it is fun to destroy a multiplayer game...
...
<Muxy> Hello Luukland
<Luukland> Hi :p
<Muxy> Goulp Kiss !
<Luukland> Nooos No Goulp Admin :p
<Luukland> Pls :P
...
<Muxy> luukland: do all your player set a comany password
<Luukland> no of course not :P
<Luukland> Some are noob :p
<Luukland> Others dont speak any English :p
<Muxy> i have a patch who makes password mandatory
<Luukland> lolz :P
<Luukland> You have a patch for everything :P

And later on

<Luukland> Muxy, are u willing to share it with me in private?
<Muxy> also have some to lock particular player or lock terraforming
<Luukland> Muxy, if you have the links, I would be happy to accept
<Muxy> hum, a link to a windows binary ?
<Luukland> yes please :P
<Muxy> with the watch command included ?
<Luukland> preferably :p
<Luukland> I like that patch :p

First Luukland Slap on Muxy after talking on SOS with other members

* Luukland slaps Muxy around with an SOS, or an SOE, whatever you prefer :)
* Muxy Kiss everybody who wants to slap me

I remember him, after a stable release has been published, running in the #openttd channel, searching for Goulp/Muxy and the latest release of some OpenTTD Server Side Patches :

-!- Luukland [~Luukland@<blablabla>.versatel.nl] has joined #openttd
<Luukland> Goulp Admin here?
<Luukland> Hmmmm, no muxy to be found..
-!- Luukland [~Luukland@<blablabla>.versatel.nl] has quit []

some days later...

-!- Luukland [~Luukland@<blablabla>.adsl.wanadoo.nl] has joined #openttd
<Luukland> Muxy, Goulpadmin are u here?
<Luukland> -- no response --
<Luukland> :P
-!- Luukland [~Luukland@<blablabla>.adsl.wanadoo.nl] has quit []

One day he told me that he found someone (Fugas) for hosting server 24/7 and another one (Xi) for developping. Goulp Pro Dev Team was born. Registering a #Goulp (18 Sept 2009) Channel on OFTC to discuss about this project. Project was to create some Goal System with Experience points & Level. Client Goal was to get points when playing (and winning) OpenTTD Games. I worked hard with Xi on the database model who will be used to store all our stuff, while Fugas starts to host a website, and Xi wrote the Server side Patch to communicate with the database and control goals on the game.

OpenTTD Server Side Patch

But why the hell they run a patched side server ?

Well, we could develop on a source code based on the trunk. Why not ?

That's why we are working with last stable release source code.

Sure, its very bad to connect an OpenTTD Server to a SQL Database.

Well, we need something to store our stuff in order to give it back to members through a web interface. Why not use a datase service to store all these ? It's easy to have the web site getting information from this kind of things...

Then, back to Server Side Patch, and Xi wrote connection to the SQL Database.

No ! its not bad to connect OpenTTD Server to a SQL Database. But it has some risks

Well, well, all these questions have an answer : The OpenTTD Server will stop until someone will fix the problem and restart it. But the World has not arrived to an End.

Will one day, the Luukland Server Source Code published ?

Answer is No. It could be dangerous for some people to read this stuff. Does it mean that OpenTTD will never have a Goal System inside ? No it doesn't. OpenTTD is not ready to have this functionnality, but some people are thinking about it. One way to have an Open Goal System is to develop it like the NoAI, using squirel Scripts. It means that some interfaces with the games must be written...