Warsztat.GD

Społeczność => Compo i bitwy => Warsztat Summer of Code 2014 => Wątek zaczęty przez: Vipa w Lipiec 06, 2014, 16:07:50

Tytuł: Kupiec remake.
Wiadomość wysłana przez: Vipa w Lipiec 06, 2014, 16:07:50
Jest rok 1993. Zacny człek nazywający się Dariusz Bartoszewski, napisał sobie grę Kupiec, będącą następcą popularnego wcześniej Przemytnika. Drugi człek, mam nadzieję także zacny ;), czyta sobie opis gry w Top Secret

(http://i57.tinypic.com/166ao90_th.jpg) (http://oi57.tinypic.com/166ao90.jpg)

i mówi sobie - Muszę mieć to na Amstrada CPC! No i zaczęło się żmudne rozrysowywanie grafiki i bieganie do kolegi, z którym daną grę kupiliśmy, by badać zasady działania i kopiować jeszcze więcej grafiki ;). A były to czasy, gdy o teksturach jeszcze nikt z okolicznych mi koderów nie słyszał i trzeba było składać wszystko z wpisywanych, do komendy SYMBOL, danych. Z tych kawałeczków 8x8px powstawał świat gry.

Po dwudziestu kilku latach, drugi ze wspomnianych zacnych ludzi ;), postanowił zrobić remake od nowa. Tym razem na PC.
Niestety Atari kumpla nie dało się reanimować, moje komuś oddałem, więc za pomocą emulatora uruchamiam sobie gierę:

(http://oi58.tinypic.com/2l8kty.jpg)

Nooo i tu następuje problem. Zawiesza się to to, wywala w pinechę, ale jakoś tam prace idą:

(http://oi60.tinypic.com/25qabh5.jpg)

Na chwilę obecna mam mapę, jedno miasto, targowisko i karczmę. Mam też już całość grafiki (tym razem jednak użyłem tekstur :D) i dźwięk. Tu celowo liczba pojedyncza bo dźwięk w oryginale był jeden ;).


Celem jest remake, a więc oczywiście odwzorowanie gry w takim stanie, w jakim ona wyglądała i działała na małym Atari. Oczywiście literówki (których jest cała masa, ale gra powstała w czasach, gdy patchy nie dało się tak łatwo wypuścić :D), błędy logiki i grafiki zostaną poprawione.
Dodam też opcję zapisu i wczytu stanu gry, opcję rozpoczęcia nowej gry, zmianę rozmiaru okna z grą, obsługę pada, joya i co tam jeszcze ludzkość do sterowania wymyśliła.

Tak więc założenia są znane. Lepsze są problemy. Napisać to na double bufferingu to masakra. Program napisany strukturalnie i widać to na każdym kroku. Wiem, brzmi idiotycznie, ale dopóki nie zacząłem pisać to też myślałem - co tu może być skomplikowanego. O wiele szybciej bym to wklepał do Atari ;).
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: koirat w Lipiec 06, 2014, 16:21:40
Cytuj
Nooo i tu następuje problem. Zawiesza się to to, wywala w pinechę, ale jakoś tam prace idą:
Może za mało ram-u ;)

Życzę powodzenia, choć rzeczywiście nie rozumiem dlaczego robi to różnice że program został napisany strukturalnie. W ogóle gra wygląda jak by ją można było napisać w WinForms za pomocą customowych okienek.
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: zx81 (taxi_driver) w Lipiec 06, 2014, 16:29:23
"atarowca wal z gumowca"
Jezeli jestes rocznik 80 to ten remake jest dla Ciebie wehikulem czasu do 13 letniego programisty. Czy tamten remake zakonczyliscie?
Bede kibicowal Twojemu projektowi. Z checia zagram.
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Vipa w Lipiec 06, 2014, 16:32:31
@koirat: to prawie jak korzystanie z silnika! Fuj! ;)

@zx81: trochę starszy jestem, ale niewiele :). Tak, tamten... port w sumie, ukończyłem bez problemu. Do tej pory zastanawiam się skąd miałem tyle cierpliwości by wklepać ponad 200 znaków binarnie :D.
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: matheavyk w Lipiec 06, 2014, 19:00:22
Jeśli to nie zbieg okoliczności i natchnęła Cię do tego moja skromna wersja tej gierki (choć ja akurat wzorowałem się na tej wydanej na pc), to cieszę się niezmiernie :). Byłbyś kolejną osobą, którą do tego popchnąłem, bo ostatnio 20+ osób "musiało" przeze mnie pisać swoją wersję tej gierki na zaliczenie baz danych na studiach. Im więcej tym lepiej! Powodzenia

