Introducerea suprema in modding | Daca esti incepator, citeste asta

Users who are viewing this thread

Dawiduh

Squire
Aceasta este o traducere a articolului lui Lumos de aici: The Ultimate Introduction to Modding. Tutorialul nu imi apartine. Pentru orice intrebari mergeti pe topic-ul initial. Multumiri lui Lumos pentru tutorial.

This is a translation of Lumos' topic found here: The Ultimate Introduction to Modding. The tutorial does not belong to me. For any questions go to the original topic. Thank Lumos for this tutorial.




In primul rand am decis sa fac acest tutorial deoarece de curand au aparut foarte multi incepatori pe forum si unii din ei au scris tutoriale care sunt neclare sau eronate. Va rog sa cititi mai jos. Voi face tot ce imi sta in putinta sa explic cat mai clar si in detaliu lucrurile pe care trebuie sa le stie cineva care se puca de modding. Catre ceilalti modder-i experimentati: daca gasiti ceva incorect aici, ziceti. Voi modifica imediat ce imi atrageti atentia.

Introducerea suprema in Modding.
Contine informatie Reala, Corecta si Testata.
De catre modderi pentru modderi.​

De ce este asta un tutorial “real”?
Deoarece e scris de o persoana care, la momentuls crierii acestui articol, are peste sapte ani de modificare a diferite jocuri, in principal Mount&Blade si Warband (peste sase ani). Am cel mai mare rang de pe forum (ceea ce inseamna ca am ars-o pe aici destul de mult :grin:), si am publicat cateva pachete gratis de coduri, am creat cateva aplicatii care sa ajute la modding, etc.

Dar in alte tutoriale mi se zice sa fac altfel...
Pot sa iti zica ca cerul e roz cu buline verzi.
Tutorialul asta contine informatii care au fost zise incepatorilor in multe topic-uri care insa s-au pierdut de mult. Va transmit ceea ce stiu asa *** stiu si, credeti-ma, am folosit aceste informatii. In plus, daca sunt erori aici, nu o sa imi apar greselile, voi modifica ceea ce e incorect astfel incat totata lumea poate sa fie sigura ca au parte de informatie 100% corecta.

Ok, dar incepe sa arate ca un perete de text si nu-mi place.
Treaba ta. Va fi un zid de text, dar te asigur ca nu va fi degeaba. Promit si niste poze.
Oricum, iti recomand o bere rece sau ce iti place tie sa bei, baga niste muzica de fundal (daca te ajuta sa te concentrezi – pe mine ma ajuta) si continua sa citesti.
Daca vrei sa stii doar *** sa iti instalezi sistemul de module, sari peste urmatoarea sectiune, e plina de teorie.

Ce este de fapt “modding”-ul?
*** probabil deja stii, cuvantul “modding” vine de la “a modifica” (NR. Engleza) si “mod” poate insemna atat “modificare” cat si “modul”. Dar nu prea conteaza ce inseamna cuvantul in sine.
Pe scurt, “modding” inseamna sa modific ceva. In cazul asta vei modifica jocul Mount&Blade sau unul din derivatele sale. Modding-ul inseamna programare, dar la un nivel de baza, asa ca daca stii sa programezi nu vei avea mari probleme in a intelege *** sa modifici jocul.

