>
>ile czasu zajmuje średnio napisanie dema na C64, ile czasu zajmuje dopracowanie designu
>do takiego dema, czy jest na początku jakiś projekt całości czy wszystko wychodzi "w praniu",
> msx powstaje przed stworzeniem dema, w trakcie czy po ?
>
U mnie to się zmieniało a przy Sweet Infection wyglądało tak:
a) wymyślić od początku do końca najmniej 5 całkowicie nowych (dla mnie) efektów
b) rozpiska użycia pamięci przez efekt, robiona jest z myślą o demie to jest:
- muzyka odgrywana raz na ramkę, max #$20 rastry (linii długich)
- wielkość muzyki (player+dane) od $1800 do $2000 bajtów - cały czas musi być w pamięci !!!
($2000 bajtów w pełni wystarcza na mocno zróżnicowana muzykę)
- wielkość loadera po stronie c-64, od 192-256 bajtów - cały czas musi być w pamięci !!!
- dekranczer $0100-$0200 (nie musi być cały czas w pamięci - można go sobie doczytać)
- efekt robić tak żeby można było użyć dużo kolorów i grafikę, zostawić jakiś zapas
pamięci na sprajty, fonty lub grafikę bitmapową
c) jak już są zakodowane działające wersje efektów, wtedy staramy się ustalić czy da się wsadzić
do danego efektu grafikę czy nie, jeżeli się da to muszę sprecyzować w jakim ma być trybie i jaka
maksymalna wielkość na ekranie (czasem też ile bajtów, np. logosy konwertowane na znaki+fonty)
i ilość kolorów, wtedy grafik rysuje - o ile chce :)
- wiadomo że graficy też w międzyczasie kodowania rysują po prostu swoje rzeczy w takich trybach jakich chcą,
a nie w takich jakbym ja chciał, po prostu wtedy patrzę czy się da zmienić tryb w efekcie i jeżeli tak
to przekodowuję efekt pod konkretną grafikę w danym trybie (np. cartoon wektory ze Sweet Infection)
d) jak już mam wszystkie efekty i część grafiki do nich i rozpiski pamięci dla wszystkich efektów, to wtedy robię
jedną dużą listę efektów i rozpiskę ile maksymalnie mogę uzyskać wolnej pamięci dla danego efektu:
- przed jego inicjalizacją (przed relokacją kodu/tabelek/danych, dekranczem grafiki, generowaniem tabelek
czy ciurkow-kodu "rozpętlonego kodu"
-> na podstawie tego ustalamy o co możemy się pokusić przy dizajnie i fade_in efektu
- w trakcie działania danego efektu
-> to daje mi informacje o tym czy w trakcie efektu mogę pokusić się o doczytywanie danych
- po wyjściu z pętli efektu
-> na podstawie tego ustalam jaki może być następny efekt
e) dla każdego z efektów ustalam jaką ilość danych i ile plików muszę doczytać żeby sam dany efekt działał
- dodatkowo mierzę czas ile sekund na to potrzebuję
- ustalam na oko (z doświadczenia) czy wyrobię się z demem na jedną stronę dysku czy będzie to demo
z flip-disciem i dwustronne
- można zrobić tak że całe demo mieści się na jednej stronie dysku a plik potrzebny do uruchomienia
umieszcza się na pierwszej stronie i wypisuje się komunikat flip-disk i demo leci
f) na podstawie informacji uzyskanych z d) i e) czyli ilości wolnej pamięci i ilości danych do wczytania i czasu
wczytywania staram się ustalić optymalną kolejność efektów w demie "po sobie" żeby uzyskać jako taką
dynamikę
g) kombinujemy nad dizajnem i kolejnością efektów tak żeby demo miało ręce i nogi
- ja od siebie dodaje to że nie lubię jak są podobne efekty po sobie
- daję znać co po czym dam radę zrobić a czego na pewno nie przeskoczę - bo dane/kod/ będą się
doczytywać za długo itp.
h) dochodzimy do kompromisu i wtedy ja mam gotową listę efektów w demie, mówię co się da zrobić pomiędzy
efektami i ustalamy wstępnie przejścia między efektami (fade_in/fade_out)
- zaczynam składanie całego dema od pierwszego efektu
- dokładam wymyślone dizajny fade-outy danego efektu i fade_in następnego efektu, czasem jednak zdarza
się że występują kolizje z używaniem trybów graficznych przez efekty czy też banków VICa (pojawiają się
wizualne bugi które zauważy tylko wprawne oko na prawdziwym sprzęcie) i które trwają tylko kilka cykli lub
jedną ramkę np. pojawi się problem że między efektami MUSI być czarny ekran przez jedną ramkę i demo
leży
- na ile starcza mi cierpliwości przekodowuję oba efekty pod dany fade out/in z nowym użyciem pamięci pod
VICa
- zasadniczo doczytywanie danych następnego efektu odbywa się właśnie w trakcie fadeow, a że czasem i
sam fade jest efektem który zużywa pamięć i czas rastra dlatego też ilość wolnego rastertimu na
doczytywanie się zmniejsza w stosunku do tego ustalonego wyżej punkt e)
- dlatego też pliki trzeba zapisywać z różnym przeplotem i ostatecznie zapisać w demie plik z przeplotem
optymalnym pod loader tak że zostanie wczytany tak szybko jak to możliwe
np. przy wczytywaniu dużych ilości danych 32kb można zejść z 10 sekund od 4,5 (part z Piratem w Sweet
Infection)
czy w wypadku doczytywania w trakcie wyświetlania IFLI (który kradnie 200 rastrów)
- poza tym pliki jest też dobrze zapisywać progresywnie na dyskietce od najniższej do najwyższej ścieżki,
i w KOLEJNOŚCI TAKIEJ SAMEJ jak są wczytywane, wtedy głowica stacji nie musi skakać po nośniku, traci
się tylko czas na synchronizację sektora
i) jak ja łączę pierwsze efekty, to ustalamy jakieś "intro" albo inaczej wyjście z systemu BASIC do dema,
koduję to i dołączam do już zrobionej pierwszej wersji efektów, podsyłam muzykowi i muzyk zaczyna robić muzykę
j) w międzyczasie są przestoje bo grafik musi skończyć grafikę, muzyka może za dużo zajmować w pamięci itp.
pojawią się jakieś nowe małe pomysły w kwestii dizajnu do jeszcze nie zakodowanych efektów to się
przerabia efekt :)
Najgorsze i najbardziej nie lubiane jest właśnie linkowanie czyli składanie całego dema, bo trzeba się wyrobić
w pamięci z czasem no i czasem z deadlinem :)
Reasumując im dłużej jest się na scenie tym więcej czasu potrzeba na wymyślenie nowych efektów, ale już się wie gdzie będą pojawiać się schody. Pijak Potrafi złożyliśmy w tydzień na "domkach" plus 2 dni na party. DeepBlue sam składałem z miesiąć, MovieWorld przez tydzień. Biba2 - 6 miesięcy potrzebowałem na napisanie źródeł do efektów Mojżesha bo mieliśmy tylko wersje uruchamialne, swoje efekty miałem już gotowe, następne 4 miesiące na linkowanie dema.
W "Sweet Infection" ostatni efekt to jest motyl+grafika został zakodowany chyba już w 2002 roku, reszta efektów powstawała 2005-2006 i linkowałem demo jakoś od marca 2006 z założeniem deadlinu na Northa_10 - chyba sierpień 2006.
W trakcie linkowania zakodowałem jeszcze całkowicie nowy efekt obracane logosy w osi Y i to użyliśmy jako intro, muzyk zaczął robić muzykę jakoś w kwietniu. W czerwcu/lipcu otrzymałem dopiero zoptymalizowaną na maks grafikę do wektorów, rysunek twarzy i tu powstał nowy kod a potem jeszcze raz nowy kod bo wymyśliliśmy te szybkie co ramkę przełączanie w rytm muzyki między mała cartoon wersją wektora a dużą crayoon wersją wektora.
Składanie tego dema trwało dlatego tyle bo tu każda procedura przysłowiowej lini czy piksela itp. jest inna dla każdego efektu, nie ma recyklingu efektów, nawet jeżeli na pierwszy rzut wydaje się że to tylko kolejny wektor to w każdym efekcie jest np. inna ilość kolorów w hiresie (gdzie standardowo są dwa). Ok wystarczy przynudzania.
Fenek/Arise