kategoria: AMOS
[#211] Re: Farmiga : Work in progress

@tukinem, post #210

juz widze jakis balagan, bo na 141 obiektow masz tylko 75 obrazow...
[#212] Re: Farmiga : Work in progress

@selur, post #211

To może dźwięki i moduły też zapisało z banku?
[#213] Re: Farmiga : Work in progress

@tukinem, post #212

O MATKO BOSKO CZESTOCHOSKO co tam sie dzieje!
Ba nie tylko dzwieki i moduly zapisales ale rowniez banki tymczasowe data
Kazdy bank zapisuje sie OSOBNO na dysk !
[#214] Re: Farmiga : Work in progress

@selur, post #213

No kliknąłem w trybie bezpośrednim tą ikonkę do zapisu i chyba dlatego
[#215] Re: Farmiga : Work in progress

@selur, post #213

Banki laduje sie komenda Load plik$,NR_Banku a nie samym Load plik$, bo wtedy wlasnie nie wiesz co ladujesz do pamieci.

I odpowiednio... nagrywa sie instrukcja Save plik$,NR_Banku.

Aktualnie sam plik z bobami zajmuje 90 kb.

Ostatnia aktualizacja: 10.06.2022 18:28:15 przez selur
[#216] Re: Farmiga : Work in progress

@selur, post #215

Rozumiem. W weekend siądę i stworzę sobie plik z bobami bo tam nie wiem czy są boby ogrodzeń.

Może lepiej kilka plików z grafikami bobów zrobić i wczytywać odpowiedni plik podczas odpowiedniej akcji (mapa/farma/dzik), żeby nie trzymać też naraz wszystkiego w pamięci RAM?

Ostatnia aktualizacja: 10.06.2022 19:05:24 przez tukinem
[#217] Re: Farmiga : Work in progress

@tukinem, post #216

Tak sie robi przy bardzo duzych grach jak np. gry RPG gdzie masz duze ilosc grafik i nie zmiescilbys wszystkiego nawet w 2MB Chip Ramu.
Tutaj tego nie trzeba. Natomiast przydaloby sie zrobic optymalizacje grafiki.
Np. aktualnie ten plotek zajmuje z 15 kb, jakby go podzielic na dwa osobne boby np. gorny i doly to bedzie zajmowal polowe mniej pamieci Chip.

Ogolnie rzecz biorac w amigowych grach wsytepuja dziesiatki malych obiektow zamiast kilkunastu wielkich, bo to wielokrtonie zmniejsza zajetosc Chip Ramu, ktory niestety na Amidze jest najbardziej cenny.
[#218] Re: Farmiga : Work in progress

@selur, post #217

A nie będzie tak, że rysując kilka obiektów będzie wolniej, niż jeden duży? W Sokobanie mi się przypomina, że dla tła zrobiłem sobie kafelek coś 8x4 piksele i rysowane było całe tło tym kafelkiem. Było widać jak blitter pracował tymi kafeleczkami podczas rysowania tła.

Zgrałem sobie wszystkie boby do jednego pliku. Wyszło mi 109kB (109 744 B według Filemastera). Do tego w trybie bezpośrednim wpisałem Erase All i dopiero skompilowałem. Nagle plik wykonywalny zajmuje 119kB 57% ADFa zajęte, więc można się dalej bawić Stworzyłem osobny programik do wczytywania grafiki i zapisywania do ABK. Przynajmniej podczas uruchamiania gry nie wyskakują te okienka z grafiką bobów.

Tylko teraz po pierwsze mogę się pogubić przy numeracji bobów, bo nie będę mieć jej w kodzie, a po drugie przy dogrywaniu kolejnej grafiki będę znowu musiał aktualizować ten plik BOBS.ABK.

Ale teraz przy ustawieniu A500 kick 1.3 i 1MB Chip Ram bez fast działa dobrze

Ostatnia aktualizacja: 10.06.2022 20:06:31 przez tukinem
[#219] Re: Farmiga : Work in progress

@tukinem, post #218

A nie będzie tak, że rysując kilka obiektów będzie wolniej, niż jeden duży?


Nie w przypadku gdy ten duzy bob jest kilka razy wiekszy od tych malych.
Tak jest wlasnie u ciebie z tym wielkim plotkiem. Mozna by go podzielic na az 6 mniejszych bobow, co wiecej zaoszczedzis sporo Chipu przy samym wyswietlaniu obiektu, bo wiekszosc programistow AMOS'a nie wie, ze Sprajty i Boby zabieraja sporu Chipu dla tla.
Ja to odkrylem przypadkiem, po 10 latach uzywania Amosa
[#220] Re: Farmiga : Work in progress

@selur, post #219

Tzn ogrodzenia siedzą w banku bobów, ale na ekranie nie są jako boby, a są rysowane poprzez Paste Bob, tak jak wychodek i ul. Gdybym takie wielkie boby trzymał na ekranie jako obiekty, to gra działałaby chyba w 5 klatkach na sekundę
jedynie zabierają miejsce w banku bobów.
[#221] Re: Farmiga : Work in progress

@tukinem, post #220

TU masz programik do przegladania swoich bobow w banku. Mozesz zobaczyc co ile zajmuje pamieci.

Global SCIEZKA$
Erase All

SUMA_CHIP=0 : Rem zajetosc Chip Ram przez obrazki Bobow
'
SCIEZKA$=":w_amosie/amos_games/farma/" : Rem sciezka dostepu do plikow
Screen Open 0,320,200,32,Lowres
Flash Off
Cls 1
Wait Vbl
Load "farm_b.abk",1 : Rem plik z grafika bobow
Get Bob Palette
Cls 2
No Mask

Screen Open 1,640,8,4,Hires
Curs Off
Screen Display 1,,240,,



MAKS_OBJ=Length(1) : Rem ilosc obiektow

Gosub OBLICZ_SUME




''Save Iff "pic.iff",0

Rem ==========================================
'
Screen 0
'
ILOSC_BOB=0

NR=1
'

Do

'--------------------
If Key State(79) and NR>1

'
Dec NR
Screen 0
Cls 2
ADR=Sprite Base(NR)
'
If ADR>0
Paste Bob X,Y,NR : Wait Vbl
Dec ILOSC_BOB
End If
'
Gosub WYSWIETL
End If
'----------------------
If Key State(78) and NR<MAKS_OBJ
'
Inc NR
Screen 0
Cls 2
ADR=Sprite Base(NR)
'
If ADR>0
Paste Bob X,Y,NR : Wait Vbl
Inc ILOSC_BOB
End If
'
Gosub WYSWIETL
End If
'----
Loop

Edit

'---------------------------

WYSWIETL:
'
Screen 1
'
If ADR>0
SZ=Deek(ADR)
WY=Deek(ADR+2)
BM=Deek(ADR+4)
R=((SZ*16)*WY)/8*BM
Else
SZ=0 : WY=0 : BM=0 : R=0
End If
'
Print At(8,0);"Nr";NR;" ";
Print At(0,0);"[";ILOSC_BOB;" ]";
'
Print At(16,0);"Pixele";SZ*16;" *";WY;" ";
Print At(34,0);"Ram:";R;" bajtow ";
Print At(52,0);"Suma CHip:";SUMA_CHIP;" b. ";
'
Wait 5
'
Return

'---------------------------

OBLICZ_SUME:
'
For I=1 To MAKS_OBJ
'
ADR=Sprite Base(I)
'
If ADR>0
SZ=Deek(ADR)
WY=Deek(ADR+2)
BM=Deek(ADR+4)
R=((SZ*16)*WY)/8*BM
SUMA_CHIP=SUMA_CHIP+R
End If
'
Next I
'
Return
[#222] Re: Farmiga : Work in progress

@selur, post #221

Fajny ten programik. Ciekaw jestem, czemu wklejając kolejne boby zawsze zostaje kawałek czarnego tła po prawej stronie. Raczej starałem się wycinać boby co do piksela (poza paroma wyjątkami). A tu Twój programik na białym tle rysuje z kawałkiem czarnego po prawej stronie, jakbym wczytywał dla boba za dużą wartość X2.
[#223] Re: Farmiga : Work in progress

@tukinem, post #222

Pisalem juz o tym wczesniej, tylko nie wiem gdzie pewnie w poprzednim watku o tworzeniu gier...
kazdy Bob/Sprajt ma SZEROKOSC rowna wielokrotnosci 16 pikseli. Do takiej szerokosci AMOS automatycznie rozszerza dany obiekt.

Czyli szerokosc moze miec tylko wartosci 16,32,48,64,80,96... itd. itp. pikseli. Zatem rysujac boba/sprajta trzeba miescic sie w okreslonej szerokosci, najszczesciej w amigowych grach obiekty maja 16 lub 32 piksele szerokosci.
[#224] Re: Farmiga : Work in progress

@selur, post #223

Czyli nawet tworząc boba o jednym pikselu, to w pamięci zabierze 16x16 pikseli tak? I tym samym będzie zajmować te 256 bajtów w Chip Ram?

Zaktualizowałem grę na profilu. Można śmiało testować Sprawdzałem na zwykłej Amidze i chodzi aż miło

Ostatnia aktualizacja: 11.06.2022 14:32:57 przez tukinem
[#225] Re: Farmiga : Work in progress

@tukinem, post #224

Tak ale tylko 16 pikseli szerokosci, wysokosc jest dowolona. Bo przesylana paczka pikseli w poziomie ma dlugosc 16 bitow ( 2-bajtowe slowo).

A co do zajetosci do tej wartosci, ktora podaje w programie, zapomnialem o czyms waznym.
Nalezy jeszcze doliczyc MASKE obiektu or dodatkowych kilkadziesiat bajtow danych (chyba 24 bajty) dla kazdego obietku.

Czyli prawidlowa wartosc R(ozmiar) dla obiektow z maska, powinna wygladac tak:

R=((SZ*16)*WY)/8*(BM+1)+24

mozesz przekleic ta linijke w miejsce starego R
[#226] Re: Farmiga : Work in progress

@selur, post #225

Ok tak zrobię.

Sam napisałeś ten programik? Masz talent. Jedyne co, to bym dodał lepsze czyszczenie linijki z informacjami, bo zostają się cyfry jeśli jest wpisana liczba 2-cyfrowa a później 1-cyfrowa, ale to taka kwestia estetyczna.

Teraz jak mam plik .abk z bobami oraz iff'y z grafiką tła poszczególnych plansz, to mogę je pakować jakoś Amosem żeby jeszcze przyoszczędzić miejsca? Czy muszę użyć jakiegoś pakera zewnętrznego?
[#227] Re: Farmiga : Work in progress

@tukinem, post #226

Sam napisałeś ten programik?

Nie, Babcia mi pomaga . Dodaj ze dwie spacje na koncu kazdego pustego lancucha " " po zmiennej, to znikna krzaki.

Iff'y najlepiej pakowac instrukcja PACK , Pack ekran To Bank,x1,y1,x2,y2
Np. pakujesz kolejno wycinek danych obrazkow o wielksoci 320*200 pikseli z ekranu 0 do bankow o numerach 14, 15, 16.

Screen 0
Load iff "farma1.iff",0
Pack 0 to 14,0,0,320,200
wait 50
Load iff "farma2.iff",0
Pack 0 to 15,0,0,320,200
wait 50
Load iff "farma3.iff",0
Pack 0 to 16,0,0,320,200
wait 50

a pozniej je rozpakowujesz do ekranu 1 np.

Screen 1
Unpack 14,0,0
Wait key
Unpack 15,0,0
Wait key
Unpack 16,0,0
Wait Key

tylko pamietaj, ze instrukcja Unpack musisz wypakowac obraz do juz gotowego Ekranu o takiej samej liczbie kolorow i rownej badz wiekszej rozdzielczosci.
Nie wypakujesz obrazka do ekranu mniejszego i o mniejszej liczbie kolorow.
Spakowany obrazek w banku nagrywasz opcja Save "nazwa.abk", nr_banku

Jak spakujesz obrazki, to w trybie bezposrednim wpisz List Bank, pokaze ci sie lista obrazkow w bankach.

Ostatnia aktualizacja: 11.06.2022 16:47:39 przez selur
[#228] Re: Farmiga : Work in progress

@selur, post #227

I takie pakowanie zaoszczędzi miejsce?
[#229] Re: Farmiga : Work in progress

@tukinem, post #228

No sprawdz na dyski ile zajmuje *.iff a pozniej ile ten same obrazek spakowany do *.abk.
[#230] Re: Farmiga : Work in progress

@selur, post #229

Same tła IFFów, czyli farmy, mapy i lasu spakowałem. Różnica to 18kB dopisałem ładnie Screen Hide / Screen Show do wszystkich pozycji. Jak skompiluję, to dam znać, czy można używać na 512kB Chip Ram. Aha. Nie wiem, czy dobrze robię, ale wpisałem za każdym razem tak:
Screen Open......
Load "plik.abk",7 : Unpack 7,0,0 : Erase 7

Dobrze to robię, że za każdym razem po wczytaniu baku kasuję go? Miałem na myśli to, że zwalniam za każdym razem pamięć...


Spakowana Farmiga vs. rozpakowana to 51% vs 57% objętości ADF. Zawsze coś

Ostatnia aktualizacja: 11.06.2022 21:19:07 przez tukinem
[#231] Re: Farmiga : Work in progress

@tukinem, post #230

Roznica jest wieksza jesli w obrazku masz duzo jednolitych kolorow.

Mozna kasowac albo odrazu ladowac do tego samego banku.
[#232] Re: Farmiga : Work in progress

@selur, post #231

Ale tak szczerze, to rozpakowywanie do banku, wczytywanie z banku i kasowanie jest szybsze niż wczytywanie grafiki i wycinanie bobów w locie. A poza tym dużo bardziej estetyczne, bo nie pojawiają się żadne grafiki bobów na ekranie.

Przydałaby mi się taka opcja, że gdy pamięć CHIP przekroczy 512kB, to wyskakuje komunikat o tym. Problemem jest animacja startowa z tym napisem Farmiga. Prawdopodobnie chodzi o ekran 320x512x32 kolory. No akurat wjazd napisów z góry wymuszał na mnie otwarcie takiego ekranu. Tamte drzewka wjeżdżają razem z ekranem, a napisy są jako boby animowane w dół, a po dojechaniu do miejsca docelowego boby są kasowane i wklejane blitterem, żeby nie było dużo bobów na ekranie. Kombinowałem ile wlezie dla płynności a i tak limitu 512kB Chip Ram nie mogę osiągnąć

Moduły muzyczne domyślam się, że też można tak pakować i wczytywać...

Ostatnia aktualizacja: 11.06.2022 21:39:38 przez tukinem
[#233] Re: Farmiga : Work in progress

@tukinem, post #232

Moja rada wszystkie obiekty trzymaj odrazu w bankach sprajtow, obrazki mozesz w formie spakowanej a modulow ani dzwiekow sie nie pakuje w AMOSie.
Natomiast czesc grafik np. tak jak masz ikony poszczegolnych warzyw mozna trzymac rowniez jako obrazki w ekranach, zamiast obrazow bobow.
Wtedy kopiujesz wycinek obrazka komenda Screen Copy z jednego ekranu do drugiego.
Np. masz na jednym ekranie roboczym np. o wymiarach 320*240 pikseli liste przedmiotow o wymiarach 24*24 piksele i pozniej z tego ekranu kopiujesz sobie wybrany przedmiot do innego.
Gdybys to chcial trzymac jako Boby czy Ikony wtedy szerokosc dla kazdego przedmiotu mialaby 32*24 piksele a wiec o 1/4 wiecej.
[#234] Re: Farmiga : Work in progress

@selur, post #233

A jeśli teraz chciałbym dograć jakieś boby do pliku .abk, to po prostu wczytać plik do banku 1, wczytać nowego boba, który trafi też do tego banku i na nowo zapisać bank do pliku .abk, tak?
[#235] Re: Farmiga : Work in progress

@tukinem, post #234

Wczytujesz bank z bobami, pozniej wycinasz kolejne i na koncu nagrywasz calosc.
Bank Bobow i Ikon ma mozliwosc dolaczania z dysku innych bankow, po prostu do juz istniejacych bobow/ikon kolejny zaladowany bank zostanie dolaczony do tych obiektow.
[#236] Re: Farmiga : Work in progress

@selur, post #235

Screen Copy działa bez maski, więc warzywa z przodu zasłaniałyby te z tyłu.
[#237] Re: Farmiga : Work in progress

@selur, post #233

Nie pakuje sie modulow w AMOS-ie? Raczej sie pakuje. Gry World Software maja moduly spakowane, no chyba ze jakas nakladke na AMOS-a uzywali. No i exeki AMOS-owe sie pakuje tym wewnetrznym pakerem AMOS-a xVdg (czyli ByteKiller). A w exeku tez moze byc modul.
[#238] Re: Farmiga : Work in progress

@mastaszek, post #236

Mowa oczywiscie o obrazkach warzyw, np. jak wybierasz je z menu. Wszystkie ikonu przyciskow, opcji, przedmiotow mozna trzymac w ekranach dla oszczedzania pamieci.
[#239] Re: Farmiga : Work in progress

@Don_Adan, post #237

Tak jak Selur mówił po pierwsze muszę rozdzielić grafiki ogrodzeń bo są zbyt wielkie. Wtedy odzyskam dodatkowo sporo miejsca. Moduły mi dużo nie zajmują miejsca. Pytałem tylko z ciekawości. To plik wykonywalny exe również można spakować?

@ Selur. Tak te ikonki mam wklejone w ekran menu dolnego. Niepotrzebnie są trzymane w banku bobów to racja. Myślałem początkowo że użyję ich jeszcze na ekranie zbiorów w magazynie ale ostatecznie wybrałem samo wypisanie poszczególnych rzeczy znajdujących się tam.

Ostatnia aktualizacja: 11.06.2022 23:31:33 przez tukinem
[#240] Re: Farmiga : Work in progress

@Don_Adan, post #237

Caly czas odnosze sie od AMOS'a a nie do zewnetrznych programow uzytkowych.
We Franko i Domanie na pewno byly uzyte wstawki asemblerowe, bo zadne pliki nie maja formatu amosowego banku, kiedys sprawdzalem bo chcialem sobie wyciagnac grafike.

Mysle, ze kazdy wie, ze sa rozne rozszerzenia do AMOS'a i mozna nawet napisac swoje jak ktos jest koderem ... no ale nie o to tutaj chodzi.
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