Si *** merge modificarea M&B?
Pentru a intelege asta trebuie sa intelegi cateva lucruri de baza, cateva concepte de programare. (Programarea e de fapt usoara, apropo … cea mai mare parte totusi.) Deci, deschideti folderul Mount&Blade\Modules. Aici o sa gasiti mod-ul Nativ care vine cu jocul precum si orice mod-uri pe care le-ati descarcat. Tineti minte ca am zis Mount&Blade, dar poate fi oricare din jocurile din serie. Sa zicem ca e vorba de Warband. Atunci folderul se va numi Mount&Blade Warband. Sau ceva de genul.
Uita-te prin folder-ul Nativ. Vei vedea o serie de fisiere text si cateva foldere. Deschide un fisier text, sa zicem “presentations.txt”, si dati scroll un pic. Nu prea intelegeti nimic, nu? In afara de ceva cuvinte ici-si-colo restul sunt numai numere. Asta cisteste jocul si asa arata un mod cand e gata.
Ca sa faci un mod poti modifica direct fisierele text, desi asta e o metoda plictisitoare, greoaie si plina de erori. Sfatul meu: nu o face. Bineinteles si eu am facut asta cand am inceput (nu ca sa fac un mod ci ca sa modific setarile pentru niste arme... ma rog, stiti voi). Cealalta cale e sa folositi Sistemul de Module / Module System, care e un set de fisiere-program (scrise intr-un limbaj mult mai inteligibil si cu mai putine numere!) care se compileaza folosind Python, un limbaj de programare. E important sa stii ca desi fisierele pentru Sistemul de Module (eu il numesc ModSys pe scurt) au extensie .py (fisier Python), ModSys-ul in sine nu e scris in Python, si (pentru 99.99% din ceea ce vrei sa faci) nici nu e nevoie sa il stii (da, il poti folosi pentru lucruri complicate daca il stii :grin:). ModSys-ul foloseste ceva mult mai usor – un set de “operatii”. Dupa ce modifici fisierele .py compilatorul Python compileaza (traduce) aceste fisiere si creeaza fisierele text pe care le-ati vazut mai devereme, si pe care jocul le poate citi.
Limbajul M&B nu are un nume fix. Eu ii zic Limbajul Mount and Blade – MABL (NR. Engleza) (suna ca MABLE), dar multi ii zic M&B Script. NU conteaza de fapt. Poti sa ii zici “Ni!” si tot va merge. (daca ai si un tufis... :grin:)

Ok, am inteles. Ce trebuie sa fac pentru a modifica jocul?
Depinde de ce vrei sa faci. Daca vrei sa modifici niste date, sa adaugi niste trupe sau obiecte, sau sa modifici ceva deja existent si s-o faci doar pentru tine poti modifica fisierele text – ori manual (NERECOMANDAT) ori folosind aplicatii facute de modderi pentru asta – din Unofficial Editing Tools.
Daca te gandesti sa faci un proiect serios, vei avea nevoie de ModSys. Tine minte ca ModSys inlocuieste toate fisierele text cand compilezi.
Din punctul meu umil de vedere exista trei mari categorii de modding. Acestea sunt Programarea (sa programezi chestii bengoase rau, sa creezi noi lucruri in joc) – ceea ce inseamna sa lucrezi cu ModSys; Modelarea (sa faci chestiile vizibile: obiecte, case, orice e 3D); si Texturarea (sa faci obiectele 3D sa arate cat mai real cu putinta punand imagini pe ele). Evident, majoritatea modelatorilor 3D sunt si texturatori dar poti include la texturare orice tip de grafica 2D (jocul foloseste si asta). Nu e nevoie sa stii ModSys dar e recomandat

Am impresia ca o sa vorbesti din ce in ce mai mult despre Sitemul asta de Module.
Asa e. Sunt programator. Abilitatile mele de modelare 3D sunt... hm, de incepator in cel mai bun caz iar cele de etxturare sunt minime. (Imi pare rau dar nu pot desena cu un mouse. Desenez rezonabil pe hartie, dar nu ma pricep deloc cu un mouse.)
Si, ca orice programator, ma voi axa pe partea de programare. Bineinteles, voi vorbi doar de elementele de baza care trebuie sa fie stuite de toata lumea.

Si ce ma fac daca nu sunt programator?
Nu-i nimic, insa tot pot invata niste lucruri de baza pe care le vei folosi in viitor. Daca ai nevoie de programe, poti folosi orice exporta .obj/.smd pentru modele si orice poate edita .dds pentru texturi (sau foloseste DDS Converter).
Pentru modelare 3D: Wings3D si Blender (gratis), 3DSMax, Maya, Zbrush (cu plata), etc.
Programe pentru texturare: GIMP, Paint.NET (gratis), Photoshop (cu plata), etc.
Cauta prin tutorialele de pe forum ca sa intelegi mai mult in legatura cu lucrurile care tin de modelare si texturare si *** se relationeaza cu motorul jocului. Aici ar fi un loc foarte bun sa incepi sa citesti.

Felicitari daca ai ajuns pana aici. Bineinteles, presupun ca ai citit intregui spoiler. Acum ia-ti o bere sau ceva... in caz ca nu ai facut asta deja.

Ai terminat cu teoria? Vreau sa ma apuc de modding.
Da, am terminat. Hai sa ne apucam sa modificam jocul. Vrei sa instalezi Sistemul de Module, nu? Mai intai du-te la pagina Module System Download si descarca un Sistem de module nou nout. Acum! Ca sa poti compila fisierele din ModSys in fisiere text , pline de numere, si ca sa iti faci minunatul mod sa devina realitate, ai nevoie de limbajul de programare Python. Un piton adevarat poate ajuta, dar nu e foarte sigur. Acuma nu te grabi sa descarci cel mai nou Python. Trebuie sa stii ceva foarte important: jocul nu merge nu orice Python, mai nou de 2.x si IIRC, ceea ce inseamna ca cea mai noua versiune este 2.7.3. Deci descarca un Python de pe pagina oficiala.
Acum tot ce trebuie sa faci e sa instalezi Python. Cu drepturi de administrator, te rog. Si e bine sa il instalezi in folderul C:\Python27.
May departe mergi la “environement Variables” si vezi daca totul e ok. Pentru cei ce nu stiu ce sunt astea: au legatura cu sistemul de operare, Windows-ul are nevoie de ele. Tot ce te intereseaza este variabila “PATH”. Deschide fereastra aia si apuca-te de treaba.

Windows XP: My Computer (right-click) -> Properties -> Advanced -> Environment Variables
Windows 7: My Computer (right-click) -> Properties -> Advanced system settings -> Environment Variables

5E15V.png

