[#1] Tilemaps na Amidze
Witam
Mam ostatnio zagwozdkę natury, chyba ogólnej.
Jak najlepiej na Amidze zaimplementować tilemapy?
- Jaki rozmiar klocków? 16/32 pixeli?
- ustawiać bliterem / prockiem czy jakiś innym sposobem?
- o ile ustawić klocki na pojedynczym ekranie będę umiał to jak to potem scrollować? przepisywać wszystkie czy są jakieś triki aby przesunąć widoczny obszar planszy i dostawiać nowe klocki gdzieś poza ekranem?

podyskutujmy jak macie doświadzenia/pomysły.
TIA
[#2] Re: Tilemaps na Amidze

@retronav, post #1

Za mało danych podałeś. Jaki ekran, ile bitplanów, czy interleaved ? Czy chcesz osiągnąć 50fpsów czy 25 fpsów. Czy masz do dyspozycji tylko CHIP i ile go jest. Czy masz też prawdziwy FAST.
[#3] Re: Tilemaps na Amidze

@retronav, post #1

- najczesciej bedzie to rozmiar 16x16 (ze wzgledow praktycznych)
- wylacznie blitterem jesli mowimy o klasycznej amidze
- zalezy jak bedziesz chcial pisac gre, jesli bedziesz uzywal sprajtow to bedzie inaczej, jesli bedziesz chcial przerysowywac caly ekran co klatke to inaczej, tak samo inaczej horyzontalnie, a inaczej vertykalnie...
[#4] Re: Tilemaps na Amidze

@asman, post #2

Zapomniałem dodać, podaj jeszcze jaki procek i rozumiem że kości OCS/ECS.
[#5] Re: Tilemaps na Amidze

@retronav, post #1

- ekran 320*256 32kol
- tilsety 16*16, bo to jedyny sluszny rozmiar na Amidze, reszta nie wchodzi w rachube (90% gier uzywa takiegio wymiaru, inne formaty sa pamieciozerne lub czasochlonne)
- wszystko bliterem

a co do techniki wyswietlania niech sie wypowiedza koderzy ok, racja
[#6] Re: Tilemaps na Amidze

@asman, post #2

wiec tak...
myślę na razie bardzo ogólnie ale dla sprecyzowania dyskusji:
- OCS/ECS zwykły proceck m68k
- 3 bitplany interleaved
- scroll poziomy i pionowy
- zakładamy 512 chipu + 512 fastu/slow
- co ramkę

bardziej pytam o ogólne podejście zwłaszcze interesuje mnie przepisanie/przesunięcie całego ekranu klocków i wstawienie nowej kolumny klocków poza ekranem.
wiem że mogę o 16 pixeli przeskrolować sprzętowo ale jak potem przepisać o kolejne 16?
jak to ugryźć aby działało szybko?
[#7] Re: Tilemaps na Amidze

@retronav, post #6

Obadaj sobie ScrollingTricks na aminecie. Nie pamiętam czy tam to jest podejscie typu. Dwa ekrany odpowiednio większę, o dwie kolumny i o dwa wiersze. Wtedy dla ekranu 320x256 masz ekran 320+32 x 256 +32, widziany jest i tak 320x256, musisz też ustawić ddfstrt i tak dalej. Jeśli skrolujesz z prędkoscią 1 piksel na ramkę, to wtedy na drugim ekranie, kopiujesz jeden wiersz (to trochę za mało bo wierszy będzie 18 i trzeba trochę kombinować ale da radę). i jak masz już scrolla na poziomie 15 piskeli i przechodzisz na 16 to kopiujesz ostatni wiersz (pasek) i zamieniasz ekrany. Przy scrollowaniu o 2 piksele musisz kopiować dwa wiersze i tak dalej. Koszt takiego scrolla to koszt narzucenia około 25 tilesów na ramkę. Przy czym masz też za darmo do tego dosyć wolną animację rzędu 50/16 fpsów.
Ogólnie nieskończony scroll we wszystkie strony to nie jest bardzo łatwa rzecz do napisania.

Niektóre gry mają ustalony ekran na przykład 640x512 a widziany 320x256 i wtedy zerowym kosztem jest przesuw robiony (oczywiście to zajmuje pamięc czterech ekranów). Te cztery ekrany można oczywiście zagospodarować też w ten sposób, że niektóre plansze będą 1080x256 albo 320x1024 i będą scrollowane odpowienio w tylko w X a drugi tylko w Y.

Przy 3 bitplanach interleaved można bez problemu osiągnąć 50 fpsów, narzucająć wszystkie tilesy na ekran. chyba ta operacja powinna zająć około 75% ramki ale nie pamiętam.

A propos 512 fastu/slow, to jest różnica, szczególnie na lepszym procku.

Edit: Do tych 3 bitplanów interleaved. Oczywiście chodzi mi o narzucenie wszystkich tilesów co ramkę. Wtedy potrzebujesz dwóch ekranów, każdy 320+16 x 256+16, ustawić ddfstrt aby było pobierane jedno słowo więcej i wtedy inny jest ddfstop. scrolla robisz za pomocą bplcon1 bodajże (tabelka rulez w tym miejscu). Co dobre w tym podejściu że narzucanie bobów jest szybkie, bo tylko je narzucasz, nie musisz nic czyścić ani zapamiętywać, bo i tak odtwarzasz cały ekran. Takie podejście jest stosowane w grze Blaze przy tilesach 32x32 w 5 bitplanach i gra wyciąga 25 fpsów. Podobnie jest w Psycheual, ale tam są kostki 16x16x5. Jeśli nie wykorzystujesz coppera do zmiany kolorów, to możesz go zaprząc by skopiował Ci cały ekran kostek.

Edit2: Jakbyś miał problem to odezwij się na priva, to może jaki przykładzik sklece.

Ostatnia aktualizacja: 18.01.2016 14:34:17 przez asman

Ostatnia aktualizacja: 18.01.2016 14:39:52 przez asman
[#8] Re: Tilemaps na Amidze

@asman, post #7

Dzięki za namiar na archiwum w Aminecie. Przykłady wyglądają na super opisane. Pewnie w praktyce sprawdzić czas się znajdzie za rok, ale w międzyczasie można poczytać.
[#9] Re: Tilemaps na Amidze

@asman, post #7

@asman
dzięki za te sugestie. ekrany większe niz 320x256 już cwiczyłem. generalnie chodziło mi o kilka pomysłów od koderów bo myślałem że może coś gdzieś mi umyka. ideę znam bo w zasadzie jest taka sama na każdej maszynie, myślałem że podpowiecie coś typowego dla amigi i kilka uwag fajtycznie mi podsówa nowe pomysły.
nie pracuję nad grą - od razu studzę ;) ale na efektami do dem gdzie myślałem żeby może użyć tilesów...
dzięki za dotychczasową pomoc. na pm nie będę pisał bo wolał bym pogadać :) bywasz / bywacie na ami-imprezach? najbliższe? chętnie bym pogadał jako nowo upieczony "ami-koder" ;), ale ostatnia impreza na jakiej byłem to riverwash w raciborzu 2014.
dajcie znać czy gdzieś bywacie. może uda się spotkać i zrobić "panel dyskusyjny" dla początkujących koderów.
[#10] Re: Tilemaps na Amidze

@retronav, post #9

@carrion: praktycznie na każdej imprezie zawsze znajdziesz kogoś, z kim można o tym pogadać. Przed jakąś kolejną zarzuć po prostu w wątku eventu pytanie "kto się wybiera" i może nawet zmotywujesz większą grupę. I wcale to nie musi byc scenowe party, bo spotkać się i pogadać można na każdym retro-zlocie czy grillo-popijawie (bo zazwyczaj to to samo :)) Z najblizszych na ktore bede probowal sie wybrac to pewnie Decrunch (ale nie ma jeszcze daty) i chyba Piernik (bo Torun blisko).
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