[#1] Tony - development nowej gry
.
[#2] Re: Zapowiedzi nowych gier
Tak ogladajac to demo na YT, to jak dla mnie to wynik gracza nie jest zerowany przy starcie nowej gry.
[#3] Re: Zapowiedzi nowych gier
Fajne toto, taki podrasowany i odrobinę bardziej rozbudowany Gold Hunter z małego Atari. No i moim zdaniem GH ma zdecydowanie szybciej wpadającą w ucho muzykę.

[#4] Re: Zapowiedzi nowych gier

@szczupi26, post #3

eee nooo weź język

1
[#5] Re: Zapowiedzi nowych gier
czy z tego filmiku

https://youtube.com/shorts/F1aqHe_dGLo?feature=share

i z tego wątku

https://forums.atariage.com/topic/342348-tony-game-from-fb-atari-world-italia/

wynika że ta gra była na początku planowana na atari? ale coś nie pykło?
czy też gra wyjdzie także na Atari?

Czy jest to bardziej port atarowej gry na amige czy też oddzielny projekt?

na grupie https://www.facebook.com/people/TONY-Born-for-Adventure/100086340110801/

wyczytałem że planowana jest też wersja na C-64 oraz ZX-Spectrum

Ostatnia aktualizacja: 28.05.2023 09:44:40 przez Azakiel
1
[#6] Re: Zapowiedzi nowych gier

@Azakiel, post #5

Tony to gra ktora bedzie na Amiga, Atari XL/XE, C64 i na ZX Spectrum,
graficznie nie beda sie roznic, mo moze troszke na ZX bo tam mniejsza szerokosc ekranu, ale generalnie graficznie beda blizniacze

na kazdy sprzet pisze inny koder i nie sa to konwersje a samodzielny kod
na kazdy komputer bedzie inna muzyka robiona przez innych muzykow
1
[#7] Re: Zapowiedzi nowych gier
Skoro pytasz... gra jest pisana w Blitz Basic 2, ale wstawiam tam na miarę swoich możliwości kod asemblerem. Niewiele go ale staram się

Już kiedyś pisałem. To tylko wygląda na 1 bitplan, ale tam naprawdę są 2 bitplany.

@Don_Adan: powiem szczerze że na to nie zwróciłem uwagi ale wyłapałem inny błąd, podczas Amiparty kiedy doszło do niesprawiedliwej straty życia. Błąd już poprawiony, a wkradł się przez częste aktualizacje mapy gry i przeoczenie tego miejsca. Gdy pojawi się demko na aminecie, tak zaraz wrzucę wersję z aktualizacją z poprawkami.]

Ostatnia aktualizacja: 28.05.2023 16:06:00 przez tukinem
4
[#8] Re: Zapowiedzi nowych gier

@tukinem, post #7

Aaaa, to Ty jesteś koderem Tony'ego?! Super! Jeszcze stosunkowo niedawno stawiałeś pierwsze kroki w programowaniu, a teraz stoisz za kodem gry, która będzie miała wydanie pudełkowe. Naprawdę przyjemnie się obserwuje taką ewolucję. Brawo!
1
[#9] Re: Zapowiedzi nowych gier

@mastaszek, post #8

Na tyle czasu, co poświęcam kodowaniu, to już powinienem cały kod w asemblerze pisać, ale narazie jestem na etapie działań arytmetycznych i od kilku dni poznaję sposób na pisanie pętli, co zupełnie mija się z naukami z Amosa/Blitza.
[#10] Re: Zapowiedzi nowych gier

@tukinem, post #9

Mógłbyś podzielić się tymi spostrzeżeniami póki są świeże i napisać małe co nieco o tym jak się coś robi np w Amosie, a jak można to zrobić w asemblerze i pokazać różnicę w wydajności. np z tą pętlą.
[#11] Re: Zapowiedzi nowych gier

@koczis, post #10

Róźnice różnicami w szybkości, bo to różnie bywa między Amosem a Blitzem, ale im trudniejszy język, tym bardziej trzeba się pilnować. Wiadome, że asembler bije wszystko na łeb, ale im więcej się wie, tym bardziej jeszcze można przyspieszyć.

Kiedyś wygrzebię z dysku kilka testów, bo porobiłem sobie jakiś czas temu. Oczywiście kody tych testów też podam.

Ostatnia aktualizacja: 28.05.2023 20:57:08 przez tukinem
[#12] Re: Zapowiedzi nowych gier

@tukinem, post #11

Całkiem przyjemna jest ta graficzka czarno-biała i gra ma swój klimacik. Chociaż chyba do łatwych nie będzie należała
A co do użycia ASMa to wydaje mi się że przy takiej ilości bitplanów (są aż 2 podobno, chociaż tego nie widać) to i bez tego BB powinien sobie poradzić. Chociaż zawsze warto się ASMa uczyć OK
1
[#13] Re: Zapowiedzi nowych gier

@pisklak, post #12

No właśnie tutaj nie chodzi o bitplany i blitter, a o samo sterowanie/animacje/kolizje i obsługę obiektów w grze. Wersja PAL jeszcze działa dobrze bez problemu, ale wersja NTSC już lubi zwalniać, szczególnie nie posiadając Fast Ramu i posługując się jedynie Slow Ramem. Odczyt/przeliczanie i zapis tablic z danymi potrafi spowolnić okropnie, pomimo że niby to tyko zmienne, a jednak. Procek przy 60Hz już nie potrafi tyle przeliczyć co przy 50Hz. Dlatego zacząłem skrupulatnie powoli przepisywać samo sterowanie do asm. No ale jak miesiąc powstawało demko, tak teraz 2 miesiące będę przepisywać sterowanie Tonym do asemblera
1
[#14] Re: Zapowiedzi nowych gier

@tukinem, post #13

porownujac rozne produkcje to Blitz jest srednio o 100% szybszy niz Amos. Dodajac do tego jesze wstawki asemblerowe to koncowo wychodzi lekko z 200% szybciej niz w Amosie.

Jak szybko powinna taka gra chodzic w Amosie?
Na te chwile nie wiem... trzeba by taka stworzyc i zoptymalizowac ale ide o zaklad, ze problemem nie jest predkosc dzialania Blitza a pewnie nieciekawa petla glowna w ktorej nawaliles od groma niepotrzebnych rzeczy.
Moze udostepnij komus, kto sie zna dobrze na Blitzie kod glownej petli zeby wskazal co mozna by zrobic duzo lepiej.
Ja w Blitzie nie pomoge ale jestem zdania, ze mozna z tego wycisnac wiecej predkosci.
[#15] Re: Zapowiedzi nowych gier

@tukinem, post #7

Jeśli moje oczy dobrze patrzą, to tam są dwa kolory. Do czego są potrzebne 2 bitplane'y?

Nie bardzo rozumiem, co może spowalniać tę gierkę? Sterowanie postacią, animacje i wyświetlanie grafiki na pewno nie. Musi więc chodzić o detekcję kolizji. W jaki sposób robisz sprawdzanie kolizji?
[#16] Re: Zapowiedzi nowych gier

@tukinem, post #13

Jak chcesz to mozesz procedure/y w ASM, wrzucic do jakiegos watku w formie tekstu (bo na prymitywnym Androidzie, kiepsko sie cokolwiek rozpakowuje). To moze sie cos da przyspieszyc. No i Selur sie tez wtedy nauczy asemblera.
[#17] Re: Zapowiedzi nowych gier

@selur, post #14

Blitz nie jest też demonem szybkości. Nawet żeby pełny płynny scroll platformówki napisać, to trzeba użyć wstawek asemblerowych i kilku sztuczek z copperem. Mam taki przykład z forum EAB.

Co do samego Tonego, przypomnę, o czym pisałem wcześniej w innym wątku. Gra powstaje jednocześnie na ZX Spectrum, Atari 8bit i C64, przez co grafika jest w kaflach 8x8 pix. To nie jest zbyt amigowe. Wyświetlanie obiektów to same "boby". Zazwyczaj to 16x16 grafiki, ale np. grafika Tonego to 32x32 pix, głazy, których nie widzieliście jeszcze to kafle chyba 24x32 pix o ile dobrze pamiętam albo i więcej. Robiłem testy na wersji NTSC i z ręką na sercu potwierdzam że wyłączając sterowanie Tonym całkowicie, gra przyspieszała. Wymiana Tonego z boba na 2 sprajty nic nie przyspieszyła. Wystarczyło kilka prostych linijek kodu sterowania przywrócić, aby gra zwolniła.

Przyznam, że jest wielka pętla od sterowania obiektami w grze, które są bardzo różne, ale wyłączenie tej pętli nie spowodowało przyspieszenia. Wyłączenie notorycznego sprawdzania punktów kolizji Tonego, które są stablicowane właśnie powoduje spowolnienia najbardziej. Tego się nie przeskoczy w Blitzu. Zmiana slow ram na fast ram przyspiesza znacznie wersję NTSC. Sam się zdziwiłem, że tam procesor może nie wyrabiać. Wersja PAL działa idealnie w każdej komnacie ze slow ramem bez fastu.

@Mastaszek: 2 bitplany są po to, żeby móc użyć koloru czarnego nietransparentnego przy blitowaniu. Blitz Basic nie posiada komend z Amosa typu NoMask. No ale z drugiej strony można grafikę obiektów ładnie otoczyć czarnym kolorem nr 2, a z zewnątrz użyć przezroczystego koloru 0. 1 bitplan ma tylko kolor transparentny i kolor biały (nr 1). To za mało. Obiekty zlewałyby się z otoczeniem. Same detekcje kolizji działają bardzo szybko. To jest 12 x Point() do tablicy, który jest bardzo szybki w Blitzu.

Każdy obiekt to ręcznie stworzony typ (a'la struktura w C). 24 bajty dokładnie zajmuje każdy obiekt. Tam są zapisane współrzędne, nr obiektu, typ obiektu (trupek/czaszka/płomień itp), przesuw pionowy, przesuw poziomy, szybkość itd itd. Ale jak pisałem, sama pętla z obiektami nie spowalnia gry.

Ostatnia aktualizacja: 28.05.2023 22:28:53 przez tukinem

Ostatnia aktualizacja: 28.05.2023 22:32:29 przez tukinem
[#18] Re: Zapowiedzi nowych gier

@selur, post #14

No nie wiem jak duże te tablice są i co tam jest liczone ale być może da się np. dzielenie (o ile jest) zastąpić przesuwaniem bitów. Być może też tablice są trzymane w zmiennych wielkości long worda (32 bit) i wtedy się może okazać że przeliczenie tablicy (w sumie powiedzmy prosta operacja) czyli odczyt (+matematyka) i zapis to przerzucenie dużo więcej danych (potencjalnie w chipramie) niż to co "idzie na ekran". Nie znam się kompletnie na BB ale być może da się tam definiować wielkość danych w tablicy (myślę że 16 bit czyli ASMowy Word (short int z C chyba) spokojnie starczy, ba skoro ma być na ZX Spectrum to może i 8 bit by starczyło). A operacje na chipramie chyba najszybsze w 16 bit właśnie są
[#19] Re: Zapowiedzi nowych gier

@pisklak, post #18

Dzielenie zastąpiłem. Płynność animacji jest zależna od MODULO frame. Klatki są liczone, a obliczenia frame MOD x, co daje resztę z dzielenia, też mam stablicowane i dosłownie to jest chyba z 7 obliczeń na ramkę. To nie jest wiele i to też nie spowalnia, bo to sprawdziłem. Wiem, która część kodu najbardziej obciąża grę i dlatego za to się wziąłem. Dużo pętli warunkowych, które w asemblerze działają inaczej, dużo dużo szybciej, jeśli się dobrze je napisze.

Zmienne są odpowiednio deklarowane wiem kiedy użyć word, long lub byte. Naprawdę jedyne co spowalnia to sprawdzanie w kodzie. Wszelkie "IF"y, "EndIf"y, Select/Case'y (chociaż to jest szybsze) spowalniają. Jedynie asembler ze swoim JMP pomoże mam nadzieję :P

PS. Mam zabronione udostępnianie kodu gry. Żeby było jasne.

Ostatnia aktualizacja: 28.05.2023 22:46:49 przez tukinem
[#20] Re: Zapowiedzi nowych gier

@tukinem, post #19

W jaki sposób zakodowałeś sprawdzanie kolizji? Gra jest oparta na kafelkach, więc kolizje możesz sprawdzać na tablicy na podstawie której stawiasz poszczególne kafelki. To powinno być całkiem szybkie.
[#21] Re: Zapowiedzi nowych gier

@tukinem, post #17

że jest wielka pętla od sterowania obiektami w grze, które są bardzo różne, ale wyłączenie tej pętli nie spowodowało przyspieszenia.


przy minimalnej ilosci "przeciwnikow/przeszkadzajek" moze tak byc.


Wyłączenie notorycznego sprawdzania punktów kolizji Tonego, które są stablicowane właśnie powoduje spowolnienia najbardziej.


znaczy chciales napisac "przyspieszenie" ?
w jakis sposob sprawdzasz kolizje postaci ? to jest tradycyjny hit box czy jakis inny uklad pikseli? Ile ich jest?
no i mam nadzieje, ze kolizje postaci sa sprawdzane tylko i wylacznie po jakims ruchu/akcji postaci a nie jako kazdorozowo wywolywany blok w petli glownej.
[#22] Re: Zapowiedzi nowych gier

@selur, post #21

Właśnie myślę, że koncepcja sprawdzania kolizji zastosowana prze kolegę Tukinema nie jest optymalna i stąd spowolnienia.

Ostatnia aktualizacja: 28.05.2023 22:53:03 przez mastaszek
[#23] Re: Zapowiedzi nowych gier

@tukinem, post #19

PS. Mam zabronione udostępnianie kodu gry. Żeby było jasne.


ale zaraz zaraz... ty ten kod piszesz sam od nowa czy przepisujesz z czegos innego i zamieniasz na odpowiednie instrukcje pod Blitz Basic ??
[#24] Re: Zapowiedzi nowych gier

@mastaszek, post #20

Panowie wszystko super tylko może z tym (i poprzednimi postami też) do innego wątku by się przydało iść...

Ostatnia aktualizacja: 28.05.2023 23:16:46 przez pisklak
[#25] Re: Zapowiedzi nowych gier

@mastaszek, post #20

W ten sam sposób, co pinball, czyli tablica 12 punktów Tonego i 12x Point() z bitmapy roboczej (też 2 bitplany), która jest niewidoczna. Nie mów, że to spowalnia bo to sprawdziłem. Każdy blok kodu sprawdziłem. Wielką pętlę Select/Case od obsługi obiektów wyłączyłem i też było wolniej. Jedyne, kiedy przyspieszyło, to gdy wyłączyłem sterowanie Tonym, a naprawdę tam jest dużo Ifów, od animacji, po sprawdzanie który nr tablicy ile ma, po dodawanie, odejmowanie współrzędnych, wymiany numerów grafik animacji, skakanie, kucanie, bieganie, drabina i wychodzenie do kolejnych komnat.

Kolizje nie spowalniają. Napisałem wam przyczynę, co sprawdziłem, a wy dalej swoje teorie piszecie :)

Sama funkcja Point() to nie jest ta z Amosa. Mógłbym bez tablicy używać bezpośrednio jej i nie wiem czy nie byłoby szybciej nawet.

Faktycznie dyskusja powinna przejść na inny wątek :) ale fajnie że jest zaciekawienie tematem.

Ostatnia aktualizacja: 28.05.2023 23:20:01 przez tukinem
[#26] Re: Zapowiedzi nowych gier

@tukinem, post #17

Coz nie znam sie na Blitzu ale mozna 12x zastapic przesunieciem w lewo o 4 bity, czyli x16, oczywiscie trzeba wtedy tabele zmienic z x12 na x16 (czyli 4 bajty puste), czyli troche wiecej pamieci na tablice potrzeba, ale to chyba nie bedzie problem. Ewentualnie uzyc x12 z samych dodawan i przesuniec, albo z samych dodawan np.

add.w D0,D0 ; x2
add.w D0,D0 ; x4
move.w D0,D1 ; x4
add.w D0,D0; x8
add.w D1,D0; x12
[#27] Re: Zapowiedzi nowych gier

@tukinem, post #17

Pierwsza sprawa w jaki sposób sprawdzasz, że dany kod jest szybszy/wolniejszy. Jak to mierzysz ?
To jest kluczowe. Bo jeśli coś przeszkadza, na przykład przerwania są generowane, to nie jest miarodajne. Innymi słowy wynik jest fałszywy.
[#28] Re: Zapowiedzi nowych gier

@asman, post #27

Sprawdzam tak, że odpalam emulator w cycle exact NTSC i wchodzę do najbardzoej rozbudowanych komnat. Wtedy wszystko jest najbardziej obciążone. Widać było gołym okiem. Gdy wyłączyłem sterowanie Tonym całkowicie, gra przyspieszała znacznie. Dlatego postanowiłem napisać sterowanie asemblerem. Myślę że za 2 tygodnie to przepiszę, bo dopiero się go uczę

A jeśli to nie przyspieszy wersji NTSC no to trudno, ale zawsze się nauczę czegoś nowego.
2
[#29] Re: Zapowiedzi nowych gier

@tukinem, post #28

Sprawdzam tak, że odpalam emulator w cycle exact NTSC i wchodzę do najbardzoej rozbudowanych komnat. Wtedy wszystko jest najbardziej obciążone. Widać było gołym okiem. Gdy wyłączyłem sterowanie Tonym całkowicie, gra przyspieszała znacznie. Dlatego postanowiłem napisać sterowanie asemblerem. Myślę że za 2 tygodnie to przepiszę, bo dopiero się go uczę


Nie wiem jak wygląda twoja pętla główna gry ale myślę, że najłatwiej by było gdybyś poczekał na daną linię ekranu, najlepiej przed danym fragmentem kodu, który to chcesz przetestować. Wtedy zmieniasz kolor tła z czarnego na czerwony a za końcem badanego kodu zmieniasz na kolor czarny. O ile copperem nie ustawiasz kolorów tła, bo wtedy to nie zadziała.
Zobacz na tym filmiku jest taki pasek fioletowy
.
To ja sprawdzałem prędkość pętli głównej (całej). Ta gra jest napisana w C + wstawki w asm. Ale te wstawki to po prawdzie mogłyby być w C i też by się nic nie stało (jak pamiętam to są tylko takie wstawki: czekanie na wiązke, pozycja sprajta i odgrywanie sampla ).

Napisz w skrócie co Twoja pętla gry robi, najlepiej w punktach.

Ostatnia aktualizacja: 29.05.2023 12:47:26 przez asman
[#30] Re: Zapowiedzi nowych gier

@tukinem, post #25

a w sumie te 12 punktow sprawdzasz za kazdym razem czy tylko czesc ?
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