Oczywiście moja wersja nie umywa się do tego, co widać na screenach (nie tylko korzystałem z silnika, fuj, ale był to Unity! ;) ).
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Vipa w Lipiec 06, 2014, 21:27:35
@matheavyk: prawdę pisząc to nie znam twojej wersji, ale daj linka bardzo proszę! Dariusz sprzedał papiery (http://atarionline.pl/v01/index.php?subaction=showfull&id=1199669767&archive=&start_from=&ucat=5&ct=wywiady) do innych, i trudno mi wyciągnąć bez tych papierów całościowe wnioski na temat systemu zachowań, może masz to rozwiązane w oparciu o te papiery?
Ave remejki!

Heh, znalazłem! W sumie to zbieg okoliczności. Ty widzę wziąłeś za podstawę wersję nowocześniejszą, mnie natomiast urzekła na Atarowa, grałem w nią z pół roku kiedyś. Znakomita pozycja. Teraz pewnie większość osób pominęła by ją bez echa, ja zawsze lubiłem grać w jeden tytuł miesiącami i masterować. Dalej mi to zostało. W sumie jedna z tych gier, które napisałem dla siebie i grałem jak maniak.
Tytuł jest tak skonstruowany, że mimo napisania gry, można grać w nią samemu. Full respekt dla twórcy.

Jest jeszcze jeden tytuł, który zamierzam zremejkować - Hamurabi. Też bardzo fajna pozycja. Można się zatracić jak ktoś lubi tego typu pozycje.
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: MDW w Lipiec 06, 2014, 21:31:52
A widziałeś "Kupca" w wersji dla Amigi Classic (OCS)?
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Vipa w Lipiec 06, 2014, 21:43:43
Hmm, robiłem kiedyś sam w Amosie na Amigę Kupca. Ale nie wyszedł spoza fazy "mam na dyskietce" ;).

Daj linka proszę!
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: matheavyk w Lipiec 06, 2014, 22:13:34
@Vipa, nie mam dostępu do "papierów", wrzuciłem po prostu trochę losowości + małe reagowanie na ilość towaru w miastach, żeby chociaż trochę sensownie to wyglądało. Z tego co pamiętam, PC-towa wersja gry wyglądała na dość losową. Ja przynajmniej nie widziałem w niej nic więcej.

