76

xxl: A gdyby tak zrobić tablicę przekształceń wektorów bazowych do współrzędnych pikseli dla wszystkich możliwych kątów i na jej podstawie rysować? Nie przyspieszyłoby to obliczeń?

800 XE + CA 2001; Portfolio; 1040 STfm; Lynx II
Psion Organiser II XP, LZ64; Series 3a, 3c, 5mx; Siena; Workabout; HP 95LX, 200LX, 620LX; Amiga 1200; Amstrad NC100, NC200; Game Boy Color
http://palmtop.cosi.com.pl -- nie tylko o Atari Portfolio

77 Ostatnio edytowany przez mono (2010-04-26 00:25:42)

Jakie są proporcje w rysowaniu treści i kasowaniu ekranu? Może zamiast czyścić ekran tradycyjnie wystarczyłoby odmalować znowu treść kolorem tła (w plot zamieniasz ora na and i zmieniasz adres tablicy masek pikseli).

Edit: Albo już nawet bez maskowania - wyznaczasz bajt i zapisujesz tam 0.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

78

eeee, kasowanie ekranu zrobić blitterem VBXE

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

79

Kasowanie jakkolwiek, ale podstawą by było zrobić double buffering ...

pomidor

80

zastanawiam sie nad takimi rozwiazaniami:

1.
- liczniki nie beda pojawiac sie na ekranie gry tylko wyzej w trybie basica 0 czcionka standardowa
- podpis (c) itd. ponizej ekranu gry w lini trybu basica 0
- obraz rysowany vector generatorem (optymalizacja)
- optymalizacja kasowania
- obraz 2buforowy

2.
- liczniki i napis (c) zostaja tu gdzie sa czcionka nie wektorowa
- zamiast obrazu wektorowego rysowanie bedzie oparte o sprite engine

dla mnie najlatwiej zrobic to jak w punkcie 1. obawiam sie jednak o szybkosc dzialania :/ dodatkowo zmuszenie do dzialania takich gier jak lunar leander, battle zone (mono), asteroids deluxe z maszyn arcade bedzie stosunkowo proste poniewaz rozwiazania sa standardowe jesli przejdziemy na sprite engine droga sie zamyka

http://atari.pl/hsc/ad.php?i=1.

81

xxl napisał/a:

- liczniki nie beda pojawiac sie na ekranie gry tylko wyzej w trybie basica 0 czcionka standardowa

Nieeeee..... :)

xxl napisał/a:

- podpis (c) itd. ponizej ekranu gry w lini trybu basica 0

Nieeeee..... :)

xxl napisał/a:

- liczniki i napis (c) zostaja tu gdzie sa czcionka nie wektorowa

Tak.

xxl napisał/a:

- zamiast obrazu wektorowego rysowanie bedzie oparte o sprite engine

Tak.

Oczywiście zrobisz jak zechcesz.... co do wektorowości lub nie - nie mam konkretnego zdania, ale sprite engine bedzie szybszy.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

82 Ostatnio edytowany przez Marek Konopka (2010-04-26 11:28:00)

Wybór wariantu uzależniałbym od tego jakie postawione są cele. Jeżeli wydajność gry w oparciu o procedurę rysującą odcinki byłaby niesatysfakcjonująca, to wybrałbym wariant #2. Liczniki oraz podpis rysowałbym w polu gry. Zachowuje to klimat pierwowzoru. Nakładanie ich zrealizowałbym na sprite'ach lub procedurze kreślącej odcinki ze zoptymalizowanymi kierunkami o wielokrotności 90 (ew. 45) stopni. Ta sama optymalizacja wyjdzie wydajności na dobre w przypadku rysowania samych asteroidów, choć zysk będzie zapewne niewielki. Rysowanie UFO oraz statku gracza powinno być szybsze w przypadku wariantu sprite'owego.

W przypadku wyboru wariantu #2 można dodatkowo pokusić się o optymalizacje:

a) Rysowanie tylko tych bajtów w kolumnie, które posiadają w masce OR wartość różną od #0. Definicje takiego sprite'a należałoby przygotować uprzednio z zastosowaniem kodowania zbliżonego do kompresji RLE. Wtenczas moglibyśmy rysować pakietami w kolumnie. Należałoby tutaj uwzgędnić jeszcze "poszatkowanie", a w zasadzie tak pogrupować oraz połączyć bajty w kolumnie, aby tego poszatkowania nie było zbyt wiele. Wartość dwóch/trzech pakietów w kolumnie powinna być optymalna. Oczywiście dane sprite'ów powinny być zwielokrotnione dla wszystkich ośmiu kombinacji przesunięć w obrębie bajtu. Ten sam mechanizm możnaby wykorzystać do przywracania tła.

