Welcome, Guest. Please login or register.


Author Topic: GRACHA és Scroll (Read 46461 times)

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re:Re: GRACHA - a grafikus karakteres editor
« Reply #15 on: 2017.June.18. 11:34:10 »
4 színű karakteres módú scroll (ez az eredeti program):
(Attachment Link)
A pályát 109 karakterrel jeleníti meg (scroll nélkül csak 27 lenne), és 4 előre generált karakterkészletet használ.

tök jó, csak hát ez pont elmenne rendes grafikus módban is.
persze így karakteresben az lehetne a plusz, ha teli van effekttel, nagy robbanások stb... csak hát azok a pixeles mozgás miatt megint csak kérdéses hogy lehetne.
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re:Re: GRACHA - a grafikus karakteres editor
« Reply #16 on: 2017.June.18. 11:58:17 »
tök jó, csak hát ez pont elmenne rendes grafikus módban is.
persze így karakteresben az lehetne a plusz, ha teli van effekttel, nagy robbanások stb... csak hát azok a pixeles mozgás miatt megint csak kérdéses hogy lehetne.

A sprite rajzolásnál nem probléma a scroll, azok az animált pályaelemek jelentenek nehézséget, amelyek egyébként a "háttér" részét képeznék, tehát azzal együtt scrollozódnak, és scroll nélkül egyszerű karakter alapú megjelenítést használnának. Ilyenek például a rakéták a fenti Skramble játékban, a robbanások, stb. Ezeket be kellene építeni a karakterkészletbe minden lehetséges szomszédos karakterrel, így hamar elfogy a 256 karakter. Vagy lehetne minden pályához külön karakterkészlet és konvertáló táblázat, mivel egy pályán általában nincs több különböző mozgó ellenfél.

A 16 színű pixel móddal természetesen jobb minőségű és színesebb grafikát lehet megvalósítani a karakterkészlet korlátai nélkül, de lassabb. Tehát a karakteres mód jobb lehet például ha több nagy sprite van a képernyőn. A karakterkészlet cseréjével pedig egyszerű (rövid, 4-8 kép ciklusban ismétlődő) animáció is megoldható minimális CPU használattal.

Még egy lehetőség a vízszintes helyett függőleges scroll, amit a NICK hardveresen támogat. :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re:Re: GRACHA - a grafikus karakteres editor
« Reply #17 on: 2017.June.18. 19:32:12 »
Továbbfejlesztett verzió, most már van egy mozgatható sprite is:
[ Guests cannot view attachments ]

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: GRACHA és Scroll
« Reply #18 on: 2017.June.18. 19:37:35 »
Továbbfejlesztett verzió, most már van egy mozgatható sprite is:
(Attachment Link)

ez már megérne egy másik topikot is
amúgy a talaj betöltőtt része külön karakterek? mert ha abban lenne valami mintázat, kövek itt-ott, sokat dobna rajta.
meg a háttérben valami parallax hatás?
a soronkénti színek meg elvártak :)
« Last Edit: 2017.June.19. 14:26:03 by szipucsu, Reason: Téma átnevezése a topik áthelyezése miatt. »
Vigyázat! Szektás vagyok! :)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: GRACHA és Scroll
« Reply #19 on: 2017.June.19. 08:46:55 »
Továbbfejlesztett verzió, most már van egy mozgatható sprite is:

Nagyon jó, a grafika is, a mozgásról nem is beszélve, szerintem érdemes lenne ezt befejezni.
« Last Edit: 2017.June.19. 14:27:23 by szipucsu, Reason: Téma átnevezése a topik áthelyezése miatt. »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: GRACHA és Scroll
« Reply #20 on: 2017.June.19. 14:47:52 »
Nagyon jó, a grafika is, a mozgásról nem is beszélve, szerintem érdemes lenne ezt befejezni.

Az azért még elég sok munka lenne. :oops: Mindenesetre itt a jelenlegi verzió forráskódja az előzőhöz képest néhány kisebb változtatással, talán használható valamire:

[ Guests cannot view attachments ]

A fontosabb rutinok futásideje:

scrollPixel:            0.21 ms
scrollCharacter:        5.09 ms
moveSprite:             0.06 ms
updateSprite:           2.46 ms    (NO_COLLISION == 0)
    spriteClear:        0.09 ms
    spriteDraw:         2.34 ms
updateSprite:           2.12 ms    (NO_COLLISION == 1)
    spriteClear:        0.09 ms
    spriteDraw:         2.00 ms


A scrollozás lassúságát az okozza, hogy az egész képernyőt mozgatja LDI utasításokkal. Lehetne a teljes pálya a video RAM-ban is, akkor csak az LPT-t kellene módosítani. Viszont kettős puffereléssel 25 Hz-es képfrissítésnél 40 ms a felhasználható idő, ez elég a képernyő másolására és akár 8-10 hasonló méretű sprite megjelenítésére. 50 Hz-en másolás nélkül kevesebb sprite lehetne, bár a többi kisebb méretű és egyszerűbb (pl. nincs takarás).

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: GRACHA és Scroll
« Reply #21 on: 2017.June.19. 15:48:04 »
Az LPT módosításos megoldás szerintem teljesen jó, sztem ez a játék mehetne 50 fps-sel simán.
Azt nem néztem, hogy a mostani verzióban van-e késleltetés, azt láttam, hogy a legelsőben volt (BF port 04-es értékre volt állítva)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: GRACHA és Scroll
« Reply #22 on: 2017.June.19. 16:08:31 »
Az LPT módosításos megoldás szerintem teljesen jó, sztem ez a játék mehetne 50 fps-sel simán.
Azt nem néztem, hogy a mostani verzióban van-e késleltetés, azt láttam, hogy a legelsőben volt (BF port 04-es értékre volt állítva)

Nincs késleltetés, csak az első verzióban volt. Talán megoldható az 50 fps, de kevés az idő, egy lapot használva csak kb. a kép fele villogás nélkül. Bár két lappal még másolással együtt is több idő maradhat, és sprite rajzolásnál nem kell visszaállítani a hátteret. Hátránya viszont, hogy a pufferelés késlelteti a megjelenítést.
« Last Edit: 2017.June.19. 16:13:09 by IstvanV »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: GRACHA és Scroll
« Reply #23 on: 2017.June.19. 21:52:40 »
Teljes pálya a .prg alapján, de így már 172 karaktert fogyaszt + 12 a sprite:
[ Guests cannot view attachments ]

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: GRACHA és Scroll
« Reply #24 on: 2017.June.19. 22:00:54 »
Teljes pálya a .prg alapján, de így már 172 karaktert fogyaszt + 12 a sprite:
(Attachment Link)
ez meg mindig egész jól hangzik :-) és csak egy karakterkeszletet használsz?
holnap lecsekkolom :-)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: GRACHA és Scroll
« Reply #25 on: 2017.June.20. 08:36:30 »
Megnéztem, nagyon jó, a 2 szakasz végtelenítve van? Full speed-en se értem a végére pár perc alatt :D

Offline Tutus

  • EP lover
  • *
  • Posts: 679
  • Country: hu
    • Enterprise 128
Re: GRACHA és Scroll
« Reply #26 on: 2017.June.20. 10:12:44 »
Minden tiszteletem és elismerésem! :)
Szuper lesz!

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: GRACHA és Scroll
« Reply #27 on: 2017.June.20. 11:39:05 »
ez meg mindig egész jól hangzik :-) és csak egy karakterkeszletet használsz?

Csak egy karakterkészlet van (8 változatban a scroll + animációhoz, ez így összesen 16K), talán a 84 szabadon maradt karakter elég lesz:
- 12 karakter az űrhajó
- egyszerre két bomba és három lövés lehet a képernyőn, ez talán 2*4 + 3*2 = 14 karakter jó minőségű sprite-okkal, vagy csak a fele "darabos" függőleges mozgás esetén
- 32 elég lehet az ellenfelek számára, például 5 rakéta (5*6 karakter) vagy 10 "UFO" (10*3 karakter), de így az eredetitől eltérően nem lehet egyszerre több különböző típusú a képernyőn. A függőleges mozgás is csak karakteres felbontású, de C16-on is az volt, a jobb minőségű C64 változatban talán nem
- 24 karakterrel 4 robbanás (4*6) jeleníthető meg, ez nem sok, a legrégebbit törölni kell ha túl sok lenne a sprite
- marad 2 karakter egyéb célra, például az Endi által javasolt kövekre

Minden pályán külön karakterkészlettel több maradna szabadon, de akkor tölteni kellene a pályák között. Bár 82 karakter folyamatos átdefiniálása is elég sok CPU-t fogyaszt, valószínűleg csak 25 fps lehet így a sebesség. Sok szabad karakterrel viszont talán lehetséges lenne az ellenfeleket is scrollozható "pálya" karakterekkel megoldani.

Megnéztem, nagyon jó, a 2 szakasz végtelenítve van? Full speed-en se értem a végére pár perc alatt :D

Az utolsó pálya végtelenített (térkép).
« Last Edit: 2017.June.20. 11:42:15 by IstvanV »

Offline nyuzga

  • EP addict
  • *
  • Posts: 2280
  • Country: hu
Re: GRACHA és Scroll
« Reply #28 on: 2017.June.20. 12:25:32 »
Teljes pálya a .prg alapján, de így már 172 karaktert fogyaszt + 12 a sprite:
(Attachment Link)

Zseniális.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: GRACHA és Scroll
« Reply #29 on: 2017.June.20. 13:45:19 »
- egyszerre két bomba és három lövés lehet a képernyőn, ez talán 2*4 + 3*2 = 14 karakter jó minőségű sprite-okkal, vagy csak a fele "darabos" függőleges mozgás esetén
szerintem a bomba az simán lehet 2, esetleg 4 pixelenkénti zuhanásban, az úgyis gyorsabb, mint az űrhajó, a lövés meg fél karakteres, vagy karakteres.
- 32 elég lehet az ellenfelek számára, például 5 rakéta (5*6 karakter) vagy 10 "UFO" (10*3 karakter), de így az eredetitől eltérően nem lehet egyszerre több különböző típusú a képernyőn. A függőleges mozgás is csak karakteres felbontású, de C16-on is az volt, a jobb minőségű C64 változatban talán nem
- 24 karakterrel 4 robbanás (4*6) jeleníthető meg, ez nem sok, a legrégebbit törölni kell ha túl sok lenne a sprite
A rakétát és az ufot lehetne vegyíteni egy képernyőn nem?
A 4 robbanás elégnek tűnik, egyszerre úgyis max 2 robbanás generálódhat, és nem tudom hány frame után jöhetne a következő az elemek távolságából kiindulva.
Minden pályán külön karakterkészlettel több maradna szabadon, de akkor tölteni kellene a pályák között. Bár 82 karakter folyamatos átdefiniálása is elég sok CPU-t fogyaszt, valószínűleg csak 25 fps lehet így a sebesség. Sok szabad karakterrel viszont talán lehetséges lenne az ellenfeleket is scrollozható "pálya" karakterekkel megoldani.
Viszont ha csak 25 fps a sebesség, akkor lehet a pixel scroll már lassú lenne játékmenetre, és akkor 2pixeles scroll adna jó sebességet, nem? Jobbnak tűnik az első verzió a maga kompromisszumaival :)