Jump to content
Maintenance : Final step ×

Exynox

Bronze
  • Posts

    90
  • Joined

  • Last visited

  • Days Won

    3
  • Feedback

    100%

Exynox last won the day on December 10 2023

Exynox had the most liked content!

6 Followers

About Exynox

Informations

  • Gender
    Male
  • Country
    Romania

Recent Profile Visitors

3328 profile views

Exynox's Achievements

Proficient

Proficient (10/16)

  • Very Important Person Rare
  • Great Content Rare
  • Dedicated
  • Reacting Well
  • Very Popular Rare

Recent Badges

2.1k

Reputation

  1. If I'm not mistaken, the reason ГОСТ 28147-89 / Magma was used in the source is probably due to the fact that in the early 2000s, when the first bricks of the M2 source code were laid down, the USA was just releasing its strong encryption algorithms from under embargo: [Hidden Content] At the time, using GOST (which is basically DES after a 1 week vacation in Sochi) would have made a lot of sense due to it being a freely available algorithm. Still, this is a testament to how fast things are changes and how maintaining a "modern codebase" is a sisyphean task - there will always be some new language feature or design pattern by each and every passing year, which means having to always update the code and never be finished. Just look at the JavaScript landscape - just one more new framework bro, this will fix everything. That being said, updating the codebase to some common sense 21st century technology such as smart pointers and UTF-8 is very much needed for a project which is basically a hodge-podge of C & C++ and a thousand coding styles.
  2. Hey, I think you're overdue for an update. The changes that were only on the nightly branches were merged into master and released as version 0.3.x. Also, Docker images are now officially distributed through Gitea for quick deployment: simply following the Quick start guide here on a Linux machine with Docker should get you up and running in a few minutes: [Hidden Content] Here's a quick list of everything that was done since the last update: Server: A lot of unused Korean features were removed, only Gameforge-like features were left (credits: @Tr0n). Source files were converted to UTF-8 (credits: sdgmt2) Source code string literals were translated into English (i.e. locale_string.txt files now provide translations from English into other languages, instead of Korean to other languages) (Credits: @Tr0n) Argon2ID is used for password hashing (Credits: WildEgo) Used MariaDB connector library instead of MySQL (which in turn removed the dependency for boost and compile times are much better) Fixed mishandling of public/private IP addresses in P2P code, which fixed inter-core communication in docker deployment. Logout error messages are now displayed to the player. Game data is stored in the "gamefiles" directory. Various (Docker) build system fixes and improvements. Game configuration can now be done through .env files when using Docker. Fixed in-game Item Mall authentication. The db core no longer crashes on startup when a database connection is not possible. CLion run configurations are now shared in the repository. Client: Upgraded client to DirectX 9 Removed unused libraries and files Removed mobile/SMS system Added support for Argon2ID hash system Changed default client language to English Fixed buffer overflow in DXTCImage Deployment system: Added automatic database initialization Added support for arm64 Added a quick start guide in the readme. Website (work-in-progress): Added automatic database migrations in the docker image Bumped PHP version Added experimental autopatcher support with webseed capability (for official YMIR autopatcher - updated source code with modern libraries coming soon) ---- That being said, I've played around with running the docker images on an old Raspberry Pi 2, (32-bit armhf architecture), which turned out to be a big failure since the hardware FPU expects floats to be memory-aligned. Since the original code uses #pragma pack(1) directives, this is not achieved and a "Bus Error" signal is thrown when a non-memory-aligned access to a float (usually in a struct) is attempted. When removing the #pragma pack directives in order to let the compiler to do proper (armhf-compatible) struct packing, the servers did start successfully, but naturally the network protocol structure is borked (from the POV of a Windows/x86-64 machine) and connecting to the server is not possible. Which leads me into this - one of the next big things to happen to the project is converting the network protocol to protobuf in order to eliminate relying on simply casting network data into structs. Stopping to rely on the server machine's ability to operate on non memory-aligned structs is the right thing to do, and protobuf will probably fixed some other issues, such as unsafe peeking into network buffers/structs, random mismatched header issues and a lot of peace of mind by essentially banning pointer arithmetic in the core networking code. Another thing coming up is finishing the website, which is currently in Romanian and only the registration functionality works, making a guide on using a local SMTP server / a Gmail account for the website. Then I can probably can start writing some video tutorials on how to start up a basic server from start to finish, how to develop on the server, and finally fire up a test/demo server for the curious (and to provide an easy client download). See you soon (as my free time allows), Exynox
  3. Yes, I've had some minor issues with the hosting if that's what you're talking about. But I guess you guys are due for a small status update: I'm still working on features when I have time on weekends. Currently I removed any boost dependencies, which also had the side effect of migrating the database library from MySQL to MariaDB. Further plans are to do some profiling, as I've noticed some slowdowns when there is a lot of network traffic going about, do some bugfixes (one especially weird bug is that if you log in to an already connected account, it won't disconnect the existing player). Once this is done, I'll merge the nightly branches into the master ones and start writing a guide on how to easily get a server up an running, how to develop the project etc.
  4. "Everything that has a beginning, has an end, Neo" It happened to games before Metin2, it will happen to games after Metin2. Of course, there are still exceptions, such as Counter-Strike 1.6 or Age of Empires II. Probably, in certain countries, Metin2 might join the ranks of these games. I'm not sure what will happen from a financial standpoint, but I'd guess it's going to become harder and harder to run commercial servers. We should really focus on archiving all the progress the community has contributed to the game, so that it's going to be easy for nostalgic players to have fun in the future. This was one of the reasons I started the Old Metin2 Project, with its goal being to be extremely easy for anyone to run a server & clients on a modern system, and I encourage people to try to plan for the future in their community projects. Metin2 Download has been huge in this regard as well, and I hope it can be run for as much as possible - and maybe provide some sort of mirroring system (maybe via BitTorrent?) so that the community could store copies of the public files.
  5. Because being friendly, not judging and building trust goes a long way in life. Publicly releasing copyrighted material can be pretty risky, depending on where you live.
  6. I'm equally baffled, but... VS 5.x/97 is pretty much abandonware and can be easily found: https://winworldpc.com/product/microsoft-visual-stu/97-5x Also you could give this ISO of J++ 1.1 a try: https://archive.org/details/visualjpp96
  7. Yeah, I've already used vcpkg in manifest mode in the client, but with the server, I encountered some issue that prevented me from doing that. Maybe I'll revisit it and try again.
  8. That's really weird, the nightly build works fine for me. Check out my earlier post (it was only now approved). I agree, this is on my immediate to-do list, not to mention that MySQL deprecated OPT_RECONNECT which the current codebase seems to depend on. All being said, I guess all these issues will be no more once nightly gets merged into master and I start distributing official builds and guides.
  9. Hey, I'm currently working (in my very little free time) to releasing the nightly branch(es) of the project, together with a complete usage guide. The master branch is currently broken due to an old version of CMake, but I honestly don't know why you're getting that flame_dungeon.quest issue. Have you edited locale_list? that \r control character shouldn't be there on a UNIX system (\r\n is the line ending for a Windows system). At any rate, here's a discord invite: [Hidden Content] Thanks for the suggestion, but the thing is that I plan on completely removing boost all-together, it's only currently used for some funky string manipulation which I think could be handled by libicu. There's no need for such a huge library when most of its features are now implemented in the C++ standards and/or supported by lighter libraries.
  10. Nice catch, thanks! I'll keep it in mind!
  11. I also encountered the MYSQL_OPT_RECONNECT deprecation issue, pretty much the only options would be to either implement the reconnection code yourself, or migrate to using the MariaDB connector instead of the MySQL one, as it doesn't seem to be deprecated over there.
  12. Thank you for your contribution! It has now occurred to me just how much information was available on the topic, but hidden away from the most of us simply because we haven't been blessed with speaking Korean. It would be nice if we could somehow archive everything properly within M2Dev's wiki. Having everything translated would be the cherry on top. Nonetheless, I feel that the assets of these early Metin2 clients might still be around, buried somewhere on some Korean forum. The ruliweb page had two download links that maybe could lead us somewhere: METIN II Beta Client 최신버젼 다운로드(서버1): ftp://211.39.150.71/pub/MetinII0_0_1.exe METIN II Beta Client 최신버젼 다운로드(서버2): ftp://211.105.222.13/pub/MetinII0_0_1.exe The "MetinII0_0_1.exe" filename might be a starting point? Another thing I'm planning to do is to crawl the Korean IPv4 space for public FTP servers and check whether there are any resources hosted there. It's quite a long shot, but might be worth it. Lastly, I have a feeling that the original kraizy/2014 YMIR leak could contain these assets. To my knowledge sadly, SVN doesn't really locally store anything but the latest revision, but who knows.
  13. Well, the answer was always there, in the source code it's referred as PCBANG, basically a Internet Cafe system where you would pay to play games (like in the good old days of our childhood). https://en.wikipedia.org/wiki/PC_bang The odd thing is that payment information & management was integrated into the game, so that you'd get kicked if you haven't paid xD. What I'd like to know is whether the PC bang functionality for Metin2 was only used during the beta, or also after the game was released. Please do, this is really interesting! I've had my own attempt at finding resources back in 2020. I only managed to rip whatever archive.org had saved - here's a link for the curious: https://metin2.download/file/9b2qK3SqSK4tbE1CUNSXpT5TM2Rxd95G/
  14. What's interesting is that the skin for the patcher that can be found in kraizy.tgz, in the TorrentPatch application, is different from the skin in a few posts above:
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.