Nie dziwię się, że urzekła Cię wersja, którą pokazujesz ;). Ja akurat zagrywałem się w PC-tową (muzyka była super: http://w333.wrzuta.pl/audio/0wzbJOsTsNM/kupiec_pc_soundtrack_timsoft (http://w333.wrzuta.pl/audio/0wzbJOsTsNM/kupiec_pc_soundtrack_timsoft) ). A gdybym umiał w tamtych latach sam napisać taką grę (przede wszystkim poprawić sporo błędów, które miała), to z pewnością napisałbym ją i sam w nią grał, tak jak Ty :).
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: MDW w Lipiec 06, 2014, 22:30:21
A choćby tutaj są trzy screenshoty:
http://hol.abime.net/4027/screenshot
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Vipa w Lipiec 06, 2014, 23:39:58
Łolala, to jak zupełnie inna gra z tego co czytam w instrukcji. W sumie to z tego co widzę to ludzie często mylą te wersje, tricki do nich itd.
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Interceptor w Lipiec 07, 2014, 00:36:47
Kiedyś grało się w takie gry maniakalnie, dlatego w tego remake`a też chętnie zagram.

Przy okazji możesz odświeżyć drugą perełkę z małego Atari- Kolony :) Obie gry chyba działają na tym samym "silniku".
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Krzysiek K. w Lipiec 07, 2014, 01:08:20
Cytuj
Napisać to na double bufferingu to masakra.Napisać to na double bufferingu to masakra.
Bym powiedział, że złe podejście. Jak już chcesz na OpenGL z teksturami, to możesz zrobić jeden render target i po nim mazać ile wlezie.

No i warto pamiętać, że SwapBuffers i Peek/Get/Translate/DispatchMessage nie muszą być wołane tylko z jednego miejsca w kodzie. Możesz sobie przecież wywrócić pętlę główną bebechami na zewnątrz, zrobić funkcję typu RefreshScreenAndServiceAllMessages i wołać ją z 500 różnych miejsc i małych pętelek w kodzie (oczywiście owa funkcja wywalała by rendertarget na ekran). :)
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Vipa w Lipiec 07, 2014, 07:51:36
Możesz sobie przecież wywrócić pętlę główną bebechami na zewnątrz, zrobić funkcję typu RefreshScreenAndServiceAllMessages i wołać ją z 500 różnych miejsc i małych pętelek w kodzie (oczywiście owa funkcja wywalała by rendertarget na ekran). :)
W sumie to tak zrobiłem. W jednym miejscu wszystko i tylko wywołuję koniec pętli w różnych miejsc w kodzie.

Z ciekawostek:

Sporo w tej grze jest czekania na fire, wyborów opcji itd. gdzie miga w rogu gwiazdeczka informująca o tym, że dane okno czeka na fire, dlatego trzeba ciągle dany fragment odświeżać.
Teraz pod koniec każdej z tych mniejszych pętli zawartość ekranu jest łapana do tekstury. Na początku nowej pętli ta tekstura jest wyrzucana na ekran i dorysowywane są zmiany. I tak w koło. Cała gra renderzy się w rozdzielczości Atari i tylko dla gracza obraz jest rozciągany do wielkości okna. Potem może dojdzie jakiś shader imitujący uwalony monitor CRT :).

Chciałbym jakoś symulować prędkość rysowania małego Atari. W tej grze trudno niekiedy się pokapować, które "okno" jest aktywne, jeżeli nie zachodzi na poprzednie. Na Atari czy emulatorze widać, które okno rysowało się ostatnie, bo trwa to około sekundy. To jak uczenie się od nowa - nie ma znaczenia fps, nie ma sensu wszystkiego rysować co ramkę itp. Istny powrót do przeszłości :).

Żeby bardziej symulować sobie tamten feel kodowania, napisałem własne instrukcje z Amstrada: Locate, Print, Ink, Border. Oczywiście symuluję też tryb tekstowy. Pozycja 1, 1 jest w lewym - górnym rogu ekranu. Okno ma wielkość Mode 1, a więc 40x24 znaki. Jakby ktoś nie wiedział o czym piszę - Locomotive Basic (http://www.cpcwiki.eu/index.php/Locomotive_BASIC#PRINT.5B.23.E2.80.B9stream_expression.E2.80.BA.5D.5B.2C.5D) z Amstrada CPC. Choć ja wolę zalaną herbatą, pożółkłą i poprzecieraną instrukcję papierową ;).

Cała gra operuje na graficzkach 8x8 px, dlatego chciałem jeszcze dopisać komendę Symbol. Czyli w sumie jedna tablica 255 znaków wpisanych w listę wyświetlania i wywoływać tak jak na Amstradzie. Dałoby radę, ale kod rozrósł by się niemiłosiernie. Ale np. font jest wczytywany z tekstury i pakowany właśnie do listy. Podobnie jak w tutorialu NeHe (http://nehe.gamedev.net/tutorial/bitmap_fonts/17002/).

Jeszcze gdyby dało się okroić zajętość pamięci do <128 KB... To lekki szok, gdy tego typu gra zabiera 30 MB RAM. Fakt faktem - mógłbym okroić używane liby.
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Nest w Lipiec 09, 2014, 00:50:18
na comadore w to grałem, trochę inaczej to wyglądało
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Vipa w Lipiec 09, 2014, 07:46:19
Masz rację. Pierwotnie gra powstała na małe Atari i wyglądała tak jak na screenach wyżej.
Wersję na Atari wydało ASF a wersję na C64 TimSoft. Wyglądała tak:
(http://www.mobygames.com/images/shots/l/640466-kupiec-commodore-64-screenshot-gossips.png)
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Nest w Lipiec 10, 2014, 15:42:15
Od kupca bardziej wolałem lazarusa, ale to zupełnie dwa różne gatunki. Pamiętam jak za smroda grałem jeszcze w taką grę gdzie się zbierało po mapie części do samochodu i platformówkę z jakimiś dziwnymi trolami + giere której zawsze się bałem zaczynała się białym ekranem i jakimś zielonym goblinem.
(http://pics.mobygames.com/images/covers/large/1271177142-00.jpg)
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Vipa w Lipiec 17, 2014, 13:59:16
Jest już pierwsza wersja do pobrania i pogrania :).

Pobierz (https://www.dropbox.com/s/nwd7w30dh4gp5e4/Kupiec.zip)

(http://i58.tinypic.com/eomcn.png)

Przy okazji małe ogłoszenie: jeżeli ktokolwiek chciałby pomóc w remejku i wykonać nową grafikę do gry w kolorze, to nie ma na co czekać! :) Jak widać nie ma tego dużo, więc jeżeli ktoś lubi pixelizować małe graficzki to czekam na kontakt.
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Chimerian w Lipiec 24, 2014, 18:09:37
Kiedyś grało się w takie gry maniakalnie, dlatego w tego remake`a też chętnie zagram.

Przy okazji możesz odświeżyć drugą perełkę z małego Atari- Kolony :) Obie gry chyba działają na tym samym "silniku".

Za Kolony to swego czasu (jakieś 10 lat temu) ja się zabrałem ;) Niestety nie udało mi się projektu ukończyć (a byłem całkiem blisko)
http://chimerian.net/index.php?page=genus&language=PL (http://chimerian.net/index.php?page=genus&language=PL)

To była gra przy której traciłem całe dni grając ze znajomymi :P
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Vipa w Lipiec 24, 2014, 19:55:27
Dlaczego nie udało ci się dokończyć? Jaki był problem?

Tak, tego typu gry wciągają jak odkurzacz. Warunkiem jest dać im szansę. Teraz, po latach, patrząc na pierwszy ekran widzi się mało możliwości, niski poziom skomplikowania gry. Mi się też tak zdawało. Zagłębiając się jednak niejako z musu, szybko okazało się, że myliłem się niemiłosiernie :).
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Chimerian w Sierpień 01, 2014, 02:33:33
Dlaczego nie udało ci się dokończyć? Jaki był problem?

Młody wtedy byłem i zabrakło mi cierpliwości ;) Z tego co pamiętam QBasic miał jakieś ograniczenia co do ilości obsługiwanego RAMu (chyba 64 KB), co stanowiło pewną blokadę. Dlatego zmieniłem kompilator na FreeBasic i razem z kumplem przenieśliśmy kod z QB. Niestety brak czasu spowodował że nie ukończyliśmy projektu. W sumie to teraz trochę żałuję, bo było całkiem blisko :P Zamiast przenosić kod trzeba było dokończyć grę na QB.
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Vipa w Październik 10, 2015, 17:52:55
Updejcik projektu. Poza widocznymi zmianami graficznymi jak np. depixelizacja, zająłem się obniżeniem wymagań gry. Wiem jak to brzmi w przypadku gry bądź co bądź "tekstowej", ale temat nie był wcale taki prosty. Teraz gra w końcu rusza nawet na 32 bitowym XP na bardzo słabym intelu. Niżej pewnie też gra się uruchomi raczej bez problemów, ale nie mam jak przetestować. Wymagania zostały zmniejszone z ogl 2.0 do 1.1, choć na tym ostatnim kilka funkcji graficznych nie będzie dostępnych.

Rozbudowane zostało także menu. Dodany język angielski, drugi krój czcionki oraz opcje graficzne. Można oczywiście zapisać i wczytać grę, choć musiałem kilka rzeczy zabezpieczyć by po wczycie cały czas wyskakiwały takie same ceny itp. by nie oszukiwać :).

Gdyby ktoś miał problemy z uruchomieniem, to polecam tryb administratora. To dlatego, że gra nie zapisuje plików poza własnym folderem by nie robić graczom bordello, sam tego nie cierpię.
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Kos w Październik 10, 2015, 22:38:44
Teraz gra w końcu rusza nawet na 32 bitowym XP na bardzo słabym intelu. Niżej pewnie też gra się uruchomi raczej bez problemów, ale nie mam jak przetestować. Wymagania zostały zmniejszone z ogl 2.0 do 1.1

Szkoda że termin "reverse engineering" znaczy już coś zupełnie innego, bo pasowałby tu jak znalazł :).
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Vipa w Październik 11, 2015, 01:11:41
Wiesz co, jestem w stanie od ręki napisać to na XL/XE jak i na Amstrad CPC. Dalej nie jest to reverse engeneering, ale frajda co nie miara.
Sama gra jest przeniesiona jeden do jednego, plus kilka dodatków. W pamięci 64kb bym jej nie zmieścił w takiej formie w jakiej jest po moich zmianach, ale podstawkę bez problemu.
Tytuł: Odp: Kupiec remake.
Wiadomość wysłana przez: Vault 11th w Październik 11, 2015, 16:29:28
Niezła robota! Pamiętacie "Supremacy"? Może ten tytuł ktoś zremakuje? :)