Înapoi la blogToate tutorialele Metin2
Tutoriale Metin2 · Lecția 92 din 99

Compilarea clientului Metin2 cu Visual Studio: de la soluția .sln la executabil

2 noiembrie 2026 5 min de citit

Clientul jocului e un program separat de server. Rulează pe Windows, la jucători, și se compilează tot pe Windows, cu **Visual Studio** de la Microsoft. Nu orice pachet vine cu sursa clientului; multe vin doar cu executabilul gata făcut. Dacă al tău are sursa, lecția asta te ajută să faci prima compilare, fără modificări, ca să știi că mediul tău e bun.

Pe scurt: instalezi Visual Studio cu componentele pentru C++ (inclusiv MFC), deschizi fișierul .sln al clientului, alegi configurația potrivită (de exemplu Release și Win32), apeși Build Solution și testezi executabilul rezultat cu clientul și serverul de test.

Nivel: Avansat. Ce trebuie să știi înainte: ce e sursa, conectarea clientului la server și să ai un server de test pornit. Ai nevoie de un calculator cu Windows și câteva zeci de GB liberi.

Cuvinte pe care le vei întâlni

CuvântCe înseamnă
Visual StudioProgramul Microsoft în care scrii și compilezi cod C++ pe Windows. Ediția Community e gratuită pentru multe situații; verifică licența pentru cazul tău.
Soluție (.sln)Fișierul care adună toate proiectele clientului. Îl deschizi cu dublu clic.
Proiect (.vcxproj)O parte din client (grafică, sunet, interfață).
ToolsetVersiunea uneltelor de compilare din Visual Studio, de exemplu v143.
ConfigurațieFelul compilării: Debug (pentru depanare), Release (optimizat) etc.
PlatformăWin32 (32 de biți) sau x64 (64 de biți).

Ce am găsit în sursa verificată

În pachetul pe care l-am verificat, sursa clientului e în client-src/ClientVS22/:

CeValoare
Soluțiaclient.sln (făcută pentru Visual Studio 2022)
Toolsetv143
Platformedoar Win32
ConfigurațiiDebug, Release, Distribute
Proiectul principalUserInterface (plus librării ca EterLib, GameLib, EffectLib)
Unde iese executabilulfolderul binary\, cu numele Metin2Release.exe, Metin2Debug.exe sau Metin2Distribute.exe
Librării externeincluse, în extern\include și extern\library

Clientul gata făcut din pachet folosește Metin2Distribute.exe. Fișierul Readme.txt al sursei mai spune un lucru important: trebuie instalată și componenta C++ MFC pentru toolset-ul v143.

Alte surse pot cere alte versiuni de Visual Studio. Un proiect făcut pentru Visual Studio 2013 nu se compilează mereu fără adaptări în 2022. Uită-te la ce scrie în sursa ta.

Pasul 1: Instalează Visual Studio

  1. Descarcă Visual Studio Installer de pe site-ul Microsoft.
  2. Bifează sarcina Desktop development with C++.
  3. În lista din dreapta (sau în fila Individual components), bifează și C++ MFC pentru toolset-ul cerut (la noi, v143) și un Windows SDK.
  4. Instalează. Durează, iar descărcarea are câțiva GB.

Dacă ai uitat MFC, deschizi din nou Visual Studio Installer, apeși Modify și îl adaugi.

Pasul 2: Deschide soluția

Copiază sursa într-un folder simplu, fără spații și diacritice în cale, de exemplu C:\m2\ClientVS22. Apoi dublu clic pe client.sln.

Dacă Visual Studio îți propune să „retargetezi” proiectele (să le schimbe toolset-ul), la prima compilare refuză. Vrei să afli întâi dacă sursa se compilează așa cum a fost gândită.

Pasul 3: Alege configurația

Sus, în bara de unelte, sunt două liste:

  • prima: alegi Release (sau Distribute, dacă vrei să obții același tip de fișier ca în client);
  • a doua: alegi Win32.

În Solution Explorer (panoul cu proiecte), clic dreapta pe UserInterface și Set as Startup Project. E proiectul care produce executabilul.

Pasul 4: Compilează

Din meniul Build, alege Build Solution (sau apasă Ctrl+Shift+B). În panoul Output de jos vezi cum se compilează fiecare proiect.

Ce ar trebui să vezi: la final, un rând de forma Build: 17 succeeded, 0 failed (numărul diferă) și fișierul nou în folderul binary\, de exemplu Metin2Release.exe.

Dacă apar erori, citește prima din panoul Error List. Cele mai dese:

Ce veziCe înseamnăCe faci
RC1015: cannot open include file 'afxres.h'Lipsește componenta MFCInstalează C++ MFC pentru toolset-ul cerut
MSB8020: The build tools for v143 cannot be foundLipsește toolset-ul cerutInstalează-l din Visual Studio Installer
C1083: Cannot open include fileLipsește un fișier .hVerifică dacă folderul extern e complet
LNK2019: unresolved external symbolLipsește o librărie la legareVezi erori de compilare

Pasul 5: Testează executabilul

  1. Fă o copie a folderului clientului de test.
  2. Copiază noul Metin2Release.exe în acel folder, lângă executabilul vechi. Nu îl suprascrie.
  3. Pornește-l. Clientul trebuie să fie setat spre serverul de test (vezi conectarea clientului).
  4. Testează: login, alegerea personajului, inventarul, o hartă, o fereastră de magazin, ieșirea.

Ce ar trebui să vezi: jocul se comportă la fel ca cu executabilul original. Dacă ai compilat sursa fără modificări, orice diferență înseamnă că sursa nu e exact cea a clientului tău.

Atenție la fișierele cu text coreean

Multe fișiere din sursa clientului (și a serverului) au comentarii vechi în coreeană, salvate cu o codificare veche. În sursa verificată, zeci de fișiere .cpp din UserInterface au astfel de caractere. Dacă le deschizi într-un editor care le salvează automat în UTF-8, comentariile se transformă în semne � și uneori se strică și textele din joc. Editează-le în Visual Studio, care păstrează codificarea, și verifică după salvare ce s-a schimbat.

Greșeli des întâlnite

  • Compilezi în x64 sau Debug și te miri că nu merge ca originalul. Folosește configurația și platforma clientului tău.
  • Accepți conversia proiectelor fără să știi ce schimbă.
  • Pui executabilul nou direct la jucători, fără test. Un client greșit nu se mai poate „retrage” ușor.
  • Schimbi în client ce se trimite la server fără să schimbi și serverul. Vezi protocolul game–client.

Întrebări frecvente

Pachetul meu nu are sursa clientului. Ce pot face?

Poți schimba în continuare multe lucruri fără sursă: pack-urile clientului (iconițe, texte, interfață în Python). Pentru schimbări în executabil îți trebuie sursa exactă. O sursă luată de altundeva poate să nu se potrivească cu serverul tău.

Ce e DumpProto din același folder?

E o unealtă separată, cu soluția ei (Importer.sln), folosită pentru a transforma item_proto și mob_proto în formatul citit de client. Nu e nevoie de ea ca să compilezi clientul.

Cum ajunge executabilul nou la jucători?

Prin update de client, de obicei cu autopatcher. Vezi update de client cu autopatcher.

Ce urmează

Afli cum citești erorile de compilare frecvente. Toate lecțiile sunt în lista tutorialelor Metin2.

Server Metin2 gata de joc

Găzduire Metin2 în România, cu instalare de serverfiles, bază de date MySQL și protecție Anti-DDoS inclusă.

DiscordWhatsApp