Petycja do Epsiteca |
Autor |
Wiadomość |
Programerus
Jestem Bogiem
Pomógł: 2 razy Wiek: 22 Dołączył: 28 Mar 2009 Posty: 188 Skąd: Kołobrzeg
|
Wysłany: 05-04-2009, 20:20
|
|
|
Poczytałem trochę i kodu źródłowego z pliku .exe po prostu nie da się wyciągnąć. Dlatego pytam się, czy ktoś wie w jakim języku napisany był Colobot? |
_________________ "Tylko bogaci mogą mówić mi, że pieniądz nie daje szczęścia" |
|
|
|
|
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 05-04-2009, 21:31
|
|
|
Hmm..... w CBOT? |
|
|
|
|
Programerus
Jestem Bogiem
Pomógł: 2 razy Wiek: 22 Dołączył: 28 Mar 2009 Posty: 188 Skąd: Kołobrzeg
|
Wysłany: 05-04-2009, 21:38
|
|
|
Taa... Colobot przechodzi z gry do reala |
_________________ "Tylko bogaci mogą mówić mi, że pieniądz nie daje szczęścia" |
|
|
|
|
DemoLisH
Zbanowany
Wiek: 24 Dołączył: 20 Kwi 2008 Posty: 273 Skąd: Poznań
|
Wysłany: 05-04-2009, 22:47
|
|
|
Programer napisał/a: | Poczytałem trochę i kodu źródłowego z pliku .exe po prostu nie da się wyciągnąć. Dlatego pytam się, czy ktoś wie w jakim języku napisany był Colobot? |
na 99.99% w c++ |
_________________ Compiling [Gość.exe]...
Zapraszam na grę zwaną League of Legends:
http://signup.leagueofleg...e98cec278372604 |
|
|
|
|
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 06-04-2009, 08:24
|
|
|
To w C++ da się gry robić?(pytam sie bo się nie znam) |
|
|
|
|
Programerus
Jestem Bogiem
Pomógł: 2 razy Wiek: 22 Dołączył: 28 Mar 2009 Posty: 188 Skąd: Kołobrzeg
|
Wysłany: 06-04-2009, 13:12
|
|
|
W C++ da się robić prawie wszystko. Zresztą Epsitec rzeczywiście tworzył Colobota w C++ bo pisało w tej historii firmy, że przerzucają się z języka C na C++ |
_________________ "Tylko bogaci mogą mówić mi, że pieniądz nie daje szczęścia" |
|
|
|
|
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 06-04-2009, 13:15
|
|
|
To znaczy, że możemy dekompilować exe'ka, i brać się za C2? Czy o to chodzi z tym kodem źródłowym? Bo już się całkiem pogubiłem |
|
|
|
|
Programerus
Jestem Bogiem
Pomógł: 2 razy Wiek: 22 Dołączył: 28 Mar 2009 Posty: 188 Skąd: Kołobrzeg
|
Wysłany: 06-04-2009, 13:32
|
|
|
1. Pliku .exe nie da się zdekompilować
2. Kod źródłowy moglibyśmy dostać tylko od manty lub epsiteca.
3. Czyli rozwiązanie jest jedno. Jeśli chcemy zrobić coś nowego to musimy napisać Colobota od nowa. |
_________________ "Tylko bogaci mogą mówić mi, że pieniądz nie daje szczęścia" |
|
|
|
|
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 06-04-2009, 14:41
|
|
|
Czyli zostajemy przy bawieniu się userami. |
|
|
|
|
adiblol
Administrator forum FLOSS FTW!
Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy Dołączył: 21 Kwi 2008 Posty: 1313 Skąd: pokój odsłuchowy
|
Wysłany: 06-04-2009, 14:41
|
|
|
Programer napisał/a: | 1. Pliku .exe nie da się zdekompilować |
Tu się nie zgodzę. Plik exe MOŻNA dekompilować, tylko z czytelnością kodu będzie gorzej (będą identyfikatory typu "local002" zamiast nazw zmiennych, funkcji itp.).
Można także deasemblować, czyli przekształcać kod wykonywalny (ciąg instrukcji dla procesora) na postać czytelną dla człowieka (zamiast np. "89 0d 04 31 55 00" jest "mov [00553104],ecx", a logiki to nie zmienia)
Deasemblacja jest jednocześnie prosta do przeprowadzenia i daje duże możliwości, np. można dodawać nowe funkcje do robotów, z tym że dłubanie tego w asemblerze jest "trochę" żmudne. Najambitniejsi mogą spróbować stworzyć nowego (!) robota, nie jest to niemożliwe.
Możliwe jest też napisanie kodu w dowolnym języku, a następnie kompilacja do asemblera lub nawet dostarczenie pliku obiektowego (obj), którego można przy pomocy dyrektywy języka asemblera dołączyć do programu, a linker odwali brudną robotę (złączenie wszystkiego do kupy).
Poczytać o reverse engineeringu, może się nam da coś zrobić.
Bardziej wierzę w dostęp do pamięci procesu, z czego korzystają trainery. Dzięki trainerom prawdopodobnie da radę zrobić multiplayera a nawet proste modyfikacje. Dzięki dostępowi do pamięci procesu da się też "wstrzyknąć" kod, uprzednio napisany w DOWOLNYM języku (np. C++, Delphi)
Dużo się napisałem, mam nadzieję że przybliżyłem kwestię mniej zorientowanym (np. colobotwymiiata).
Programer napisał/a: | 2. Kod źródłowy moglibyśmy dostać tylko od manty lub epsiteca. |
Tylko? Jeszcze możemy od hackerów, którzy się włamią i ściągną
Ale praktycznie tylko. Bo kod źródłowy uzyskany przy pomocy dekompilacji to nie to samo, co oryginalne źródła. Tak to jest, jak jakieś nooby (w tym przypadku Epsitec) chcą zarobić na programie i nie publikują na GPL-u.
Programer napisał/a: | 3. Czyli rozwiązanie jest jedno. Jeśli chcemy zrobić coś nowego to musimy napisać Colobota od nowa. |
Myślałem nad tym, jest nawet post w dziale "większe projekty" pt. "nowy colobot od nowa".
Możemy tworzyć nowe misje, zmieniać tekstury, zmieniać modele, ale nie możemy najważniejszego - zmieniać funkcji robotów |
_________________ 1Tbps Project && Telecomix Network
|
|
|
|
|
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 06-04-2009, 15:01
|
|
|
adiblol napisał/a: | Dzięki dostępowi do pamięci procesu da się też "wstrzyknąć" kod, uprzednio napisany w DOWOLNYM języku (np. C++, Delphi) |
Czyli co? Wstawić mrówkę? Usunąć obiekt z poziomu trainera?
adiblol napisał/a: | Dzięki trainerom prawdopodobnie da radę zrobić multiplayera... |
Prawdopodobnie. To słowo mnie dobija. Ale, Multiplayer to byłoby o krok bliżej do C2. I na pewno zrobiłby niemniejszą "karierę".
PS.: Przepraszam za moje niezorientowanie. |
|
|
|
|
adiblol
Administrator forum FLOSS FTW!
Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy Dołączył: 21 Kwi 2008 Posty: 1313 Skąd: pokój odsłuchowy
|
Wysłany: 06-04-2009, 15:07
|
|
|
Wstrzyknąć kod, nie dane!
Czyli można np. napisać funkcję, która spowoduje, że Królowa Obcych będzie strzelać materią organiczną , wprowadzić ją do pamięci Colobota, zamieścić w odpowiednim miejscu odwołanie do niej w postaci kodu asma "call ..." i będzie działać.
Cytat: | Wstawić mrówkę? Usunąć obiekt z poziomu trainera? |
TAK! To nawet bez wstrzykiwania kodu! Wystarczy zmienić dane dynamiczne, które są w pamięci Colobota. Próbowałem zmieniać osłonę człowieka i mi wyszło, dlaczego więc nie dodawać obiektów do planszy? Wystarczy zaalokować pamięć, wwalić do niej dane obiektu i dodać wskaźnik do listy obiektów. Tylko nie da się TWORZYĆ NOWYCH OBIEKTÓW np. Robala Pochłaniacza czy Króla Obcych. |
_________________ 1Tbps Project && Telecomix Network
|
|
|
|
|
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 06-04-2009, 15:26
|
|
|
To super! Można więc robić multiplayera(chyba). Ale najpierw chyba lepiej zrobić te trainery żeby działały na każdym komputerze, i żeby miały te funkcje(dodaj\usuń obiekt). A jakby jeszcze zrobić sterowanie tymi funkcjami z poziomu programu, toby już był prawie Colobot 2! |
|
|
|
|
adiblol
Administrator forum FLOSS FTW!
Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy Dołączył: 21 Kwi 2008 Posty: 1313 Skąd: pokój odsłuchowy
|
Wysłany: 06-04-2009, 16:34
|
|
|
nawet można nowe obiekty tworzyć, ale badania które by to umożliwiły by długo trwały. |
_________________ 1Tbps Project && Telecomix Network
|
|
|
|
|
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 06-04-2009, 17:56
|
|
|
Ale jakby w końcu dały rezultat, jestem za. Ale na razie lepiej weźmy się za jakieś łatwiejsze rzeczy np. trainery lub Multiplayer.
PS.: Ktoś coś robi w kierunku tych trainerów na wszystkich kompach? |
|
|
|
|
|