b) Wygenerowanie procedur rysujących dla wszystkich kombinacji kształt/przesunięcie poziome. Bazuje to na obserwacji, że środek dużych asteroidów jest pusty. W szczególności, gdy w masce OR występuje wartość #0, pomijamy taki zapis. Dodatkowo, jeśli w masce OR mamy #$ff, to wpisujemy bezpośrednio lda #$ff / sta (screen),y, zamiast nakładania pełnego z użyciem rozkazu ora. Należałoby oszacować ile to może zająć pamięci, ale myślę, że są szanse na zmieszczenie się.

c) Wszędzie tam, gdzie stosunek wypełnienia bajtów kształtu obiektu pikselami do całkowitego obszaru prostokąta otaczającego obiektu jest duży, zastosować rysowanie na sprite'ach. W praktyce dotyczyć to będzie statku głównego oraz małych asteroidów.

83

Wiesz co, jak dla mnie to szybkość jest niezła. Zrobienie Battle Zone to NAPRAWDĘ wielka rzecz.

Dlatego skupienie się na optymalizacji procedur(y) kreślenia linii może być najlepszym rozwiązaniem.

Problem: niska dostępna rozdzielczość psuje sporo z radości - małe obiekty wyglądają źle.
Prawdopodobnie rozwiązanie hybrydowe (kreski + sprite'y) dałoby najlepsze rezultaty.

A jak są sprawdzane kolizje, bo nie pamiętam? Jeśli kształt obiektów nie ma znaczenia, to może dałoby się nieco przedefiniować kształty małych obiektów tak, żeby wyglądały lepiej? (ufoki, etc.).

Generalnie sprite'y OK, ale słodki sen o innych wektorówkach - bardziej OK.

Niemądry pomyślik na przyśpieszenie kasowania - może nie kasować wszystkiego, tylko coś tam, np. co drugi wiersz. No wiesz, coś w rodzaju poświaty / interlace [[[[[:

A jak będziesz wyświetlał napisy to proszę zamów zaprojektowanie czcionki "pseudo wektorowej" z kresek, pleeeze... Nie OS-A...

http://www.5oft.pl/

84

po co zamawiac - te w bgi sa calkiem calkiem ;)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

85

wizualizacja jest calkowicie oddzielona od silnika gry, vector rom mozna podmienic i zamiast asteroidow moze byc cokolwiek innego (format rysowania tych ksztaltow jest bardzo prosty), kolizje nie sa realizowane na podstawie obrazu (skala sie liczy). mozliwe ze duze glazy, wybuchy beda rysowane wektorowo a male obiekty spritem - mozna to zrealizowac - akcja wykonywania rozkazow VG bedzie uzalezniona od aktualnie zaladowanej skali i juz.

dzis lub jutro zrobie prawdziwe testy i przekonamy sie czy podwojny bufor wystarczy a gra nie zwolni.

jesli natomiast wszystko zawiedzie to podpora bedzie vbxe z blitterem, overlay (antic wylaczony) memac a do przelaczania strony 1 i 2 (oryginal maszyny tak ma)

http://atari.pl/hsc/ad.php?i=1.

86

bliska wersja, juz sie nic nie wiesza, chodzi jak chodzi i nie miga :)

http://atari.pl/asteroids-hiscore.zip

http://atari.pl/hsc/ad.php?i=1.

87

Supeł, wygląda świetnie :) Paint it black! ;) Tak, wiem... Wiem, że tylko wersje robocze mają tę "basicową" kolorystkę ;)

88

Mniodzio jezd :)

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

89

rulz

http://www.5oft.pl/

90

Świetne. Ciekawe, że tylko małe czcionki mają te błędy w wyświetlaniu...

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

91

nie bedzie mozliwosci gry na 2 liczniki i w zwiazku z tym usunalem wyswietlanie drugiego licznika, poza tym napis copyright, score, hiscore i ilosc zyc bedzie rysowane bitmapa a nie wektorowo

http://atari.pl/asteroids_wip1.gif

http://atari.pl/hsc/ad.php?i=1.

92 Ostatnio edytowany przez nosty (2010-05-02 21:52:50)

xxl napisał/a:

poza tym napis copyright, score, hiscore i ilosc zyc bedzie rysowane bitmapa a nie wektorowo

A propos: bardzo ciekawy casus prawny nam sie pojawil :)

Jesli (jak planowales) gra bedzie wymagala do dzialania oryginalnego ROM'u z arcade, to nalezy traktowac ja jak emulator :)
I w tym przypadku na ekranie jak najbardziej moze sie pojawiac oryginalny napis copyright firmy Atari skoro jest on w oryginalnej grze.

Ale nie musze mowic, ze w takim przypadku powinienes do minimum ograniczyc ilosc zmian w grze ;)

Milo widziec ze coraz fajniej to wyglada!

93

Oooo niedobrze. A czemu nie będzie można pograć na dwa playery?

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

94

jak sie ma 10 lat to mozna zagrac z bratem na 2 liczniki ale teraz? kto gra na 2 liczniki? ok. drugi licznik moze wroca ale to pod koniec 'pracy'...

a odnosnie zmian... moze niektore sa potrzebne?
kto wiedzial ze gra sie zawiesi gdy masz (chyba) 160 zyc, albo ze nie zawsze jest tak ze rozbity glaz dzieli sie na 2, albo ze gra buduje display liste z bledem.
a to robi wrazenie: gra ma tylko 1kb ramu z czego 512 bajtow jest stronicowane (pamiec dla kazdego playera zajmuje 256 bajtow) a 256 b to stos procesora :-)

http://atari.pl/hsc/ad.php?i=1.

95

Jak się ma 30-parę to też można zagrać z bratem przy różnych okazjach :) W moim przypadku jest to człowiek, który nie mają kontaktu z Atari przez 15 lat jest w stanie z marszu przejść całego Zybex'a. A prawdziwy asteroids na 2 playery to naprawdę byłaby przyjemność.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

96

prosze zrobcic taki test:

na 10 pozycji hiscore wpisac np. xxx, zagrac jeszcze raz ale zdobywajac mniej punktow, zeby nie dostac sie na liste hiscore
poczekac az wyswietli sie hiscore i przeczytac co jest w inicjale na 10 pozycji.

firma atari nawet wtedy miala problemy z testowaniem swoich programow...

ten bug bedzie poprawiony.

http://atari.pl/hsc/ad.php?i=1.

97

http://www.youtube.com/watch?v=vi5S1aYio_U

tak wyglada raczej ostatnia wersja z vector generatorem, tu jest global scale x4 dla rysowanych obiektow (dla kolizji pozostala stara)

nowe wersje beda juz na soft spritach...

http://atari.pl/hsc/ad.php?i=1.

98

xxl napisał/a:

[...]... moze Zenon opublikuje w koncu 'Weronike'[...]

Ma ktoś kontakt z Zenkiem? Wiem że w styczniu miał sprawy osobiste i brak dostępu do sieci a muszę się z nim jakoś skontaktować.
Piszę tutaj, bo tu wyszukało mi ostatni post wołający do Zenka.

<-- Kontakt przez "E-mail" gdyż albowiem moja skrzynka "PW" jest pełna i zaprawdę nie mam czego usunąć.

--== Kup Pan/i dyskietkę http://www.atari.org.pl/forum/viewtopic.php?id=18887 ==--

99

@xxl - no i teraz chodzi miodnie :) gratuluje!

@mowny - ja kontaktowalem sie niedawno z Zenonem emailowo i odpowiadal mi jak zwykle bezzwlocznie. Wlasciwie bezzwlocznie narysowal mi schemat nowego cartridge'a :)
Ale moze trafilem w dobry moment, bo tez slyszalem plotki, ze ostatnio mniej czasu moze poswiecac Atari. Mam wielka nadzieje ze to chwilowe trudnosci.

100

mam takie romy asteroida:

035145-02.ef2
035144-02.h2
035143-02.j2
035127-02.np3
034602-01.c8

a szukam jeszcze takich:

035145-04e.ef2
035144-04e.h2
035143-02.j2
035127-02.np3
034602-01.c8

znalazlem w jednym miejscu ale trzeba sie rejestrowac... gdyby ktos mial to prosze dac znac.

http://atari.pl/hsc/ad.php?i=1.