Jump to content

Ayslow

Inactive Member
  • Posts

    14
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Ayslow

  1. Like i already said, i love what u doing for the community and thank's u for all ur work we can only respect that and u doing ForeverMetin2 for free i don't think many people are okay to work for free for so much time 

    • Love 1
  2. 6 hours ago, Exynox said:

    Ladies and gentlemen, on behalf of Metin2Dev Airlines we would ask you to kindly follow this safety announcement. Please take your assigned seat, mentioned in your boarding pass. When sat down, please fasten your seat belt at all times, as turbulence can occur during the flight. We ask you to make sure that your luggage is properly stored in the overhead bins. 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. Should you be utterly disgusted at what I'm saying, a vomit bag is located in the seat in front of you. It's going to be a long read.

     

    I think it's been almost 10 years since I first opened Metin2. 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.

     

    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. Or by distributing the computing load. The latter is what YMIR did. Initially, Metin2 was intended to run each core on their own server. 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). That's why nowadays we have to fiddle around with peer-to-peer TCP/IP configuration on all the Metin2 server cores. Metin2's architecture aged like milk.

     

    To give credit where credit is due, parts of it were updated with time. But I'll bet you a coffee that libthecore hasn't changed much since the initial version. It's quite awesome that we actually can run this code quasi-reliably. Kudos to C++, in a world where JavaScript breaks backwards compatibility whenever wind changes direction.

     

    Other than the dated architecture, the other problem I have with the Metin2 server is the code itself. 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. Which is perfectly fine, we all learn. The terrible part is that we can see their progress in acquiring this skill. They never fixed their silly mistakes, or did so very, very late (remember the /dice bug?).

     

    The final nail in Metin2's coffin is BSD. 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. Sure, some companies saw its potential and became early adopters. But the standard was still to use the tried and battle-tested, UNIX-certified BSD, which hails from 1977. 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. There's nothing wrong with FreeBSD nowadays either. It's just that it's way, way easier to code for Linux. It has become the de facto standard.

     

    So we've got an old, half-baked and out-of-spec server on our hands. Great!

     

    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. It's plainly bad and it must go away. 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. Why can't we have some sort of plugin system so that we end this agony?

     

    The topic of porting Metin2's server to Linux has come up numerous times here. 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. I don't want to get into this discussion, but it's their right. A light has shined before my eyes, though. Recently, a friend has asked me to help him out with hosting a Lineage 2 server. I don't know pretty much anything about this game, but I've found out one thing: there are two big classes of server software: the OFF, meaning the original server files NCSOFT developed, and L2J, a Java-written emulator for the same server files. And the thing is, people have been sued for running the original server files, but not for using the Java edition. Not to mention that the Java edition is publicly available in its various forks on GitHub and Bitbucket.

     

    I guess you see where this is going. If we're all stuck at home, why don't we come together, join our efforts and rewrite the server in a more future-oriented, sensible way?

     

    This would mean less risk of being thrown in jail by Gameforge. Not to mention that we don't need to do any reverse engineering as the source code is readily available, and this is a huge, a monumental advantage. The official Metin2 is going to be dead in a matter of years, but Gameforge not so much. This means that any future support and development for the game lies within the open-source community.

     

    If we're going to do this, we should aim for the future. We should take into account the architecture of current systems. We should think of built-in redundancy in case one of the server crashes. And as much as I like C++ and its power, with great power comes great responsibility. It's simply too easy to make mistakes in C++. Not to mention the hell you must go through to simply include a library (In a way, it's a good thing since it forces you to think, not blindly include another library for adding two numbers like you would do in JS). C++ is one of those toxic relationships and I suggest moving to a tool more fit for the job. A language like Rust would do the job, for instance. It compiles down to machine code, it includes a network stack by default, it can read JSON and XML files, and it has many more features I didn't hear about yet. I never wrote anything in Rust, but it's just syntax. Real programming is about tackling problems, not about syntax.

     

    I'm open to any ideas or suggestions. Maybe I'm talking sh*t and Metin2 deserves to die.

     

    But I'm looking at you, Vanilla, Shogun, MartySama, Sanchez and all others who genuinely contributed to the community with original work but I can't name because I'm a stupid prick with 32kB of memory. What do you think? It's a huge task, yet manageable if we all give our best. Don't take anything I wrote here for granted, if you come with a good reason on why we should rewrite the game in MIPS Assembly and run it on PS2s, I'm open for it.

     

    Thank you for choosing Metin2Dev Airlines.

    The plan is to make a Metin2Dev files ?

    I totally agree with you but that's a really good amount of work and i don't know if someone who have the skills for that want to spend his time on it for free (i don't have the skill for that) but it's not impossible and it would be really nice to give a second life to our old school loved Korean Game 

  3. On 3/4/2020 at 9:48 PM, displayjokes said:

    I did not found that link so i remember you posted for me :D

     

    You can do the disk partition, i used to do it, now i have 2 ssd so i don't need to create a partition, but it is a safe method i can assure.

    0304 13:02:01561 :: WorldEditorConfig: WorldEditor.txt not found
    0304 13:02:02047 :: CANNOT_FIND_PACK_FILE [locale/ymir/mob_proto]
    0304 13:02:02369 :: CResourceManager::GetResourcePointer: File not exist D:\Ymir Work\special\compas.dds
    0304 13:02:02370 :: CANNOT_FIND_PACK_FILE [d:/ymir work/special/compas.dds]
    0304 13:03:01751 :: CANNOT_FIND_PACK_FILE [textureset/]
    0304 13:03:01751 :: TextureSet::Load : cannot load textureset\
    0304 13:03:05406 :: CMapOutdoor::LoadSetting(c_szFileName=ester\Setting.txt) - Failed to load environment data

    0304 13:03:05406 :: CANNOT_FIND_PACK_FILE [ester/regen.txt]
    0304 13:03:05943 :: CANNOT_FIND_PACK_FILE [ester/000000/water.wtr]
    0304 13:03:05949 :: CTerrainImpl::LoadWaterMap - ester\000000\water.wtr OPEN ERROR
    0304 13:03:05950 :: CMapOutdoor::LoadWaterMap LoadWaterMapFile(ester\000000\water.wtr) Failed
    0304 13:03:05961 :: CResourceManager::GetResourcePointer: File not exist ester\000000\shadowmap.dds
    0304 13:03:05962 :: CANNOT_FIND_PACK_FILE [ester/000000/shadowmap.dds]
    0304 13:03:05964 ::  CTerrain::LoadShadowTexture - ShadowTexture is Empty
    0304 13:03:05968 :: CANNOT_FIND_PACK_FILE [ester/000000/shadowmap.raw]
    0304 13:03:05969 ::  CTerrain::LoadShadowMap - ester\000000\shadowmap.raw OPEN ERROR
    0304 13:03:05972 :: CANNOT_FIND_PACK_FILE [ester/000000/areadata.txt]
    0304 13:03:05973 ::  CArea::Load File Load ester\000000\AreaData.txt ERROR
    0304 13:03:05974 :: CANNOT_FIND_PACK_FILE [ester/000000/areaambiencedata.txt]
    0304 13:03:05976 ::  CArea::Load File Load ester\000000\AreaAmbienceData.txt ERROR
    0304 13:03:05980 :: CANNOT_FIND_PACK_FILE [ester/001000/water.wtr]
    0304 13:03:05985 :: CTerrainImpl::LoadWaterMap - ester\001000\water.wtr OPEN ERROR
    0304 13:03:05987 :: CMapOutdoor::LoadWaterMap LoadWaterMapFile(ester\001000\water.wtr) Failed
    0304 13:03:06004 :: CResourceManager::GetResourcePointer: File not exist ester\001000\shadowmap.dds
    0304 13:03:06004 :: CANNOT_FIND_PACK_FILE [ester/001000/shadowmap.dds]
    0304 13:03:06008 ::  CTerrain::LoadShadowTexture - ShadowTexture is Empty
    0304 13:03:06012 :: CANNOT_FIND_PACK_FILE [ester/001000/shadowmap.raw]
    0304 13:03:06015 ::  CTerrain::LoadShadowMap - ester\001000\shadowmap.raw OPEN ERROR
    0304 13:03:06022 :: CANNOT_FIND_PACK_FILE [ester/001000/areadata.txt]
    0304 13:03:06023 ::  CArea::Load File Load ester\001000\AreaData.txt ERROR
    0304 13:03:06023 :: CANNOT_FIND_PACK_FILE [ester/001000/areaambiencedata.txt]
    0304 13:03:06026 ::  CArea::Load File Load ester\001000\AreaAmbienceData.txt ERROR
    0304 13:03:06035 :: CANNOT_FIND_PACK_FILE [ester/000001/water.wtr]
    0304 13:03:06043 :: CTerrainImpl::LoadWaterMap - ester\000001\water.wtr OPEN ERROR
    0304 13:03:06044 :: CMapOutdoor::LoadWaterMap LoadWaterMapFile(ester\000001\water.wtr) Failed
    0304 13:03:06071 :: CResourceManager::GetResourcePointer: File not exist ester\000001\shadowmap.dds
    0304 13:03:06072 :: CANNOT_FIND_PACK_FILE [ester/000001/shadowmap.dds]
    0304 13:03:06077 ::  CTerrain::LoadShadowTexture - ShadowTexture is Empty
    0304 13:03:06082 :: CANNOT_FIND_PACK_FILE [ester/000001/shadowmap.raw]
    0304 13:03:06083 ::  CTerrain::LoadShadowMap - ester\000001\shadowmap.raw OPEN ERROR
    0304 13:03:06091 :: CANNOT_FIND_PACK_FILE [ester/000001/areadata.txt]
    0304 13:03:06091 ::  CArea::Load File Load ester\000001\AreaData.txt ERROR
    0304 13:03:06093 :: CANNOT_FIND_PACK_FILE [ester/000001/areaambiencedata.txt]
    0304 13:03:06097 ::  CArea::Load File Load ester\000001\AreaAmbienceData.txt ERROR
    0304 13:03:06099 :: CANNOT_FIND_PACK_FILE [ester/001001/water.wtr]
    0304 13:03:06105 :: CTerrainImpl::LoadWaterMap - ester\001001\water.wtr OPEN ERROR
    0304 13:03:06106 :: CMapOutdoor::LoadWaterMap LoadWaterMapFile(ester\001001\water.wtr) Failed
    0304 13:03:06117 :: CResourceManager::GetResourcePointer: File not exist ester\001001\shadowmap.dds
    0304 13:03:06118 :: CANNOT_FIND_PACK_FILE [ester/001001/shadowmap.dds]
    0304 13:03:06119 ::  CTerrain::LoadShadowTexture - ShadowTexture is Empty
    0304 13:03:06120 :: CANNOT_FIND_PACK_FILE [ester/001001/shadowmap.raw]
    0304 13:03:06120 ::  CTerrain::LoadShadowMap - ester\001001\shadowmap.raw OPEN ERROR
    0304 13:03:06125 :: CANNOT_FIND_PACK_FILE [ester/001001/areadata.txt]
    0304 13:03:06125 ::  CArea::Load File Load ester\001001\AreaData.txt ERROR
    0304 13:03:06131 :: CANNOT_FIND_PACK_FILE [ester/001001/areaambiencedata.txt]
    0304 13:03:06132 ::  CArea::Load File Load ester\001001\AreaAmbienceData.txt ERROR
    0304 13:03:06141 :: CMapOutdoor::RenderBeforeLensFlare mc_pEnvironmentData is NULL
    0304 13:03:06166 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/special/snow.dds
    0304 13:03:06166 :: CANNOT_FIND_PACK_FILE [d:/ymir work/special/snow.dds]
    0304 13:04:19682 :: CResourceManager::GetResourcePointer: File not exist C:/Users/jalis/Desktop/Ace-Pack/ymir work/zone/shyeonline/halloween/building/building_bridge.GR2
    0304 13:04:19683 :: CANNOT_FIND_PACK_FILE [c:/users/jalis/desktop/ace-pack/ymir work/zone/shyeonline/halloween/building/building_bridge.gr2]
    0304 13:04:21131 :: CArea::SetBuilding: There is no data: C:/Users/jalis/Desktop/Ace-Pack/ymir work/zone/shyeonline/halloween/building/building_bridge.GR2
     

    There is my sysser,  it's weird...

  4. 2 hours ago, Sandworks said:

    I almost died as well ? lulw

    You can mount your folder as a drive in Win. I took the first I found but at least it will show you the idea of how it works. Take a look 

    This is the hidden content, please

     

    ahahahah thank's to u, gold community there.

    I think i'm going to use a USB for the moment and see after ahah ur are the best !!

  5. 57 minutes ago, Raylee said:

    ?

    You made my day ?

     

    It just sounds maybe a bit Cryptic.. but I am sure you cannot destroy something.

    Because you just "reserve" storage from your C:\ Drive so you can create a new "virtual" Drive which you will name D:\. 

     

    Otherwise:

    If you just have a C:\ Drive you can simple use a USB-Stick or an External Drive where you place your "ymir work" folder.

    I think if you just have one Hard disk which is called C:\ - every next Storage will be automaticly named as D:\ Hard disk.

    Otherwise you can manually change the Drive letter for your new devices.

     

     

    Best regards
    Raylee

    I was joking but i really considered it lmao because i have some precious stuff for school on my actual PC and i don't know if it is a good thing to developp something on it because of VM and all the others stuffs.

    Thank's again bro !

  6. 1 hour ago, displayjokes said:

     

    Tutorial with everything on world editor by @Raylee https://metin2.dev/board/index.php?/topic/19622-editing-existing-maps/

    To add effects, waterfalls etc you need to explore the program like everyone, you might have different objects/effects depending on the client you are using. Anyways, after following the tutorial the objects are on the second "V" on the top left menu, you'll need to search and find what you are looking for. As i said, it can be different from person to person, so noone can give a 100% correct answer on that.

     

    Hope it helps.

    Thank's to u 

     

    1 minute ago, Raylee said:

     

    I link to a more recent tutorial.
    Becaue it seems it is not longer needed to: Create in your "tree"-folder a new folder named "shye" and in there a new folder named "officials".

     

    About placing waterfalls and some other effects:

    Go to the 2nd Menu Button:

    071d374cd4dd879159322d4f93dc3b0f.png

     

    Open the default empire folders(a,b,c).

    And in these folders you will find subfolders called like: eff

    There you will find your waterfall effects.

    3478c1c96b2be6acbeae7e3b6924dc32.png

     

     

    And as a little tip.

    If your objects are invisible but you did everything 100% right - then it can be that your granny version in your worldeditor is to low for your .gr2-models.

     

     

    Best regards
    Raylee

     

     

    Thank's to u Raylee, i thought about the Granny version, in fact i didn't unpacked client, i only used the IAce Pack (thank's to him) to make some test.

    And a last question, i have a C:/ not a D:/, is that a problem ? and how i can change the path of the texture ? thank's a lot community, i appreciate !!

×
×
  • 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.