[#1] [asm] pierwsza gra WIP
Hej. Zacząłem dłubać w asemblerze i pomyślałem, że założę wątek o postępach w nauce. Oczywiście w ramach nauki chcę finalnie napisać grę, ale będzie to pewnie wątek-niekończący-się-tasiemiec, takie story jak o Magazynierze, albo o Blasku :)

Padło na kategorię 'wyścigi', bo mam nadzieję na jak najprostszą logikę gry. Celem jest dobra płynność na A500.

Na pierwszy ogień poszedł Copper. Jeszcze muszę nim zrobić parę rzeczy, ale generalnie prawie kończę zabawy Copperem i następnie chcę dodać znaki drogowe i rywali, więc ogarnianie Blittera. Potem dźwięki, itd. Póki starczy zapału.

Poniżej wynik początków nauki. Da się dżojstikiem przyspieszać/zwalniać i ruszać pojazdem. Grafika do testów pożyczona z internetów. Jeśli ktoś będzie zapuszczał na prawdziwej amidze, to będę wdzięczy za info czy wszystko działa jak na winUAE i się nie rozkracza. Wyjście klawiszem myszki.

>> Link do ADFa







Ostatnia aktualizacja: 07.08.2021 19:36:20 przez mastaszek
6
[#2] Re: [asm] pierwsza gra WIP

@mastaszek, post #1

Mnie się podoba. Bardzo szybko zasuwa. W winuae 7MHz chodzi płynnie. Tam w tle te niebieskie paski to efekt Coppera czy Rainbow?
[#3] Re: [asm] pierwsza gra WIP

@tukinem, post #2

Efekt rainbow robiony copperem :) W zasadzie wszystko co widać na ekranie jest robione copperem.

Ostatnia aktualizacja: 07.08.2021 20:14:47 przez mastaszek
[#4] Re: [asm] pierwsza gra WIP

@mastaszek, post #3

Fajnie to wygląda. Amos by nie dał rady chyba wygenerować grafiki w takiej płynności. I jeszcze te przesuwające się domki :) A to jest zrobione na dwóch ekranach (góra i dół) czy na jednym?
[#5] Re: [asm] pierwsza gra WIP

@tukinem, post #4

Na dwóch ekranach 8-kolorowych, ale nie góra i dół, tylko w Dual Playfield, czyli jeden ekran nad drugim. W sumie 6 bitplanów.
[#6] Re: [asm] pierwsza gra WIP

@mastaszek, post #5

Aha no to Amos już nie dałby rady odpalić Dual Playfield na 8 kolorowych ekranach :)

P.S. Przy skręcaniu możesz dać inną grafikę, jak motocykl się pochyla.
[#7] Re: [asm] pierwsza gra WIP

@tukinem, post #6

Docelowo to droga będzie się przesuwać przy skręcaniu, a pojazd będzie centralnie na środku i będzie się pochylał, ale będzie cały czas w tym samym miejscu.

Dual Playfield jest dokładnie ten sam co "w amosie", czyli ekran pierwszoplanowy ma 8 kolorów (kolor 0 jest przezroczysty), i ekran drugoplanowy też ma 8 kolorów.
[#8] Re: [asm] pierwsza gra WIP

@mastaszek, post #7

W Amosie z tego co mi się kojarzy to max 4 kolorowy ekran może być przy Dual Playfield
[#9] Re: [asm] pierwsza gra WIP

@tukinem, post #8

Nie, mogą być dwa ekrany po 8 kolorów każdy. W sumie 16 kolorów (tak naprawdę 15, bo bez przezroczystego).
[#10] Re: [asm] pierwsza gra WIP

@mastaszek, post #1

Jeśli ktoś będzie zapuszczał na prawdziwej amidze, to będę wdzięczy za info czy wszystko działa jak na winUAE i się nie rozkracza.

Wszystko działa jak należy.OK
1
[#11] Re: [asm] pierwsza gra WIP

@mastaszek, post #1

Hej, mam do Ciebie pytanie: czemu poszedłeś od razu w asembler, a nie w język C, jak planowałeś?
[#12] Re: [asm] pierwsza gra WIP

@mastaszek, post #1

Ja również mogę się wyrazić pozytywnie. Kontynuuj, bo może coś ciekawego z tego wyjdzieszeroki uśmiech
[#13] Re: [asm] pierwsza gra WIP

@Hexmage960, post #11

@mailman: dzięki!

@hex: bo sobie nie radziłem z zainstalowaniem środowiska pod C, a ASMONE mi ruszył od strzału :) Podoba mi się ta 'surowość' asemblera i choć to początki, to już wiem, że to jest to i jak coś ustukam i działa, to daje mi niesamowitą frajdę.

Obecnie coś mi się w kodzie kaszani i mam przeczucie, że chodzi o włażenie na jakieś zajęte obszary pamięci. Chyba muszę zacząć korzystać z funkcji alokowania pamięci hehe
2
[#14] Re: [asm] pierwsza gra WIP

@mastaszek, post #1

Ciekawe, czy jakbyś zrobił horyzont trochę niżej jak w Lotus 2, czy to miganie linii byłoby mniej zauważalne. W tle przesuwająca góra znika po lewej stronie w pewnym momencie, tak jakbyś przestał ją blitować za wcześnie.
[#15] Re: [asm] pierwsza gra WIP

@san_u, post #14

Znikająca góra już poprawiona. Obniżenie horyzontu to już kosmetyka i nią i oprawą graficzną będzie czas się zająć dopiero jak już mechanicznie będzie wszystko działać. Dzięki za uwagi OK
[#16] Re: [asm] pierwsza gra WIP

@mastaszek, post #15

Nie ma problemu, szybko Ci to idzie jak na początkujacego, trzymam kciuki.

A jeśli chodzi o C, to na windows VBCC ma instalator i jest też toolchain Bartmana dla visual studio code, którego instalacja sprowadza się do jednego kliknięcia (w tym powstało np. Tiny Bobble, jest tam ciekawy wizualizator przebiegu programu w ramce, widać co robi procesor i blitter w danej chwili, nie wiem czy jest to w 100% dokładne, ale zachwyt Pinka sugeruje, że jest wielce użyteczne).

Ostatnia aktualizacja: 14.08.2021 14:09:09 przez san_u
[#17] Re: [asm] pierwsza gra WIP

@san_u, post #16

Jeśli się wszystko pisze samemu bez użycia biblioteki standardowej, to wtyczka Bartmana nie ma sobie równych - właśnie przez to że można skakać po kodzie linia po linii i wygodnie profilować kod. Używam i polecam - tylko koniecznie najnowsza wersja "preview" z githuba bo jest milion razy bardziej dopracowana. Pewnie też można zmusić ją do działania z asm, ale tego nie ćwiczyłem.

VBCC nie polecam - na początku daje radę, ale potem zaczynają się jakieś dziwne zachowania i okazuje się że kompilator produkuje wadliwy kod. Podczas OpenFire miałem taki przypadek, zmieniłem na kompilator Bebbo i ruszyło. Swoją drogą, bebbokompilator też już ma instalator.

Ostatnia aktualizacja: 14.08.2021 20:26:32 przez teh_KaiN
[#18] Re: [asm] pierwsza gra WIP

@mastaszek, post #1

Takie cos napisane z marszu ? Zazdraszczam !! OK

Jak na koncept gry wyglada dobrze, no i ta plynnosc... odrazu widac, ze to nie AMOS.
Aczkolwiek wyscigi to nie taka prosta rzecz, obys to jakos ukonczyl ok, racja

W ogole szacun, ze podjales sie kodowania w asm, to nie jest jezyk dla kazdego.


p.s.
tylko plizzzz !!!
nie sluchaj glosu szatana i nie dotykaj zadnego C, bo nic z tego nie bedzie. Amigowe C to pic na wode i lep na muchy. Do tej pory nie pojawila sie absolutnie zadna fajna gra napisana w C... a tyle mialo byc tych hiciorow, bo rzekomo C wymiata predkoscia. Ta... sraly muchy bedzie wiosna!

prawdziwa droga do sukcesu, to AMOS->BlitzBasic-> Asembler
3
[#19] Re: [asm] pierwsza gra WIP

@selur, post #18

Nie miecz czyni rycerza, w C trzeba wiedzieć co się robi ze sprzętem tak jak w assemblerze, dlatego ludzie, którzy jednocześnie uczą się tego języka nie przynoszą dobrych owoców i w assemblerze też by nie zrodzili, dla nich Amos jest lepszy.

"Fajna gra" to kwestia pomysłu i umiejętności, nie języka, które narzędzie zostanie wybrane zależy od preferencji "rzemieślnika".

Ostatnia aktualizacja: 15.08.2021 14:05:49 przez san_u
[#20] Re: [asm] pierwsza gra WIP

@mastaszek, post #1

[UPDATE]

+ motocykl wycentrowany, a rusza się droga (kontrola dżojstikiem)

- okazało się, że główny pojazd (robiony na sprajtach) może mieć max. 48 pikseli szerokości :(


>Link do ADFa
2
[#21] Re: [asm] pierwsza gra WIP

@mastaszek, post #20

Ładnie się składa, piękne to jest. Te 48 jest wystarczające, wygląda naprawdę dobrze.
1
[#22] Re: [asm] pierwsza gra WIP

@mastaszek, post #20

Nie sprawdzałem jeszcze najnowszej wersji, odpaliłem tylko wersję poprzednią jakiś czas temu.
Bardzo dobrze to wygląda. na moim emulowanym środowisku, to sprajty nie zostały zresetowane do loresowych (ja używam strzałki w WB w super hiresie bodajże). Podejrzewam, że technicznie sprzętowo chodzi o rejestr fmode ($dff1fc).

- okazało się, że główny pojazd (robiony na sprajtach) może mieć max. 48 pikseli szerokości :(

Masz 5 planów i ustawiłeś okno wyświetlania o jedno słowo więcej i zeżarło ci 2 sprajty, dobrze rozumuje ?
[#23] Re: [asm] pierwsza gra WIP

@mastaszek, post #1

Pozwoliłem sobie nagrać krótki filmik z ostatniej wersji Wyścigów i przesłać na kanał:
1
[#24] Re: [asm] pierwsza gra WIP

@zzielinski, post #23

Ooo dzięki- wygląda naprawdę dobrze OK
Oczywiście droga jeszcze bardzo daleka do pełnych wyścigów, ale robi smaka, 2 ruchome tła w. A niebo to copperem robione?
[#25] Re: [asm] pierwsza gra WIP

@zzielinski, post #23

Wow. Moim zdaniem wygląda to doskonale. Brawo Mastaszek!
1
[#26] Re: [asm] pierwsza gra WIP

@zzielinski, post #23

Super to wygląda :) czekam na dalsze postępy i gratulujęOK
[#27] Re: [asm] pierwsza gra WIP

@tukinem, post #26

Pomysł i grafika super. Nawet lepiej niż wiele gier w które dotąd grałem. OK
Jak dograsz resztę to by dobrze było włączyć też sterowanie tłami miasta i gór, bo teraz to jazda sprawia wrażenie jak by droga stale skręcała w lewo.
[#28] Re: [asm] pierwsza gra WIP

@Rafał A-3000, post #27

Dziękuję wszystkim za miłe słowa.

@asman: Dokładnie tak. DATA FETCH START ustawione na $30, żeby umożliwić scrolla i zjada mi ostatniego sprajta. Boże, co ja się nagłowiłem/naprzeklinałem zanim przeczytałem na forach, że tak po prostu jest :) Teraz jest dylemat - albo ustawić DDFSTRT z powrotem na $38 i zmniejszyć rozmiar okna na 16 pikseli mniejszy niż standardowe, albo zrezygnować z dwóch ostatnich sprajtów. Chyba wybieram tę drugą opcję, bo takie pomniejszone okno słabo wygląda. Wiem, że można wyświetlić sprajty 7 i 8 bez DMA, ale ładowanie prockiem danych do SPR DATA/DATB co klatkę mi się nie podoba.

@BULI: Tak, niebo copperem. W ogóle praktycznie wszystko co widać na ekranie jest robione copperem.

@zzielinski: OK

@Rafał: Grafika jest ukradziona z internetów. Docelowo będzie trzeba ją zastąpić jakąś własną. Oczywiście te przesuwające się tła są tylko próbne i ostatecznie będą się przesuwać TYLKO gdy motocykl będzie "w zakręcie" :)


PLAN: Następnym krokiem jest dodanie zakrętów, czyli stworzenie trasy. Jak będzie gotowe, to wstawię adfa. Jeszcze raz dzięki za motywujący odzew!
6
[#29] Re: [asm] pierwsza gra WIP

@mastaszek, post #28

Wylądowałeś na IRN. Masz przerąbane, bo od teraz cały świat patrzy na Twoje postępy. ;)
1
[#30] Re: [asm] pierwsza gra WIP

@teh_KaiN, post #29

Był już, przy okazji Blasku.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem