kategoria: AMOS
[#151] Re: Tworzenie gier

@tukinem, post #149

Screen offset starczy. Ciężko mi powiedzieć cokolwiek o dual playfield sugerowanym przez Mastaszka, bo nie wiem co chcesz zrobić, ale jeśli nie potrzebujesz dwóch warstw które się niezależnie przesuwają, to możesz to raczej pominąć - zwłaszcza że potrzebujesz sporo kolorów. Ale AMCAFa i tak zainstaluj, bo z tego co słyszałem jego funkcje dają niezłego kopa.
[#152] Re: Tworzenie gier

@karolb, post #148

Po przeniesieniu się do działu zamkniętego udostępniłem nagranie z wersii w dual playfield'zie. Ilość FPS-ów na gołej Amidze zaskoczyła mnie samego (~48). Kilka lat już do tego kodu nie zaglądałem, więc kto wie, może by się i dało więcej wycisnąć. Ale tak jak pisałem w wątku, który podlinkowałeś, tam nie ma żadnej logiki gry. Mimo wszystko dalej jestem przekonany (na tym przykładzie i ogólnym doświadczeniu w Amosie), że po jej dodaniu można utrzymać 25 pfsów, co jak na grę w Amosie i tak byłoby bardzo dobrze (nawet wiele gier w asemblerze chodzi na 25, a tylko niektóre efekty na 50, co już zresztą chłopaki w jednym z wątków wałkowali).

Wideo z Agonii DualPlayfield

Kilka szczegółów technicznych (to też jest przeklejone z działu prywatnego):

  • Dual Playfield (niebuforowany)
  • Ekran roboczy 2*288
  • Ekran widoczny 288x192
  • Tło buforowane (animacja wody wyświetlana co 4 ramki)
  • Póki co bez AMAL-a, ale planuję jego implementację* (niczego nie planuję, tak napisałem w dziale prywatnym kilka lat temu)


@tukinem - widzę, że mocno działasz. Aż chciałbym pomóc, bo widzę, że popełniasz masę fundamentalnych błędów, ale jestem od jakiegoś czasu bardzo mocno zajęty i naprawdę ciężko mi się oderwać na dłużej (a nie potrafię się nie angażować, gdy w czymś pomagam ). Jeśli jednak nie stracisz zapału, to napisz na priva, a spróbuję mimo wszystko pomóc.

*Mam też już wersję z AMAL-em i jest megapłynnie (jednak spada o jedną klatkę).


Ostatnia aktualizacja: 02.08.2021 14:22:26 przez Umpal
1
[#153] Re: Tworzenie gier

@Umpal, post #152

Na życzenie Umpal'a, wrzutka na yt: OK

[#154] Re: Tworzenie gier

@karolb, post #153

To leci w 47 fps na gołej A600???
[#155] Re: Tworzenie gier

@mastaszek, post #150

Ale jeśli mam obrazek w 32 kolorach, to go mam okroić na 8 kolorów, czy tak go załadować?
[#156] Re: Tworzenie gier

@teh_KaiN, post #151

Do mojego "portu" nie potrzeba DualPlayfied, bo tu cała plansza będzie się razem przemieszczać. Tylko mnie ciekawi jak wycisnąć płynność na A500 przy 32 kolorach...
[#157] Re: Tworzenie gier

@tukinem, post #156

Jeśli nie potrzebujesz Duala, to możesz użyć więcej kolorów. Ale przy 32 kolorach i scrollu to w amosie będzie się ślimaczyć. Ale próbuj.
[#158] Re: Tworzenie gier

@tukinem, post #156

@tukinem - Trudno mi się odnieść do Twojego „portu”, bo nie wiem, na czym to ma polegać, ale zapewniam Cię, że Dual Payfield, to coś, co na Amidze stosowało się w wielu grach dla uzyskania sensownej ilości klatek na sekundę. 32 kolory na Amidze są bardzo wymagające (nie wspominając o EHB), dlatego wiele gier stosuje „sztuczki” na 16 kolorach, takie jak copperowa tęcza na wybranych kolorach i elementy ze sprite'ów, które wyglądają jakby były obiektami Blittera, ale oko przeciętnego gracza tego nie zauważy. Oczywiście są wyjątki świetnych gier w 32 kolorach w 50 fps'ach, ale te gry są z reguły majstersztykami należącymi do osobnej grupy.

Weź również pod uwagę następujący element. Jeśli Twoja plansza będzie duża, to operacje Blitterem na takim obszarze również są wolniejsze. No ale znowu - nie mam pojęcia, o jakim rodzaju gry mówimy, więc to są ogólne uwagi.
Inną rzeczą jest też ilość i wielkość obiektów na ekranie, ich logika i ew. efekty. Wszystko to na Amidze musi być dobrze rozważone, wyliczone i przetestowane. Mnie amigowe ograniczenia bardzo się podobają, dlatego chętnie na nią piszę (chociaż życzyłbym sobie jednej konfiguracji jak w przypadku C64 - życie programisty byłoby wtedy znacznie przyjemniejsze szeroki uśmiech).

@mastaszek - tak, goła, prawdziwa A600 bez żadnych wspomagaczy.
[#159] Re: Tworzenie gier

@Umpal, post #158

No dobra to żadna tajemnica co do pomysłu. Zrobiłem scrollowaną planszę i działa płynnie przy 7MHz póki co. Kto chce niech sobie zapoda. Od razu pytanie z drugiej beczki.
link

Muzyka gra ale jest dziwny pogłos i taka jest zamulona. Później tak od połowy gra lepiej. Czym to może być spowodowane? Użyłem TRACK PLAY i kanał drugi. Albo już mi się palą głośniczki w laptopie :)
przy odsłuchiwaniu tego modułu w Eagleplayer gra bardzo dobrze za to.

Ostatnia aktualizacja: 02.08.2021 15:35:18 przez tukinem
[#160] Re: Tworzenie gier

@tukinem, post #159

U mnie pod WinUAE muzyka wydaje się być ok.

Pinball? Grubo, Panie, grubo! Powodzenia w ogarnięciu fizyki kulki odbijającej się pod różnymi kątami od tych wszystkich zaokrąglonych powierzchni ;)
[#161] Re: Tworzenie gier

@mastaszek, post #160

fizyka jak fizyka, tylko zdefiniowanie tych wszystkich "odbijaczy" i żeby się zapalały przy uderzeniach hehe :) noi do tego jeszcze nie mam pomysłu na tablicę z punktami żeby wyświetlało tym fajnym stylem "elektronicznym". Jak mi nie wyjdzie ta gierka to trudno.
[#162] Re: Tworzenie gier

@tukinem, post #159

Nie używaj wbudowanego playera modułów, tylko jak już ktos wyżej (mastaszek?) napsiał, AMCAF-a.
Pinball! Super. Oczywiście ogarnięcie fizyki kulki będzie większym wyzwaniem niż sama gra, ale życzę Ci powodzenia, bo projekt jest jak najbardziej do ogarnięcia.

Od razu podpowiem, że migające światełka itp. odświeżaj co drugą, trzecią, a nawet czwartą klatkę i oczywiście nie wszystkie na raz. W amigowych, a zwłaszcza amosowych grach bardzo ważne jest rozłożenie efektów na kilka ramek.

Jeszcze jedno. Jak wyjedziesz Screen Offsetem poza fizyczny rozmiar ekranu, to nie dość, że będziesz miał śmieci (jak to widać u Ciebie na dole), to jeszcze może spowodować zwieszkę komputera. Tak że dobrze sobie to policz do jednego piksela.
[#163] Re: Tworzenie gier

@Umpal, post #162

Teraz te "śmieci" na dole zauważyłem bo szybko znikają. Ciekawe czy coś mi z tego wyjdzie. Spróbuję użyć tego narzędzia do odgrywania muzyki.
[#164] Re: Tworzenie gier

@Umpal, post #162

Nawet nie wiedziałem, że posiadam AMCAFa w Amosie u siebie. Użyłem opcji Imploder i powiem, że to jest to :) lekko zacina muzykę ale nie fałszuje już i o to mi chodziło. Dzięki za pomoc :)
2
[#165] Re: Tworzenie gier

@Umpal, post #162

Teraz nie mogę skompilować kodu. Pisze "Extension not loaded" :/
[#166] Re: Tworzenie gier

@tukinem, post #165

Masz w WinUAE dyskietkę z amosem wsadzoną w DF0, czy masz amosa zainstalowanego na twardym?

Jeśli używasz dyskietek, to ściągnij sobie z mojego chomika 2 pliki adf: AMOS i KOMPILATOR.
Załaduj Amosa do DF0 a kompilator do DF1. Kompilować możesz wybierając w amosie w górnym menu USER > COMPILER SHELL

To jest Amos z rozszerzeniami AMCAF i TURBO.

> Link do chomika



Z AMCAFa wykorzystywałem szybkie czyszczenie bitplanów i odgrywanie modułów Protrackera. TURBO nigdy nie używałem, ale są tam jakieś opcje szybszego wyświetlania BOBów, więc może Ci się przyda.


Ostatnia aktualizacja: 02.08.2021 16:44:51 przez mastaszek
[#167] Re: Tworzenie gier

@mastaszek, post #166

mam Amosa na dysku kopiowanego z nowego Amikitu. Można kompilować bezpośrednio z Amosa?
Teraz mam: "Disk error obiekt nie znaleziony"

Ostatnia aktualizacja: 02.08.2021 17:26:18 przez tukinem
[#168] Re: Tworzenie gier

@Umpal, post #162


tak miałem ale odpaliłem tak jak pisałeś z dyskietek Amosa i zadziałało :)
[#169] Re: Tworzenie gier

@tukinem, post #168

Tukinem widzę że ostro walczysz. Tu jest trochę dokumentacji po polsku i angielsku parę kursów z zagranicznej prasy też.
[#170] Re: Tworzenie gier

@jimiche, post #169

Chyba kiedyś stąd pobierałem już kursy o Amosie. Angielskich kursów nie rozumiem zbyt dobrze, a w polskich nie ma za wiele o Copperze i Blitterze. Jedynie z Coppera jest jak zrobić flagę na ekranie, ale co dalej jak można by go wykorzystać to już nigdzie nie pisze.Ten pinball to za trudny jest faktycznie. Myślę że na ten konkurs wyślę albo siatkówkę albo tego sokobana jeśli mi się uda poprawić to sterowanie. Niech się lepsi zajmą pinballami :) jak coś to mogę pozrzucać grafikę i podesłać. Zrzut stołu nawet mi wyszedł :) i to robione w PPaincie :)
[#171] Re: Tworzenie gier

@tukinem, post #136

Moje wrażenia jak najbardziej pozytywne. OK Tylko ta grafika... czym ja w ogóle steruję, ziemniakiem? Dodałbyś opcję grania na dwa joysticki? Myszką gra mi się gorzej.
[#172] Re: Tworzenie gier

@tukinem, post #170

Ekspertem nie jestem, ale bezpośrednie sterowanie Copperem i Blitterem z poziomu Amosa chyba nie bardzo ma sens. Amos jest językiem wysokiego poziomu, czyli 'daleko' od sprzętu, w tym sensie, że Amosowe komendy robią wszystko za Ciebie, ale dają mniej bezpośredniej kontroli nad sprzętem.

Zainspirowany tym wątkiem zacząłem dłubać (póki co podstawy + grzebanie w rejestrach Coppera) w assemblerze i to zupełnie inna bajka niż programowanie w Amosie. Do końca wakacji powinienem coś w tym asemblerze ustukać, to się wtedy pochwalę ;)
[#173] Re: Tworzenie gier

@forge, post #171

Nie grałeś chyba w oryginał na pc. To są takie żelki czerona i zielona. Nazywa się Blobby Volleyball. Nie pomyślałem o drugim joysticku. Myślę że bez problemu dorobię czwartą opcję. Trochę tego jest i lepiej byłoby ustawiać osobno dla jednego gracza sterowanie i drugiego ale sama fizyka gry jest różna do gry z komputerwm i we dwóch. Jak coś wykombinuję to dorobię to. A sama gra już lepiej przypomina orginał bo fizykę spadania piłki poprawiłem. Już nie lata jak wariatka :) jest bardziej łagodnie ale płynnie.
Dzięki za opinię OK
[#174] Re: Tworzenie gier

@mastaszek, post #172

Rozumiem. Domyślam się że jest ciężko przesiąść się z prostego Amosa (który w sumie do końca nie jest taki prosty) na zupełnie inny język tymbardziej ASM. Przeczytałem kilka stron z poradnika Asemblera i dałem sobie spokój. Nawet to mnie zraziło że za każdym razem jak chce się sprawdzić co się napisało to trzeba debugger lub kompilator odpalać. W Amosie wciskam start i od razu testuję. Dodatkowo sobie ułatwiam czasem i wrzucam Locate i Print zmienną którą chcę ustawić jak należy. Może kiedyś się nauczę Asemblera chociaż do ustawiania Coppera, co mogę później użyć w Amosie ale to daleka przyszłość :)
[#175] Re: Tworzenie gier

@tukinem, post #174

Przeczytałem kilka stron z poradnika Asemblera i dałem sobie spokój.


Miałem tak samo z książką p. Doligalskiego. Dopiero po przeczytaniu tego załapałem o co chodzi, mocno polecam bo świetnie wytłumaczone. OK Nie poddawaj się, asembler jest do ogarnięcia.
[#176] Re: Tworzenie gier

@forge, post #175

A teraz z innej beczki. Już wiem, dlaczego Sokoban mi muli na 7MHz :) na wszystkie sposoby próbowałem i zawsze wychodzi tak samo. Im bardziej rozbudowany poziom tym gorzej, ale mniejsza z tym. Napisałem prosty programik, który mi wyjaśnił co mi blokuje sterowanie.
Do
Print Joy(1)
Repeat : Until Joy(1)=0 : Wait Vbl
Loop


chodzi o to, żeby przy każdym ruchu trzeba było osobno ruszać joystickiem. To krótka pętla pokazująca stan joya. Gdy wiele razy szybko daję w którąś stronę, to mi pokazuje przez około 2 sekundy 0, tak jakby się zatrzymywała pętla REPEAT UNTIL. Nie ma chyba innej opcji resetowania stanu joysticka. Przy usunięciu tej komendy z kodu gry, nagle wszystko działa sensownie dobrze, ale nie chcę tak zostawiać, bo lecąc zawodnikiem można się zagalopować zbyt daleko, a nie dałem opcji cofania ruchu. Dzieje się tak na procesorze 68000 7MHz
[#177] Re: Tworzenie gier

@tukinem, post #176

Spróbuj coś w tym stylu. Spowoduje to konieczność 'wycentrowania' dżojstika przed kolejnym ruchem.

IF Joy(1)=0 then DZOJAKTYWNY=false

If (Joy(1)=JAKIŚ_KIERUNEK) and (DZOJAKTYWNY=false)
...
tu coś tam robisz
...
DZOJAKTYWNY=true

ENDIF
[#178] Re: Tworzenie gier

@mastaszek, post #177

Konieczność wycentrowania robiła mi pętla REPEAT UNTIL joy(1)=0.
Próbowałem While Joy(1)<>0 : Wend.
Próbowałem IF Joy(1)<>0 THEN GOSUB "funkcja" no ale to już droga bez sensu. REPEAT UNTIL wydało mi się najprostsze i najkrótsze. Dodałem po tej pętli WAIT VBL zeby mi za często nie stawało w tej pętli gdy rusza się joyem. Poprzesuwałem pętlę w różne miejsca i znalazłem w miarę dobre ulokowanie jej. Jedyne czego nie mogę zrobić to wstawienie jej po rysowaniu boba. Szkoda bo tak po ruchu joystickiem od razu postać się przemieszczała, a teraz trzeba dać na joyu kierunek, wycentrować go i dopiero postać się przemieści. Myślę że łatwiej byłoby sterować klawiaturą i resetować stan zczytywania klawiszy no ale to już będzie jak zacznę tworzyć tą opcję. Sterowanie joyem tak musi zostać jeśli to ma jakoś chodzić na A500.

P.S.
Tutaj dałeś dwa różne warunki obok siebie :) z tego co widzę to jeden wyklucza drugi. Jeśli w pierwszym warunku joy ma być w pozycji 0 a za chwilę ma być w innej pozycji to dopiero cudem byłoby trafić w to miejsce pracy programu, żeby to zadziałało. Tak mi się wydaje.

Ostatnia aktualizacja: 03.08.2021 08:04:27 przez tukinem

Ostatnia aktualizacja: 03.08.2021 08:09:34 przez tukinem

Ostatnia aktualizacja: 03.08.2021 08:10:25 przez tukinem
[#179] Re: Tworzenie gier

@tukinem, post #178

Ale jest tylko jeden EndIf na dole.

Czyli druga linia:

If (Joy(1)=JAKIŚ_KIERUNEK) and (DZOJAKTYWNY=false)


będzie wykonywana niezależnie od tego czy pierwsza linia:

IF Joy(1)=0 then DZOJAKTYWNY=false


będzie True czy False.
[#180] Re: Tworzenie gier

@karolb, post #179

Ta pierwsza linia nie wymaga ENDIFa, bo jest w niej THEN. To jest jednolinijkowy warunek. Chyba :)

Ostatnia aktualizacja: 03.08.2021 12:50:50 przez mastaszek
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