Chciałbym się nauczyć moddować Heroes'a 3. Widziałem już kilka modów - typu Modern Forge czy Heroes 2 do 3. I chciałbym się dowiedzieć, czy w ogóle dostępne takie moddowanie - zmiana systemu albo dodawanie czegokolwiek nowego. Specjalnie stworzyłem tutaj konto, żeby się tego dowiedzieć, a od wczoraj szukałem tego typu informacji w Google czy tutaj, ponieważ znudziło mi się tworzenie map do H3SoD, a moddowanie w skryptach ERM w WoG'u jest kiepskie.
Czy jest możliwe moddowanie Heroesa III ?
Field /
Modding w H3 obecnie jest TYLKO dostępny z poziomu WoGa. To Forge itd. również jest za jego pomocą robione. Były co prawda jakieś projekty (chyba rekvizit, ale mogę się mylić co do jego natury), które niby omijały tę konieczność, ale nikt do końca nie wie (poza twórcami), jak to złamać, bo pliki są dość restrykcyjnie skonstruowane.
Dopóki nie zostanie wypuszczona pełna wersja VCMI z otwartym kodem zostaje ci ERM. Przykto mi.
Jeżeli chcesz większych odpowiedzi, to scena moderska dobrze się trzyma u sojusznika JB - Kwasowej Groty. Uprzedzam - użytkownicy są tam dość wredni i to banda grammar nazi, ale się nie zrażaj ;)
+++ Błąd Dzielenia Przez Ogórek. Zainstaluj Wszechświat Ponownie I Rebutuj.+++
Liczba modyfikacji: 2, Ostatnio modyfikowany: 24.11.2011, Ostatnio modyfikował: Field
Irhak /
Field
Modding w H3 obecnie jest TYLKO dostępny z poziomu WoGa.
WoG daje tylko odpowiednie narzędzia, ale jeśli się odpowiednio je wykorzysta (jak np. przy AR czy NI, gdzie brak skryptów) to mody mogą być nawet pod SoDa. Jednakże wtedy nie ma dostępu do zaawansowanych możliwości jak np. zmiana zdolności czy nowe specjalizacje bohaterów.
W skrócie - mody zmieniające wygląd i podstawowe statystyki przejdą w SoDzie, ale nadal potrzeba wogowego instalatora do ich zastosowania.
użytkownicy są tam dość wredni
Mam nadzieję, że bylem wystarczająco wredny, Field :P
Swój obserwuje. Swój nie widzi swego. Zrzęda będzie zrzędzić.
Liczba modyfikacji: 2, Ostatnio modyfikowany: 24.11.2011, Ostatnio modyfikował: Irhak
Muszę się nie zgodzić z Fieldem. Powiedzmy, że na razie tylko z pierwszą częścią wypowiedzi ;)
Jak najbardziej modding bez WoGa jest możliwy. Wspomniane przez Ciebie projekty w dość niewielkim zakresie korzystają z możliwości WoGa. Podobnie jak rozwijane Horn of the Abyss. Za to wspomniany przez Fielda, wyklęty przez fanów Rekvizit w całości opiera się na WoGu (nazywając się wręcz "Heroes 3,7").
Najprościej można moddować grę wyciągając z niej jakiś element, modyfikując i wsadzając go z powrotem.
Jest to ogólny schemat dla plików graficznych, czy dźwiękowych - wydobyć z gry plik programem "Resedit", zmodyfikować, wsadzić z powrotem (korzystając np. z H3DefTool, lub... samego tylko instalatora WoGa).
W niektórych przypadkach ostatni etap nie jest konieczny. Np. zmodyfikowane pliki konfiguracyjne gry (wszelkie pliki textowe, jakie możesz znaleźć wewnątrz h3bitmap.lod) wystarczy umieścić w katalogu "Data" gry, aby zadziałały. W ten sposób modyfikując i umieszczając w "Data" np. plik "CRTRAITS.TXT", który zawiera statystyki i nazwy jednostek możesz stworzyć swój pierwszy minimod i dać np. czarnym smokom 1000 punktów życia ;).
Sam spróbuj:
1. ściągnij program Resedit (np. ze Skarbca Groty)
2. otwórz plik h3bitmap.lod (znajduje się w katalogu "Data" gry)
3. wypakuj z niego plik CRTRAITS.TXT
4. Zmodyfikuj w dowolnym edytorze tekstowym - np. notatniku (przyda się WYłączenie zawijania wierszy) zmieniając chociażby nazwę "pikinierzy" na "wojownicy"
5. Umieść zmodyfikowany plik w katalogu "Data"
Dalej robi się już trudniej.
Aby zmodyfikować coś, co nie jest plikiem graficznym, dźwiękowym lub konfiguracyjnym, a więc np. zmodyfikować działanie artefaktu, czy zdolności specjalnych jednostek (np. sprawić, by jednostka latała lub była nieumarła) ciągle można to osiągnąć bez ERM, lecz jest to wyższa szkoła jazdy i ERM przy tym jest zwyczajnie o wiele łatwiejsze. Należy bowiem wówczas edytować plik exe gry ("heroes3.exe)", używając jakiegoś hex-edytora (gdyż edytowanie skompilowanego programu ma sens tylko w systemie szesnastkowym).
Podsumowując: Wszystko zależy od tego co tak naprawdę chcesz zmienić.
Od razu mówię - jesli Twoim celem nie jest modyfikowanie całej gry, ale tylko stworzenie zmodyfikowanych map, to jednak WoG byłby dla Ciebie najlepszą (żeby nie powiedzieć "jedyną") opcją. Przyda się wtedy patch dla edytora map, który pozwala na edytowanie kilku rzeczy bez znajomosći ERM, lecz wciąż jest to stricte uzależnione od WoGa.
Neutralność nie zawsze jest możliwa...
Liczba modyfikacji: 1, Ostatnio modyfikowany: 24.11.2011, Ostatnio modyfikował: Acid Dragon
I zasadzie Acid Dragon całkowicie wyczerpał temat. Ja ze swojej strony dodam tylko link prowadzący do skarbnicy Kwasowej Groty, gdzie możesz pobrać opisywane przez Acid Dragon programy.
http://www.vault.acidcave.net/
Pogarda mą zbroją
Wstręt mą tarczą
Nienawiść mym mieczem
W imię imperatora nikt nie ocaleje!
Wstręt mą tarczą
Nienawiść mym mieczem
W imię imperatora nikt nie ocaleje!
Huntik /
Nieźle to wygląda. Rozumiem znaczną większość :p Może dlatego, że moddowałem i nadal modduję grę pt. 'Gothic', tu - skrypty są łatwiejsze do zrozumienia, nie ma trudnych opcji itp.
Na początek, to chciałbym stworzyć nową jednostkę. Nie jestem grafikiem 2d, ale mógłbym zrobić byle jaką grafikę, chociażby w Gimpie i zapisać jako .gif. Moglibyście mi powiedzieć, jak wykonać taką grafikę ? Chodzi mi tutaj o styl, na czymś przeźroczystym, albo czym ? Albo chociaż - jak zrobić nową jednostkę na ISTNIEJĄCEJ grafice ? Nie lubię bawić się WoG'iem, wiem, ile on wywołuję błędów, a próbowałem na nim kiedyś zrobić chociażby najprostszy skrypt, ale źle zrobili - że trzeba to w mapach robić na Eventach w opcjach mapy. Dlatego chciałbym spróbować coś pokombinować z systemem, a skrypterem nie jestem, więc proszę o pomoc :P
Pozdrawiam, Huntik2009.
EDIT: Nie wiem natomiast, dlaczego gryf kosztuję 200 Klejnotów ? xD
Singular Plural Wood Mercury Ore Sulfur Crystal Gems Gold
Gryf Gryfy 0 0 0 0 0 0 200 324
A dobra, wiem już o co chodziło z gryfami. Pomyłka o jedną linijkę :P
EDIT2: A w moim 'naprawdę' pierwszym modzie, to zbalansował bym nieco system gry, Tytan nie ma szans z Archaniołem ... to jest przykład.
EDIT3: Rozpakowałem plik 'WALLS.txt'. Te skrypty są naprawdę ciekawe ...
EDIT4: A, i jeszcze jedno. Wie ktoś może do czego służy plik z formatem .DEF ? Jest tu jeszcze kilka formatów, których nie rozumiem typu .msk. Wyjąłem też pewną teksturę z gry, zmieniłem, i nie widać tego w grze ... ?
Liczba modyfikacji: 6, Ostatnio modyfikowany: 24.11.2011, Ostatnio modyfikował: Huntik
Huntik
Na początek, to chciałbym stworzyć nową jednostkę.
Na początek to wybrałeś sobie najtrudniejsze zadanie w kwestii modyfikacji H3 ;).
Seriously - Do dnia dzisiejszego, z projektów, które zostały opublikowane odnośnie H3 tylko jeden prawdziwie dodawał nowe jednostki i był to WoG (bynajmniej jednak nie jest to możliwe dla fanów - sposób dodawania nowych jednostek był swojego czasu znany tylko jednemu człowiekowi, twórcy WoGa, Slavie Salnikov). Inne mody co najwyżej były w stanie PODMIENIĆ istniejące jednostki na "nowe". Być może wraz z premierą HotA to się zmieni, ale na razie chyba nikt nie jest w stanie Ci pomóc w dodaniu kompletnie nowej jednostki bez eksperckiej wiedzy informatycznej.
Modyfikować jesteś w stanie wiele, ale dodawanie czegokolwiek - zwłaszcza jednostek jest cholernie trudne, a bez WoGa - prawie niemożliwe.
Jeśli chodzi o skrypty ERM, to wcale nie ma konieczności umieszczać ich wewnątrz mapy. Owszem, można tak zrobić, aby dodać skrypty do jakiejś konkretnej mapy, aczkolwiek wszystkie skrypty wykorzystywane przez WoG "globalnie" do wogifikacji są przechowywane w katalogu "Data/s" jako oddzielne pliki. Samemu oczywiście takie skryty również można tworzyć.
Jeśli zaś chodzi o błędy w WoGu - owszem, zdarzają się, aczkolwiek zależy to też od ilości używanych przez Ciebie opcji. Jeśli nie jesteś fanem wielu "udziwnień" w grze, to możesz je prawie wszystkie powyłączać.
Co do "balansowania" jednostek, to wiele osób już to robiło przed Tobą, więc może najpierw poszukaj np. łatki Hellburna lub plików ligowców, na których rozgrywają turnieje. WoG również posiada zestaw skryptów balansujących, które opcjonalnie zmieniają parametry wielu jednostek.
Huntik
A, i jeszcze jedno. Wie ktoś może do czego służy plik z formatem .DEF ? Jest tu jeszcze kilka formatów, których nie rozumiem typu .msk.
Po szczegółowe odpowiedzi faktycznie zapraszam do zwiedzania Forum Kwasowej Groty.
Pliki def to pliki animacji. Zawierają m.in. grafiki jednostek, czy obiektów. Do ich przeglądania służy program DefView lub DefTool. Można je też przeglądać jeszcze bez wypakowania w programie Resedit - służy do tego opcja "podgląd obrazu".
Huntik
Wyjąłem też pewną teksturę z gry, zmieniłem, i nie widać tego w grze ... ?
Chyba nie teksturę, a jakiś plik graficzny. Tekstury używane są najczęściej w grafice 3D. Jak mówiłem wcześniej - pliki graficzne będzie trzeba umieścić ponownie w grze. Z reguły nie wystarczy wstawić jej do katalogu "Data". Jak je umieścić ponownie w grze? Jest kilka metod - zapraszam do zapoznania się bliżej z programem DefTool lub tworzenia łatek .wog (jej stworzenie i zainstalowanie nie wymaga samego WoGa).
Odsyłam też do tematu poradniki do WoGa w Kwasowej Grocie (nie przerażaj się jeśli ten temat długo się będzie ładować).
Neutralność nie zawsze jest możliwa...
Huntik /
Własnie jakąś godzinę temu zacząłem się bawić z DefViev :P Właśnie 'zwiedziam' Kwasową Grotę. Natomiast, co do tej jednostki, to nie najłatwiej by było podpatrzeć te skrypty Slavy ? Chodzi mi o zamienienie tych jednostek, które on dodał, albo - dodanie nowych, na tej samej zasadzie dodając tylko te nowe animacje itp. ? A może po prostu, poszukałbym sobie innej gry do moddowania, znacznie łatwiejszej xD Oczywiście, Heroes 3 bardzo mi się podoba, ale jest na razie za mało możliwości do jego moddowania ( na razie :D a od ilu lat jest on wydany ? ). Czekam oczywiście na HotA albo VCMI, wie ktoś, czy wyjdzie coś z tego chociaż W TYM ROKU ? :D Bo już tak długo są te plany, czy W OGÓLE wyjdzie ?
Huntik
Natomiast, co do tej jednostki, to nie najłatwiej by było podpatrzeć te skrypty Slavy ? ?
Mylisz pojęcia. Slava nie tworzył do tego skryptów. Slava stworzył JĘZYK skryptów - ERM, aby skrypty mogli pisać inni. Zaś takie rzeczy jak nowe jednostki, dowódcy, czy doświadczenie jednostek tworzył zaawansowanymi technikami "reverse engineering" efektywnie dodając nowy kod maszynowy do pliku "heroes3.exe" (tworząc "h3wog.exe"). Dla zobrazowania trudności tego zadania wspomnę, że nie znam doktora informatyki na swojej uczelni (a znam ich wielu), który potrafiłby odtworzyć jego pracę. Jest to tak niskopoziomowe programowanie, że po prostu prawie nikt się tym nie zajmuje.
Huntik
Chodzi mi o zamienienie tych jednostek, które on dodał, albo - dodanie nowych, na tej samej zasadzie dodając tylko te nowe animacje itp. ? ?
To są dwie kompletnie różne rzeczy. Zamienić nowe wogowe jednostki jak najbardziej się da - sam to zrobiłem tworząc patch "Nowych Ulepszeń". Co prawda, aby to w pełni dobrze działało użyłem kilku "sztuczek" - np. dodając pewne umiejętności jednostkom na zerowym poziomie doświadczenia, albo edytując znane mi rejony pliku "h3wog.exe", ale tak czy inaczej - można.
Natomiast dodanie nowej jednostki bez żadnej edycji skompilowanego kodu gry jest praktycznie niemożliwe.
Huntik
Czekam oczywiście na HotA albo VCMI, wie ktoś, czy wyjdzie coś z tego chociaż W TYM ROKU ? :D Bo już tak długo są te plany, czy W OGÓLE wyjdzie ?
W tym roku? Tym, który się kończy za miesiąc? To był żart prawda? :)
A całkiem serio - oczywiście wszystkim nam tego życzę, ale byłaby to wielka niespodzianka. Osobiście myślę, że to niemożliwe. Może (i tylko "może") bardziej realny jest następny rok.
Neutralność nie zawsze jest możliwa...
Huntik /
Dobra, dobra... koniec żartów. Chciałbym znaleźć główny skrypt gry. Czy on może znajduję się w głównym pliku .exe heroes'a ? Jak tak, to jak go otworzyć ?
Korci mnie jeszcze jedno pytanko, bo nie jestem zaznajomiony z historią WoGa, choć w niego trochę grałem, ale nigdy nie czytałem o nim. Dlaczego Slava nie może udostępnić tych skryptów, albo wiedzy - jak to zrobił ? Dałoby to wielu ludziom do myślenia ( tak mi się wydaję ). Wiem, WoG wyszedł dość dawno, z 10 lat temu, czy kiedy tam, no, ale wtedy można było udostępnić tą wiedzę, może udałoby się złamać skrypt gry. . . ?
EDIT: Ej, wiecie co. Otworzyłem ten plik .exe heroes'a za pomocą 7-Zip'a xD Zobaczę, ma cztery pliki ...
EDIT2: Np. w plik '.data' otworzyłem notatnikiem i są tam wszystkie pliki .pcx gry :D Można by dodać tam jeden mały pliczek jakiś, wpakować z powrotem na plik .exe, wrzucić do gry, do tamtego H3Bitmap dodać ten plik i w skryptach itp. ? :D
EDIT3: W .rsrc są wszystkie nazwy, tylko, że są po angielsku, znalazłem tu np.:
D i p l o m a c y ¤N o n e !¤B a s i c "¤A d v a n c e d € #¤E x p e r t
Czyli Dyplomacja - i umiejętności - Nic; Podstawowa; Zaawansowana; Ekspercka; :D Dobra, przesadziłem, nie jestem informatykiem, to tylko za dużo wyobraźni.
EDIT4: Pobawiłem się nieco 7-Zip'em i rozpakowałem plik Tutorial.TUT. Był tam plik bez formatu. Pomyślałem, może to jest mapa ? Więc dopisałem do pliku '.h3m' i odpaliłem. Ku mojemu zdziwieniu, naprawdę - mapa zadziałała :) Dzięki 7-Zip'owi, można chyba odpalić wszystko. xD
EDIT5: Dzięki 7-Zip'owi można też otworzyć biblioteki .dll xD
Liczba modyfikacji: 5, Ostatnio modyfikowany: 25.11.2011, Ostatnio modyfikował: Huntik
Field /
Tylko pamiętaj, że cała gra raczej nie została napisana w notatniku ;) To, co widzisz, to na ile się orientuję, to wyniki końcowej pracy - silnik leży gdzie indziej i chyba go zmajstrowali w C/C++ (correct me if I'm wrong) :P
+++ Błąd Dzielenia Przez Ogórek. Zainstaluj Wszechświat Ponownie I Rebutuj.+++
Huntik /
Zauważyłem to już wcześniej. Znalazłem w którymś z plików takie coś:
Microsoft Visual C++ Runtime Library
Więc gra została skonstruowana na tymże języku. Jednak to - co tam widzę, nie jest tylko że 'Diplomacy' itp. są tam setki dziwnych znaków, których nie rozpoznaję, a to może dać mi pewną hipotezę - otworzyłem ten plik na złym programie, choć odczytuję z niego co nieco, to nie znaczy, że mogę grę kompletnie zmieniać. Musiałbym znaleźć program, którym mógłbym całkowicie otworzyć te pliki. Ale ja informatykiem nie jestem :D Możecie mnie skrytykować, ale przyznam się, że mam dopiero 13 lat, jednak w życiu nie liczy się wiek, a co innego. Niektórzy ludzie mają po 20 lat, a gadają nie do rzeczy i robią w ch*lerę błędów ortograficznych. Ja np. znam się lepiej na komputerach od mojego ojca :P Dobra, a teraz do rzeczy ... żebym mógł kompletnie zmodyfikować grę, potrzebowałbym pomocy któregoś z programistów 3DO, co jest raczej niemożliwe, bo nie wiem, czy któryś z nich jeszcze żyję xD Bo ta gra jest stara jak świat. Slava raczej by mi nie pomógł, po pierwsze - bo ma zapewne za dużo na głowie, jak to większość ludzi, po drugie - bo stworzył tylko system własnych skryptów i wprowadził je do gry. Pobawię się jeszcze trochę tymi skryptami, poszukam na internecie, może da się złamać ten kod, choć w to wątpie . . . z moim doświadczeniem xD
EDIT: Choć, z tego co się orientuję, 7-Zip rozkłada plik na 'czynniki pierwsze'. Np. w tym pliku .exe heroesa, nie ma nazw plików są tylko końcówki tego pliku, są tam pliki:
.text
.rdata
.data
.rsrc
.TEXT jest prawie zupełnie nie przydatny, w moim wypadku. Są tam tylko zaśmiecone znaki, których i tak nie rozpoznaję. Najważniejszym plikiem jest .data, jest tam wiele informacji, jest tam wiele plików .pcx itp. może tu chodzić o animacje, nie będę ich wymieniał, ale jest ich tam wiele, podam przykład:
BBA_seTe.pcx BBA_seVi.pcx BBA_seOr.pcx BBA_seGr.pcx BBA_seBr.pcx
Jak chcecie zobaczyć, ile tam naprawdę tego jest, zainstalujcie 7-Zipa, kliknijcie w plik Heroesa prawym przyciskiem i 7-Zip -> Otwórz archiwum oraz odpalić plik .data za pomocą notatnika.
Są tam też pliki .def. Może to być zdefiniowanie całego systemu i spakowanie wszystkich plików - że program ten ma uruchamiać te właśnie pliki itp. Mogło to by być serce całego systemu, ale mogłoby też to być jakieś g*wno, które nic nie definijuję . . .
EDIT2: Albo też ... w sumie to mogłoby być wszystko, zobaczmy np. na:
cvamp.def vamp cwrait.def wrth cwight.def wght czomlo.def zmbl czombi.def zomb
może to być zdefiniowanie animacji do odpowiednich instance'ów Monsterów itp.
EDIT3: Jak to nie jest silnik, to gdzie on może leżeć ? Skoro nie w .exe, ani data ( są tam tylko wszystkie odpowiednie skrypty na silniku stworzonym przez nich i animacje itp. ), to gdzie ? Biblioteki ? Huh ?
EDIT4:
http://www.youtube.com/watch?v=5fM8-88QW_g&feature=related
Tutaj widzę nowe jednostki, może - mod bazuję na WoG'u, ale są tutaj NOWE jednostki, raczej nie zamienione. Jak takie coś zrobić ? Może i jest to WoG, ale chciałbym po prostu NOWE jednostki stworzyć.
Liczba modyfikacji: 4, Ostatnio modyfikowany: 25.11.2011, Ostatnio modyfikował: Huntik
13 lat - gratuluję. Dawno nie było tu tak ciekawej i wartościowej dyskusji.
A co do "dziwnych znaczków" które widzisz - wiesz, na tym właśnie polega tzw. kod programu. Nie można go podejrzeć pierwszym lepszym edytorem. W końcu ktoś nad tym ciężko pracuje, kosztuje to miliony dolarów, więc tajemnicy trzeba strzec - są to w końcu czyjeś prawa autorskie i czyjaś własność. Inaczej każdy mógłby kopiować - czytaj kraść - kod źródłowy np. Windowsa, Leoparda, Photoshopa itp i sprzedawać jako własny.
Nie jestem pewien jak to jest w przypadku H3, ale raczej prawa autorskie dalej należą do obecnego właściciela spadku po 3DO. Nie jest to ani "open source" ani tym bardziej "abandon ware".
Pozdrawiam
Oto widzę ojca swego...
Oto widzę matkę swoją, moje siostry i braci...
Oto widzę długi szereg tych, którzy byli przede mną...
To ich zew by zasiąść wśród nich w Valhalli...
Gdzie bohaterowie żyją wiecznie!
Oto widzę matkę swoją, moje siostry i braci...
Oto widzę długi szereg tych, którzy byli przede mną...
To ich zew by zasiąść wśród nich w Valhalli...
Gdzie bohaterowie żyją wiecznie!
Huntik /
Spadku 3DO ? Myślałem ... że oni zbankrutowali, czy coś. Jeżeli chodzi o 'dziwne znaki', wiem co to oznacza. Zapewne, dałoby się to jakoś złamać ... kilkanaście lat po premierze Heroesa 3 jest, więc powstało dużo nowych programów od czasu premiery Heroes'a, to jest tak jak np. z paintem, zrób mapę bitową, zapisz ją i odtwórz notatnikiem :D Też wyjdą ci dziwne znaki . . . po prostu, chodzi tu o program odtwarzania i CO odtwarzamy. Jeżeli jednak odczytujemy chociaż trochę informacji z tego pliku NOTATNIKIEM, to oznacza, że chodzi tu o program tekstowy, jednak nie notatnik, on jest na to za prosty, musiałby odczytywać więcej znaków. Trzeba by było poszukać jakiegoś odpowiedniego programu do odtworzenia tego pliku.
Początek twoich słów odczytałem jako sarkazm("13 lat - gratulacje"), ale widzę, że jest tu faktycznie mało dyskusji i rozmów na tym forum :P
OK, zacznijmy od podsatw informatyki. Jeśli wszystkiego nie zrozumiesz - nie przejmuj się, to materiał na jakąś 2-3 klasę gimnazjum.
Nie ma czegoś takiego jak "główny skrypt gry".
Zacznijmy od różnicy między skryptem, a programem.
Skrypt jest zestawem poleceń dla interpretera - programu, który odczytuje polecenia w skrypcie i w zależności od nich - nakazuje komputerowi wykonać odpowiednią komendę. Kod skryptu jest zrozumiały dla człowieka. Skrypty można pisać m.in. w php, perlu, javascript, a także w językach stworzonych na potrzeby gier, jak ERM, czy Lua.
Program jest czymś bardziej skompikowanym. Najpierw pisany jest kod programu - jest to zestaw instrukcji zrozumiałych dla człowieka w językach takich jak C + +, java, czy Fortran. Aby program działał, kod programu musi zostać SKOMPILOWANY, a więc przetłumaczony z jednego z powyższych języków na język maszynowy. Tak właśnie powstaje wykonywalny dla komputera plik .exe.
W dodatku kompilacja jest procesem praktycznie JEDNOSTRONNYM. To coś jak robienie jajecznicy z jajek - w drugą stronę się nie da. Kodu maszynowego nie da się więc "złamać", ani "odtworzyć" czymkowliek i z powrotem przetłumaczyć na kod C + + (no - a przynajmniej nie przy realnym nakładzie pracy).
Kod maszynowy, a więc to, co widzisz po otwarciu pliku heroes3.exe jest - jak widzisz - niezrozumiały dla człowieka. Dlatego dopisanie do niego czegokolwiek, albo nawet zwykła modyfikacja jest czymś niebanalnym.
Rzeczywiście, są w nim zawarte pewne dane tekstowe, np. nazwy plików def, ale kod gry NIE ZAWIERA grafiki, animacji, czy dźwięku. Do pliku exe mogą być dołączone jakieś małe grafiki w postaci zasobów - np. ikony, ale nie są częścią kodu. To właśnie widzisz po "rozpakowaniu" pliku exe 7-zipem. Widzisz oddzielony kod od dołączonych do niego zasobów.
W praktyce jednak nie ma to większego znaczenia.
Kod źródłowy programu heroes3.exe - a więc coś zrozumiałego dla człowieka, co chielibyśmy mieć i móc to modyfikować - posiadali oryginalni autorzy Heroes III - grupa New World Computing (oraz ich wydawca - 3DO). Po bankructwie 3DO prawa do serii przeszły na Ubisoft - a wraz z tymi prawami najprawdopodobniej również kody źródłowe gier Heroes. Jednakże mimo kilku próśb w stronę Ubisoftu ze strony teamów odpowiedzialnych za WoG i Equilibris, Ubisoft nie udostępnił fanom kodów źródłowych H3 i H4.
Pozostaje więc tylko próbować zrobić jajko z jajecznicy, czyli mozolnie analizować kod maszynowy i próbować cokolwiek z tego zrozumieć ;P.
"Heroes III - Hero of Light mod" jest modem do WoGa i jeśli dobrze kojarzę, to "nowe" jednostki, które tam widzisz nie są wcale nowe, jak Ci się wydaje, ale zamieniają inne, istniejące w grze. Możesz miec co najwyżej złudzenie, że są nowe, jeśli nie znasz jednostek z WoGa - wówczas nie będziesz wiedział co zostało podmienione ;).
Neutralność nie zawsze jest możliwa...
Liczba modyfikacji: 4, Ostatnio modyfikowany: 25.11.2011, Ostatnio modyfikował: Acid Dragon
Huntik /
Wiele razy widziałem już ten kod maszynowy, ale nie byłem w stanie go zrozumieć . . . Powinni kiedyś stworzyć jakiś program zamieniający kod maszynowy na skrypty. Bo, skoro właśnie ludzie stworzyli komputery, maszyny itp. to skąd się wziął ten kod maszynowy ? Od tak ? Nie . . . ludzie też go stworzyli, tworząc maszyny itp. więc powinna być jakaś możliwość odwrócenia tego procesu. A z tego Ubisoftu, to są ... Skoro już minęło tyle czasu, i tyle ludzi już zna Heroes'a, powinni udostępnić jakieś narzędzia modderskie do tejże gry, być może, wiele ludzi by znowu wróciło do starego, dobrego Heroes'a. . . A ja to skryptów ERM nie jestem w stanie zrozumieć, dla mnie np. najbardziej zrozumiały jest język skryptów C++.
EDIT: A może dałoby się to jakoś zdekompilować ( http://pl.wikipedia.org/wiki/Dekompilacja ) ? Nie wiem, czy to coś da, bo odtworzy to tylko postać źródłową, ale z tego co czytam to ma to identyczne działanie.
EDIT2: Pooglądałem sobie kilka modów. Interesuję mnie jeden z nich - Grove, wiem, że jest to kolejna WoGifikacja, ale chcę wiedzieć, za jakie miasto byłoby to podmienione ? Bastion?
EDIT3: Zainstalowałem WoG'a, Polskie czcionki i spolszczenie do niego. Chciałem zobaczyć tego moda 'Grove'. Posiada on niestety słabe animacje, oraz bug ze strzelaniem Driady :/ Chciałem go jakoś odinstalować ... Czy jest taka możliwość ? Chciałbym odzyskać starą, dobrą Cytadelę (no, dla mnie nie jest zbyt dobra, ale klimatyczna do gry), no, niestety, i nie wiem jak to zrobić. Ma ktoś może jakiś link, gdzie jest instrukcja do odinstalowania tego moda, lub ew. wyłączenia go ?
EDIT4: Dobra, co do problemu wyżej - poradziłem sobie, jednak - musiałem 'reinstalnąć' całego H3, później WoG od początku instalacja, spolszczenie oraz polskie czcionki. Nigdy więcej nie będę instalował moda, którego nie da się od instalować, ORAZ - jeżeli mod będzie ZAMIENIAŁ cokolwiek w grze.
Liczba modyfikacji: 5, Ostatnio modyfikowany: 26.11.2011, Ostatnio modyfikował: Huntik
Huntik
Wiele razy widziałem już ten kod maszynowy, ale nie byłem w stanie go zrozumieć . . . Powinni kiedyś stworzyć jakiś program zamieniający kod maszynowy na skrypty. Bo, skoro właśnie ludzie stworzyli komputery, maszyny itp. to skąd się wziął ten kod maszynowy ? Od tak ? Nie . . . ludzie też go stworzyli, tworząc maszyny itp. więc powinna być jakaś możliwość odwrócenia tego procesu.?
Zrozumiesz to nieco później, ale generalnie chodzi o to, że w trakcie kompilacji pewne informacje są bezpowrotnie tracone. I jest to celowe. Komputerowi nie są potrzebne na przykład nazwy zmiennych, ale tylko adresy pamięci. Nie są mu też potrzebne instrukcje napisane w jakimś "ludzkim" języku, ale wywołania tzw. przerwań systemowych. Nie są mu potrzebne pętle, ale uwarunkowane instrukcje skoków do odpowiednich obszarów pamięci, itd.
Użyję analogii (nie do końca dokładnej, ale przymknijmy na to oko). Komputer na przykład nie "wie" co to jest mnożenie. Nie potrafi wykonać działania 6*4. Potrafi za to wykonać (6+6+6+6), więc w takiej formie zapisze sobie działanie w kodzie maszynowym. Ale w drugą stronę nie jesteśmy już w stanie tego odczytać. Nie wiadomo, czy (6+6+6+6) pierwotnie oznaczało 6*4, czy może 4*6, czy też (6+6)*2, czy 6+2*6+6, czy jeszcze coś innego.
Inaczej mówiąc - ułatwiając sprawę komputerowi, zapisując wszystko w takiej formie w jakiej potrafi to "zrozumieć", jednocześnie musimy zrezygnować z zapisów, które nam, ludziom ułatwiają życie.
Huntik
A z tego Ubisoftu, to są ... Skoro już minęło tyle czasu, i tyle ludzi już zna Heroes'a, powinni udostępnić jakieś narzędzia modderskie do tejże gry, być może, wiele ludzi by znowu wróciło do starego, dobrego Heroes'a. . . ?
Zgadzam się w pełni. Niestety uwolnienie kodu źródłowego fanom oznacza praktycznie oddanie całej gry. Każdy mógłby taki kod ściągnąć, a więc efektywnie - legalnie ściągnąć grę. A Ubisoft nie chce, żeby ktoś za darmo miał Heroes III, bo jeszcze jakieś pieniądze z tego ciągle czerpie.
Huntik
A ja to skryptów ERM nie jestem w stanie zrozumieć, dla mnie np. najbardziej zrozumiały jest język skryptów C.?
C jest językiem programowania, a nie skryptowym ;)
ERM jest trudny, rzeczywiście. Jest to podstawowy zarzut do tego języka. Slava tworzył go na bazie bezpośrednich poleceń do asemblera. Asembler jest językiem "pośrednim" - czymś pomiędzy językiem ludzkim, a maszynowym. Jest więc dość trudno zrozumiały.
Huntik
EDIT: A może dałoby się to jakoś zdekompilować ( http://pl.wikipedia.org/wiki/Dekompilacja ) ? Nie wiem, czy to coś da, bo odtworzy to tylko postać źródłową, ale z tego co czytam to ma to identyczne działanie.?
Dekompilacja to właśnie próba zrobienia jajek z jajecznicy.
Jasne, bardzo byśmy chcieli móc to zrobić, ale w praktyce najczęściej okazuje się to niemożliwe ze względu na wszystko, co powiedziałem wcześniej.
Huntik
EDIT2: Pooglądałem sobie kilka modów. Interesuję mnie jeden z nich - Grove, wiem, że jest to kolejna WoGifikacja, ale chcę wiedzieć, za jakie miasto byłoby to podmienione ? Bastion? ?
O Cytadeli już wiesz. I nie jest to tylko WoGifikacja. Jest to też wprowadzenie wielu zmian do samego Heroes III - np. podmiana oryginalnych jednostek cytadeli.
Huntik
EDIT3: Zainstalowałem WoG'a, Polskie czcionki i spolszczenie do niego. Chciałem zobaczyć tego moda 'Grove'. Posiada on niestety słabe animacje, oraz bug ze strzelaniem Driady :/ Chciałem go jakoś odinstalować ... Czy jest taka możliwość ? Chciałbym odzyskać starą, dobrą Cytadelę (no, dla mnie nie jest zbyt dobra, ale klimatyczna do gry), no, niestety, i nie wiem jak to zrobić. Ma ktoś może jakiś link, gdzie jest instrukcja do odinstalowania tego moda, lub ew. wyłączenia go ?
Niestety w chwili obecnej nie ma takiej możliwości. Jak mówiłem - mod jest modyfikacją nie tylko WoGa, ale i plików Heroes III i to modyfikacją bardzo poważną. Pozostaje reinstalacja gry.
Neutralność nie zawsze jest możliwa...
Huntik /
Dobrze, więc - zakańczam dyskusję ( :P ). Dokładnie kilka minut, lub minuta przed twoim postem - zedytowałem swojego, że rozwiązałem problem reinalując H3 i instalując od początku WoG'a itp. Na razie, będę czekał na byle najprostsze programy do tejże gry. I mam pytanie - Czy VCMI to będzie jakiś mod na WoG'a, czy co to będzie ? Nie uzyskałem odpowiednich informacji, do tego. Na razie, pogram sobie w WoG'a, później - spróbuje jakoś zrozumieć skrypty ERM, a co do C, wiem, pomyłka, modduję pewną grę na bazie C, bardzo podobne, i w niej - wiele ludzi nazywa te 'skrypty' po prostu 'skryptami', ponieważ są tam skrypty, nie umiem tego wytłumaczyć :P Po prostu - pomyliłem sobie pojęcie 'język programowania' z pojęciem 'skrypt'.
Pozdrawiam, Huntik2009.
PS. Nigdy więcej nie będę instalował modów ZAMIENIAJĄCYCH cokolwiek w grze.
Hobbicus /
Huntik
Czy VCMI to będzie jakiś mod na WoG'a, czy co to będzie ?
W założeniach ma to być stworzony na nowo plik .exe WoGa z całkowicie zrekonstruowanym kodem. Dzięki temu jego modyfikacja będzie zdecydowanie łatwiejsza - będziemy bowiem znali kod przed kompilacją.
Posługując się metaforą jajka i jajecznicy: to trochę tak, jakby zamiast grzebania w jajecznicy wziąć inne jajko, prawie że identyczne jak to na początku. :P
Huntik
PS. Nigdy więcej nie będę instalował modów ZAMIENIAJĄCYCH cokolwiek w grze.
Niepotrzebnie. Wystarczy, że będziesz tworzył kopie zapasowe gry. Na dobry początek proponuję skopiować h3sprite.lod i h3bitmap.lod z folderu data w jakieś bezpieczne miejsce. W taki sposób łatwo będziesz mógł sobie przywrócić wszystkie ważniejsze pliki w razie gdyby zainstalowany mod Ci się nie spodobał.
Tu był link, ale go teraz nie ma.
Odpowiadając na Twoje pytanie o VCMI mogę skorzystać z tego, że teraz już wiesz co to jest program i kod źródłowy programu :).
Autorzy VCMI powiedzieli sobie: OK, nie dostaniemy kodu źródłowego od Ubisfotu, ale czy jesteśmy skazani na próby dekompilacji i mozolnego modyfikowania kodu maszynowego? A może zróbmy inaczej - sami napiszmy nowy kod źródłowy. Przecież wiemy jak gra działa - wystarczy to teraz zaprogramować.
A więc VCMI jest próbą napisania kodu źródłowego od początku, od zera. Jeśli to się uda i uzyskany w ten sposób program będzie robił dokładnie to samo, co "heroes3.exe", to znaczy, że będziemy mogli właściwie robić wszystko - dodawać jednostki, zamki, czy artefakty (oczywiście przy założeniu, że będziemy mieć ich grafiki/dźwięki) i zaprogramować ich działanie. Ograniczeniem będzie właściwie już tylko znajomość języka C + +.
VCMI nie jest obecnie nijak związane z WoGem. W pierwszych dniach prac drużyny VCMI istniała pewna współpraca między grupami odpowiedzialnymi za oba projekty. Sam wprowadziłem lidera VCMI do WoG Teamu. Jednakże wkrótce WoG Team zaczynał "przechodzić na emeryturę" i efektywnie rozpadł się po odejściu Slavy, a jego miejsce zajęła nowa, rosyjskojęzyczna grupa CoreWoG. Od tego czasu nie są mi znane żadne dalsze kontakty twórców VCMI i WoGa.
EDIT: przepraszam, nie zauważyłem postu Hobbita ;)
Neutralność nie zawsze jest możliwa...
Liczba modyfikacji: 1, Ostatnio modyfikowany: 27.11.2011, Ostatnio modyfikował: Acid Dragon