Da scroll pe lista pana gasesti “PATH”, da click pe ea si din nou click pe “EDIT”. Variabila “PATH” e pur si simplu un sir de adrese catre tot felul de lucruri care sunt importante pt sistemul tau de operare. Sunt diferite pt fiecare computer.
Pentru ca compilatorul sa mearga fara hack-uri si reparatii trebuie sa aveti folderul Python in variabila “PATH”. De exemplu, daca ai instalat Python in C:\Python27 atunci adauga ;C:\Python27 la sfarsitul adresei. NU schimba adresa in nici un alt mod! Din moment ce contine informatii importante, NU este recomandat sa schimbi nimic. Doar adauga ;C:\Python27 daca nu e deja acolo. Cred ca nu e acolo pentru ca eu a trebuit sa introduc adresa manual. Cred.
Oricum, aveti grija la punctul si virgula (:wink: care sunt inaintea C:\Python27. Adresele diferitelor aplicatii sunt separate cu punct si virgula in variabila “PATH” si deci trebuie sa adaugi punct si virgula pentru ca sistemul tau de operare sa stie ce vrei.
Si cam asta a fost cu instalarea Python.

Si unde e modding-ul?
Modding-ul urmeaza. Esti ok? Viu? Computerul nu a explodat? Foarte bine, continua sa citesti. Ai instalat compilatorul Python, asa ca acum e timpul sa compilezi baza noului tau mod.
Acum, asigura-te ca folder-ele de ModSys si Mount&Blade au permisiuni de citire/scriere (cel mai bine e sa poti modifica intregul folder). Acum, deschide Mount&Blade\Modules, copiaza folder-ul Native in acelasi loc. Schimba numele copiei cu numele noului tau mod.
ACpBk.png

Acum ca ai un folder nou pentru mod-ul tau, trebuie sa faci ModSys-ul sa-l foloseasca. Deschide folderul Sistemului de Module, gaseste module_info.py si deschide-l. Atentie! NU da dublu-click pe el. Daca faci asta, Python va crede ca vrei sa compilezi un program Python, si per total nu va face nimic. Ca sa poti edita fisierele ModSys vei avea nevoie de un editor text. Poti folosi Notepad desi eu recomand Notepad++, un editor gratis si foarte bun de text, acelasi cu care scriu acum acest articol.
1XiLd.png

Python vine cu IDLE, propriul sau editor de text, dar e vechi si slab, nu-l folosi. Oricum, deschide module_info cu editorul tau de text si vei vedea asta:
Code:
# Point export_dir to the folder you will be keeping your module
# Make sure you use forward slashes (/) and NOT backward slashes (\)

export_dir = "../WOTS/Modules/Native/"
#export_dir = "C:/Program Files/Mount&Blade/Modules/Native/"

(“WOTS” e o ramasita de dinainte de 2005 (sau asa ceva) cand jocul se numea (temporar) “Way of the sword” (NR. “Calea sabiei” - invatati dracu engleza). Daca ati jucat primele versiuni ale M&B, veti vedea ca sunt tot felul de lucruri de atunci care inca apar :grin:.
Bun. Deci stii ce ai de facut. Acuma, hai sa iti explic cate ceva. Semnul # pe care il vezi din loc in loc inseamna comentariu. Daca esti programator, vezi stii ce e un comentariu, daca nu – un comentariu e ceva ce e acolo pentru programator, nu pentru computer. Comentariile se folosesc pentru a face adnotari, documentatii, etc. Sunt al naibii de folositoare. Orice e scris dupa comentariu e invizibil pentru compilator, deci daca cineva iti zica sa schimbi ambele linii de cod, ziceti-le sa se duca in ***** *****.
Schimbati export_dir (nu cel cu comment) astfel incat sa trimita in nou vostrul folder al mod-ului, si aveti grija la slash-uri.
Omd0h.png

Dupa *** vedeti, linia a doua (comentata) nu s-a schimbat si totul merge ok. Bun, acuma ati instalat si mod-ul. Acuma vine prima provocare.

Provocare? Ce provocare?
Stai calm, e ok. Va trebui sa dai dublu-click pe build_module.bat in folderul ModSys – aceste este compilatorul. Va deschide o fereastra a consolei (NR. O fereastra care arata ca MS-DOS, text, etc.) si vei vedea rezultatul. Daca ai facut toul bine, vei vedea un rezultat bun si poti sa jubilezi.
Daca nu vezi nici o eroare si vezi imaginea de mai jos inseamna ca totul e ok. Imaginea arata un rezultat bun dar nu complet.
XaazO.png

Dar daca ai gresit ceva mai sus compilatorul o sa iti returneze erori. Cea mai frecventa este urmatoarea:
Code:
'python' is not recognized as internal or external command, operable program or batch file.
de vreo douazeci de ori la rand. Ceea ce inseamna ca nu ai setat adresa variabilei “PATH” *** trebuie. Intra pe pagina How to fix "Python not recognised..." de pe forum. Daca/Cand totul e ok, citeste mai departe.

Ummm... Primesc o eroare de genul “nu pot deschide fisierul”! Ce fac?
Trebuie sa te asiguri ca ai permisiuni de scriere/citire in folderul ModSys, si la fel, in folder-ul noului tau mod. Poti rula build_module.bat ca admin, poate merge – eu nu am incercat, nu stiu. Oricum, daca pui folderul ModSys pe Desktop sau in My Documents poate rezolva problema.

Primesc alta eroare!
Cauta pe forum cu functiunea de cautare (e in coltul din dreapta sus) sau intreaba pe Q&A thread. Nu fa noi pagini doar pentru intrebarea ta.

Bun, mod-ul meu se complieaza *** trebuie. Ce fac acuma?
Ei bine prietene, asta inseamna ca ai terminat partea de baza pentru mod-ul tau si ca acuma urmeaza modding-ul propriu-zis.
Trebui sa mai stii un lucru totusi. *** probabil ai observat sunt patru tipuri de fisiere .py in folder-ul ModSys. Citeste mai jos ce face fiecare.
Ce sunt fisierele header_*
Fisierele header contin constante ale jocului. Le poti schimba, dar in general nu e bine sau necesar sa faci asta.
Daca ai nevoie de o constanta noua, o poti defini in fisierul module_* potrivit.
Toate operatiile sunt listate in header_operations.py
Ce sunt fisierele ID_*?
Fisierele ID_* contin index-urile numerice pentru tot ceea ce exista in mod-ul tau. In MABL/MBScript, totul poate fi privit ca o lista reprezentata de un index, si fisierele ID_* contin aceste indexuri. Fisierele ID_* sunt generate de fiecare data cand compilezi, dar nu e bine sa le modifici.
Poti folosi fisierele ID_* ca sa verifici ce index au diferitele lucruri – in caz ca primesti o eroare sub forma unui index si nu a unui nume, de exemplu.
Ce sunt fisierele module_*?
Dupa *** ai vazut deja, am editat module_info.py. Fisierele module_* contin tot ce tine de joc si pe ele le vei edita.. Contin aproape totul – trupe, obiecte, elemente pentru scene, scene...
Ai voie sa le modifici. Este recomandat sa faci din cand in cand cate un back-ul la tot ModSys.
Ce sunt fisierele process_*?
Fisierele process_* sunt responsabile de compilarea mod-ului tau in mult-iubitele numere folosite de joc. Aceste fisiere nu prea se modifica, si, inainte de a face orice aici, trebuie sa fii foarte sigur ca stii ce faci – dar, pentru inceput, nu te atinge de ele.
Fisierele process_*, spre deosebire de restul ModSys-ului sunt scrise in limbajul original Pyhton.

Stai un pic, nu o sa imi zici *** sa modific jocul!?
Asta e un drum pe care trebuie sa il parcurga fiecare. Cu alte cuvinte, nu, nu o sa iti zic *** sa modifici jocul. Iti voi da in schimb niste sfaturi si link-uri care iti vor fi folositoare. :mgreen:

Ok, care sunt?
In primul rand gramatica si atitudine. Memorati aceste doua cuvinte deoarece sunt foarte importante. Scrieti corect, fiti politicosi si sansele de a fi ajutati vor creste exponential. Puneti spatii si punctuatie, tineti minte ca abrevierile nu sunt cuvinte, si fara “halp plox”. Comportati-va cu ceilalti de la egal la egal, exact asa *** vreti si voi sa fiti tratati. Membrii cu experienta (care isi fac timp sa va raspunda la intrebari) trebuie tratati cu tot respectul cu care (ar trebui sa) iti tratezi un mentor. Sa nu va fie frica sa intrebati si nici sa folositi “va rog”.
Topic-urile “stickied” sunt prietenii vostri. Ele vor fi intotdeaune primele in lista tocmai pentru ca sunt importante. E bine sa le cititi.
Cititi regulamentul forum-ului. Nu sunt multe reguli, sunt scrise concis si clar. Tineti minte sa cititi si casuta care apare atunci cand faceti un topic nou. Cititi-o macar o data, nu o sa va omoare.
Daca aveti o intrebare mai putin importanta nu faceti un nou topic pentru ea. Postati-va intrebarea in Q&A thread.
Folositi functia de cautare a site-ului sau Google ca sa gasiti ceea ce cautati.
Cea mai buna metoda de a invata sa modificati jocul e sa incercati. Porniti cu ceva mic, desi stiu ca e un sfat plictisitor. Dar credeti-ma, vorbesc din experienta. Sa pornesti cu ceva mic e o metoda foarte buna sa incepi; a incerca sa faci un proiect gigantic de la inceput e o idee foarte, foarte proasta. Credeti-ma.
Puteti gasi ce face fiecare “operatie” (functie a ModSys) in header_operations.py.

Acestea sunt singurele sfaturi la care ma pot gandi acum. Acum, cateva link-uri folositoare.
Documentatia oficiala a ModSys-ului. Este foarte veche si depasita, dar ModSys-ul functioneaza pe acelasi principiu. Daca citi ce scrie pe acolo nu va va dauna.
Tutorialul actualizat al lui Jik – asta e o versiune mai noua a tutorialului oficial. Destul de folositor.
Mount&Blade Mod Wiki – e destul de nou si are ceva lucruri folositoare.
Articolul lui Ruthven despre *** sa incepi modding-ul. E o colectie de link-uri catre tutoriale, ghiduri si alte chestii. E folositor.
Articolul lui Pyrate – Modding 101 – folositor.
Tutorialul lui Caba'drin despre sintaxa ModSys. Extrem de folositor daca vrei sa te prinzi *** functioneaza MABL. Sau MBScript. Sau *** naiba vrei sa-i zici. :grin:

Stai putin, *** editez World Map?
Din moment ce ai intrebat, trebuie sa lamurim niste lucruri. In modding, map/harta se refera doar la harta mare (World Map), cea in care alergi de colo-colo printre orase cu omuletul tau. Hartile de multiplayer, la fel ca in alte jocuri se numesc scenes/scene. Retineti pentru ca e foarte enrvant sa dai peste o persoana care intreaba *** sa editeze o harta cand de fapt se refera la o scena.
Dar ca sa ne intoarcem la oile noastre. Ca sa editezi harta mare ai nevoie de un editor de harti. Exista cateva, dar cel mai cunoscut e Throgrim's MapEditor. A fost facut pentru vechiul M&B, dar merge si pentru Warband, indiferent ce va zice lumea. Daca modificati Warband aruncati un ochi si la Warband MapManager facut de mine. Face toata munca de jos pentru voi astfel incat sa mearga Thorgrim's MapEditor pe Warband.
Aici e un tutorial foarte bun (l-am urmat eu insumi) despre *** sa editezi o harta.
Tineti minte ca cu cat o harta e mai mare, cu atat e mai greoaie. Harti cu multe poligoane (da, harta este un mesh 3D), mai multe de 80000 va solicita foarte mult computerul si ar trebui sa fie in general evitate.

Asta a fost tot?
Cam da. Acume timpul sa te arunci in marea si minunata lume a modding-ului.

Cat ti-a luat sa faci tutorialul asta?
Cateva ore. Doua sau trei. Imi place sa cred ca sunt perfectionist si intotdeauna incerc sa fac orice lucru cat de bine se poate, indiferent cat de mult timp ia. Va invit sa va dati cu parerea asupra tutorialului. Sper ca e folositor.

Multumiri lui Caba'drin (cel mai activ admin in acest colt de forum la momentul asta) pentru a face acest articol sticky. Sper sa isi serveasca scopul.

Sper ca ati citit, placut si poate chiar si invatat ceva.
Aveti idei ca sa imbunatatesc articolul? Ziceti-mi.

Lumos out.
 
Exista vreo ceva de adaugat pentru ubuntu cu wine? Presupun ca e acelasi lucru...
Deasemenea, presupun ca nu pot folosi pythonul instalat pe ubuntu, right?
 
Cel mai bine ar fi sa intrebi aici sau sa ii dai un mesaj lui Lumos, autorul original al tutorialului.

Eu unul nu ma pricep la Linux deloc, sorry.
 
Python este Python indiferent daca este pe windows sau pe linux. Are aceeasi sintaxa. Difera doar interpretorul dar scripturile facute cu python de linux se pot rula linistit si cu python de windows. Chestia este ca python este folosit doar pentru a genera fisierele .txt folosite de joc.
 
Da, normal, doar ca presupun ca e ceva mai complicat de organizat toata nebunia cu modulele si pythonul pe Linux. De obicei pe Linux totul e "nitel" mai complicat desi odata invatat *** functioneaza pun pariu ca e cel mai tare OS.
 
Back
Top Bottom