![]() ![]() Yet it has to be done underground, because God forbid making your code public, because daddy Gameforge is going to knock on your door like it's 1977. The topic of porting Metin2's server to Linux has come up numerous times here. ![]() Why can't we have some sort of plugin system so that we end this agony? Just look at this forum, it's full of hotfixes, and whenever an actual feature release comes up, you have to find and replace tons of stuff and you don't even know if it will break any other system you have installed. To me, working on the Metin2 server has become like one of those relationships in which you don't really like your partner, you fight all the time, yet you still stay together because you feel attached to them. So we've got an old, half-baked and out-of-spec server on our hands. It's just that it's way, way easier to code for Linux. ![]() There's nothing wrong with FreeBSD nowadays either. In my country's 1977, we couldn't even talk about how dumb our leaders were without risking being beaten by the police, yet others were making huge technological advances. But the standard was still to use the tried and battle-tested, UNIX-certified BSD, which hails from 1977. Sure, some companies saw its potential and became early adopters. At the time when they decided upon the architecture, Linux was nothing more than a toy, a fun gimmick like Docker and Kubernetes are today. Sure, you could have used Linux in production environments, but you would have been regarded a maniac if you did. The final nail in Metin2's coffin is BSD. They never fixed their silly mistakes, or did so very, very late (remember the /dice bug?). The terrible part is that we can see their progress in acquiring this skill. I don't say it's easy to code such a dinosaur, but if you pay attention to the coding style and mistakes, you can actually see how YMIR devs improved over time. Other than the dated architecture, the other problem I have with the Metin2 server is the code itself. Kudos to C++, in a world where JavaScript breaks backwards compatibility whenever wind changes direction. ![]() It's quite awesome that we actually can run this code quasi-reliably. But I'll bet you a coffee that libthecore hasn't changed much since the initial version. To give credit where credit is due, parts of it were updated with time. That's why nowadays we have to fiddle around with peer-to-peer TCP/IP configuration on all the Metin2 server cores. One for the database cache, one for authentication, and a couple more for the maps (depending how far down you could reach in your pockets - we didn't have $5 DigitalOcean or AWS containers back then, servers were expensive). Initially, Metin2 was intended to run each core on their own server. My point is that in 2004 we didn't even have multi-core CPUs yet! The only way you could do multi-threading was by physically chucking as many CPUs onto a motherboard as you physically could. Ten years! I was still playing Club Penguin at the time, I mean that's how I've heard about the game in the first place - from an ad on Club Penguin's page! And if I sit down and think of it, the game was 6 years old 10 years ago! I'm really curious, what other 16-year-old pieces of software do you guys use? If you do, how do you manage to use that piece of software nowadays? I know I've struggled a fair share to get Borland C++ 4.52 to run reliably in DOSBox. I think it's been almost 10 years since I first opened Metin2. Should you be utterly disgusted at what I'm saying, a vomit bag is located in the seat in front of you. In the unlikely case you won't like this topic, please take a moment and locate the nearest back or exit button of your browser. We ask you to make sure that your luggage is properly stored in the overhead bins. When sat down, please fasten your seat belt at all times, as turbulence can occur during the flight. Please take your assigned seat, mentioned in your boarding pass. Ladies and gentlemen, on behalf of Metin2Dev Airlines we would ask you to kindly follow this safety announcement. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |