[#25]
Re: Studio do tworzenia gier w formie biblioteki
@Jacek Piszczek,
post #24
Moja a1200, która pochodzi z 1992 roku również magicznym sposobem nie "unowocześniła się", jest nadal komputerem z 1992 roku, dlatego używam takiej techniki blitowania, jaka na niej jest skuteczna. Potrafię napisać to tak, by było bardziej przenośne, na przykład dane z plików graficznych byłyby w formacie chunky 8-bit i tak pewnie docelowo będzie. Póki co zastosowałem proste ładowanie z plików IFF.
Jeśli chodzi o modeid, to akurat funkcja GxOpenScreen (wcześniej GetGxScreen) jest tak sprytnie zaprojektowana, że pobiera indeks w tablicy trybów, tj. rozmiar ekranu i jego głębia w różnych trybach jest określona wewnątrz pliku gxscreen.o i interpretowana przez funkcje wewnątrz tego pliku. Obecnie dwa tryby - tradycyjne LORES 320x256 i HIRES 640x256 znane z Amigi są tam zapisane, ale można wprowadzić nowe np. 320x240, 640x480, 800x600 itp.
Chodzi też o to, żeby programy napisane z użyciem tej biblioteki były szybkie, czyli procedury były dostosowane do architektury i możliwości sprzętu. Oznacza to, że najpewniej powstaną oddzielne pliki gxscreen.o dla Amigi 1200, dla AmigaOS 4, każda realizująca zadanie w inny sposób. Bo wiadomo, że na Amidze 1200 nie uruchomię trybów 24-bit, a na MorphOSie nie skorzystam z Blittera. Oczywiście prototypy funkcji, ich protokół będzie identyczny, różne byłoby za to ciało funkcji.
Także przenośność jest tu zrealizowana w troszkę inny sposób, funkcje nie będą uniwersalne, jedynie API ma być takie samo. Programy by linkowało się z odpowiednimi plikami obiektów na różnych platformach. Nie wiem jeszcze jak się to sprawdzi w praktyce, ale ma to sens. Myślę, że będzie to znacznie lepsze rozwiązanie od dotychczas zastosowanych. Jestem autorem, więc proszę pisać do mnie odnośnie projektu, np. autorzy SDL nie interesują się naszymi platformami, a ja wprost przeciwnie. Proszę zatem nie skreślać projektu, zawsze można przecież zmodyfikować użyte techniki.
Podam jeszcze jeden przykład - na Amidze klasycznej np. nie skorzystam z AHI, tylko z audio.device a na MorphOSie pewnie AHI jest niezbędne. Jak to pogodzić? Ano właśnie skonstruować dwie funkcje o tym samym protokole, ale innym ciele - jeden wykorzystujący AHI, a drugi audio.device. Czy wyjaśniłem już mój pomysł? Podobnie będzie np. z obsługą kontrolera - w Amidze będzie to joystick i gameport.device itd.
Pozwólcie mi dokończyć gierkę przykładową. Żeby być szczerym planowałem użyć gameport.device i audio.device i pewnie wkrótce zostałbym skrytykowany, że nie używam AHI i joysticka na USB. Nie wszystko da się tak łatwo pogodzić. Obsługę tych drugich rzeczy zostawiłbym komuś kto np. przeniesie GameX na MorphOSa. Tymczasem życzę dobranoc wszystkim czytającym i Jackowi Piszczkowi.
Ostatnia aktualizacja: 23.05.2012 01:25:24 przez Robert-Minimat-Szacki