[#1] Arcymag - praca nad drugim demkiem w toku
Hej! Chciałem zawiadomić, że obecnie po zakupie scan doublera pracuję nad nowym demkiem Arcymaga. Wykorzystuję z powodzeniem proponowane przez Kiera podwójne buforowanie, dzięki czemu gra powstanie dla kości AGA (wersja podstawowa), ale również bez problemu będzie się dało przeportować tę grę pod kartę graficzną. Co prawda współpraca z Krzyśkiem została po części zawieszona, ponieważ nie rozwijałem programu przez długi czas to jednak myślę, że uda się nam dojść do porozumienia i będzie to nadal nasz wspólny projekt. Póki co wykorzystuję grafikę, którą Krzysiek przesłał mi jakiś czas temu. Jak drugie demko wyjdzie na światło dzienne, to jestem pewien że wrócimy do pełnej współpracy.

Bardzo proszę o wyrozumiałość jeśli chodzi o opóźnienie w rozwijaniu programu.

Pozdrawiam.

[#2] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #1

Praca idzie bardzo szybko. Napisałem nowy system wyświetlania, dzięki czemu gra zadziała również na Amigach z kartą graficzną, a pod AGA zachowa dużą prędkość działania. Oto jakie elementy gry dochodzą (które zapowiedziałem we wcześniejszych newsach).

1. Odsłanianie mapy - teraz mapa odsłania się wraz z ruchem bohatera, przy czym bohater widzi tylko to co jest w zasięgu jego wzroku, to znaczy za ścianą nic nie zobaczy, dopóki jej nie obejdzie.

2. Nietoperze teraz wyłaniają się i chowają w obszarach niezbadanych przez bohatera.

3. Skrzynki do przesuwania - jest to nowy element gry, skrzynki te blokują drogę i będą też używane do blokowania tras nietoperzy

Zapowiadam też kolejne elementy jak klucze i drzwi itp. Gra zdecydowanie zyskała na grywalności i dynamice i myślę, że drugie demko bardzo Wam się spodoba.

Pozdrawiam.

[#3] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #2

Nowe wieści! Obecnie optymalizuję silnik Arcymaga pod kości AGA i z tego względu przesiadłem się z C na Asembler, bo zależy mi na szybkości działania programu. Jest to dość czasochłonne przedsięwzięcie ale daję sobie radę. Przepisałem już m.in. następujące częśći kodu:
1. Procedura otwierania własnego View
2. Procedura wczytywania obrazów typu shape (obiekty jak nietoperze, bohater, płomienie)
3. Procedura wczytywania obrazów typu IFF (mapa ikonowa wliczając diamenty, klucze, drzwi).
4. Własny system Blitter Objects (BOBs).
5. Procedura obsługi joysticka
Program korzysta z Blittera i systemowo z Coppera. Z tego też względu mój program nie zadziała na karcie graficznej, Żeby jednak uspokoić posiadaczy takich kart wspomnę, że mam pełną wersję C programu, którą spokojnie będę mógł zaadaptować pod kartę graficzną. Pomysł z asemblerem zrodził się z potrzeby przyspieszenia gry. Wstawki asemblerowe, z których korzystałem dotychczas okazały się niewystarczające. Docelowo jednak gra będzie w większej części w języku C.

Z nowych rzeczy, które wprowadziłem do gry to drzwi, klucze oraz płomienie, które ranią bohatera. Po uzbieraniu wszystkich diamentów otwierają się wrota do następnego poziomu.

Pozdrawiam. Już niedługo drugie demko.

[#4] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #3

1: strata czasu.
2: strata czasu
3: strata czasu
5: strata czasu

jak widzisz, zmarnowales mase czasu dla zerowego efektu. jak juz musiales to wystarczylo przepisac kod dla punktu 4 i podpiac go do kodu w C. no ale po co pomyslec zamin zacznie sie robic...

[#5] Re: Arcymag - praca nad drugim demkiem w toku

@kiero, post #4

Rozumiem, że procedury 1,2,3,5 nie wymagają dużej prędkości zatem wersji asemblerowej. Nie ma jednak problemu. Wersja w C jest przygotowywana symultanicznie.



Ostatnia modyfikacja: 26.11.2009 00:32:22
[#6] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #5

tak jak napisalem, strata czasu.

[#7] Re: Arcymag - praca nad drugim demkiem w toku

@kiero, post #6

Praca idzie do przodu. Parę dni temu opracowałem format mapy, który zawiera dane o mapie ikonowej, w którą wlicza się diamenty, klucze i drzwi, jak również dane o nietoperzach, pochodniach i skrzynkach (są to specjalne obiekty nanoszone na mapę). Opracowałem jednocześnie prosty edytor map, w którym upichciłem już kilka mapek, które zamieszczę w demku (teraz będzie w co pograć, a zapewniam że gra się całkiem fajnie i gra nabrała dynamiki). Obecna wersja gry w pełni wykorzystuje ten format mapy. Uporządkowałem już kod źródłowy i można go swobodnie rozbudowywać. Jest wyszczególniona funkcja inicjalizacji i głównej części programu. Oceniam, że w nadchodzącym tygodniu zaprezentujemy Wam nasze drugie demko gry, póki co przede wszystkim na sprzęt klasyczny czyli AGA. Zapewniam jednak że wersja pod OS4.0 też powstanie (udało mi się pomyślnie skompilować :).

@kiero
Polecam puścić pierwsze demko Arcymaga na niedopalonej (prawdziwej) A1200. Z jakichś powodów gra działa z poprawną prędkością tylko gdy komputer ma turbo i trochę fastu, choć jej engine nie jest zbyt skomplikowany. Podejrzewam, że chodzi tutaj o systemowe przerwania itp., które obniżają tempo gry. Dlatego większość gier wyłącza system. Mam nadzieję, że się zrozumieliśmy, że przepisałem kod w asemblerze tylko po to by procedury rysujące i wyświetlające były szybkie. Pozostałe procedury przepisałem "przy okazji", bo postanowiłem cały kod przepisać do asemblera. "Po drodze" przetestowałem przeróżne formy rysowania grafiki:

* Skorzystałem z procedury QBlit() graphics.library, która to kolejkuje operacje blittera, tak że wykonywane są asynchronicznie, co powoduje że grafika wyświetlana jest szybciej i łatwiej osiągnąć 50 ramek na sekundę. Dało to dość dobry efekt i obecnie korzystam z tej funkcji.

* Sprawdziłem też, jak sprawuje się rysowanie w przerwaniu VBlank (wygaszanie pionowe) za pomocą AddIntServer() exec.library. Rezultat okazał się zdumiewający przy małej liczbie elementów animowanych - program wręcz "nie nadążał" nad wyświetlaniem tak szybko rysowanej grafiki.

Także wiele po drodze się nauczyłem i zrobiłem wiele testów. Powiem, że efekt jest widoczny i jest zadowalający, gra chodzi znacznie szybciej.

Pozdrawiam.



Ostatnia modyfikacja: 26.11.2009 20:33:03
[#8] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #7

Zapewniam jednak że wersja pod OS4.0 też powstanie

Przewidujesz wersje dla MorphOSa ?

[#9] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #7

"Polecam puscic pierwsze demko Arcymaga na niedopalonej (prawdziwej) A1200...."

ale co to ma do tego co ja napisalem? zauwaz, ze nie przyczepilem sie do punktu numer 4. moj post mial na celu pokazanie ile bezsensownej pracy zrobiles przy okazji przepisywania kodu odpowiedzialnego za punkt 4. a wystarczylo dalej pisac sobie w C i tylko czesc ktora MUSI byc napisana w asemblerze napisac w asemblerze. nie napisalem nigdzie , ze masz nie wylaczac przerwan czy innych cudakow (juz dawno sie poddalem). po prostu bezsensem jest pisanie czesci kodu takich jak inicjalizacja zasobow czy obsluga i/o w asemblerze, kiedy taki sam kod w C mozna napisac 100 razy szybciej.

[#10] Re: Arcymag - praca nad drugim demkiem w toku

@kiero, post #9

Zdaję sobie sprawę z tego co napisałeś i przyjmuję do wiadomości. Zamknijmy jednak proszę ten wątek. Zauważ, że już napisałem, że same wstawki asemblerowe okazały się niewystarczające! Lubię asembler i uznaję przepisanie tych procedur jako swoisty trening.



Ostatnia modyfikacja: 27.11.2009 12:10:28
[#11] Re: Arcymag - praca nad drugim demkiem w toku

@waldiamiga, post #8

Nie skompiluję wersji na MorphOSa, być może zrobi to ktoś inny na podstawie źródeł w C (może Rzookol będzie miał czas ;)) Jednak jest nadzieja, że wersja napisana zgodnie z systemem i na kartę graficzną uruchomi się na MorphOSie.

[#12] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #10

to jeszcze moze oswiecisz mnie dlaczego przepisanie na asembler kodu wczytujacego zasoby spowodowalo, ze sama gra dziala szybciej? albo to, ze w asemblerze odczytujesz stan joysticka? w c dalej mozesz sobie walic w sprzet. nikt ci tego nie zabroni.

[#13] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #7

Chciałbym zauważyć, że błędy zgłoszone tutaj na forum zostały usunięte:

APC74
Mam tylko małą uwagę odnośnie opóźnienia dźwięku - np. zbieram kryształek i zdążę przejść kilka kroków zanim dźwięk zebrania kryształka zostanie odtworzony. To samo jest z innymi zdarzeniami (wrzucenie kryształka do skrzyni, "zderzenia" z nietoperzem...).

Był to błąd związany z odtwarzaniem w pętli dźwięku nietoperzy. Teraz prawidłowo jest to odtwarzane.

Recedent
Zdaje mi się, że to błąd, bo raz robi tak, a innym razem inaczej. Poza tym - udało mi się "rozkraczyć" rycerzyka na pierwszym poziomie - nie pamiętam niestety dokładnie przy jakiej okazji. Co prawda jak zebrał parę kryształków to się chłop wziął w garść, ale widać, że słabe ma cokolwiek uda

To również zostało naprawione, teraz bohater zawsze stoi na baczność, kiedy jest w bezruchu ;)

Pozdrawiam :)

[#14] Re: Arcymag - praca nad drugim demkiem w toku

@kiero, post #12

Oczywiście funkcje przez Ciebie wymienione nie zmieniły prędkości silnika gry. No może dekompresowanie ILBMów jest szybsze ;) Hardware Banging jest chyba lepiej realizowany w asemblerze np. operowanie na rejestrach sprzętowych, ale oczywiście w C też jest możliwe.

Chciałbym dodać do wypowiedzi też to co zaobserwowałem. Mianowicie okazało się, że przyczyną zwolnień było kilka kwestii. Jedna to taka, że funkcja WaitTOF(), której używam czeka nie tylko, aż promień wizji osiągnie szczyt ramki, ale też zostaną wykonane wszystkie serwery przerwań VERTB. Mnie zależy, by czekać tylko na szczyt ramki, by rozpocząć blitowanie. Zatem alternatywnym rozwiązaniem okazuje się stworzenie własnego serwera przerwania VERTB o najwyższym priorytecie 127 i np. wysłanie sygnału do tasku, że takie przerwanie nastąpiło. Mój serwer jest wykonywany wtedy pierwszy w kolejności. Można dzięki temu napisać alternatywę dla WaitTOF().

Druga kwestia to własny View. Okazuje się, że w funkcja LoadView() czeka na odświeżenie ekranu, zanim zmiany odniosą skutek, co równiez może powodować opóźnienia przy przeciążeniu systemu. Tutaj rozwiązaniem może być użycie własnej copperlisty, która to ładuje obraz wtedy gdy jest nam to potrzebne. Także tyle odnośnie możliwości optymalizacji dla klasycznej Amigi. Dla kart graficznych użyję polecany przez Ciebie AllocScreenBuffer() i ChangeScreenBuffer().

Pozdrawiam. :)

[#15] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #13

Wieści:

Dokończyłem wczoraj przepisanie podstawowego silnika gry, w tym elementów jak diamenty, pochodnie, skrzynie, nietoperze, płomienie, drzwi i klucze. Gra działa identycznie jak wersja w języku C tylko jest szybciej :) Dodatkowo użyłem małej sztuczki polegającej na tym, że obszar, który nie został jeszcze odkryty jest zaciemniony, a nie cały czarny. Czeka mnie jeszcze jednak trochę pracy, ale już nad scenariuszem gry. Chciałbym, by drugie demko naszej gry było już bliskie wersji finalnej, więc chcę je dobrze dopracować.

Pozdrawiam.

[#16] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #15

a ja sie ciesze ze zagram sobie w na swojej A1200 w produkcje z 2010 roku :)
tak trzymaj MiniMat i nie przejmuj sie zgryzliwym Kiero :P



Ostatnia modyfikacja: 30.11.2009 11:14:42
[#17] Re: Arcymag - praca nad drugim demkiem w toku

@HOŁDYS, post #16

MiniMat? Moja ksywka to Minniat, ale dziękuję za inspirację ;) (może powstanie nowa ksywa). Wracając do Arcymaga to pracuję tak jak napisałem nad scenariuszem gry i już są pierwsze owoce. Premiera drugiego demka będzie niebawem, zapowiedziałem że w tym tygodniu i nie wykluczone, że dotrzymam terminu. Jest ryzyko, że będzie trochę później z powodu takiego, że scenariusz narzuca rozbudowę programu jak i dorysowanie kilku elementów. Ale zapewniam, że gra wyjdzie na światło dzienne bardzo szybko. Będzie to gierka wielogatunkowa, dojdą elementy RPG, które możecie zobaczyć w preview, które załączyłem do tego postu. Jest to tylko małe preview ukazujące tylko nieznaczną część dużego dość engine'u, który napisałem. Gra mam nadzieję będzie ciekawa.

Jeśli macie pytania lub uwagi odnośnie tego małego preview to piszcie śmiało. Zaznaczam, że ta wersja wymaga sprzętu klasycznego z kościami AGA lub emulatora :) Uruchamia się z CLI przez:
1.> execute run-amdemo
będąc w katalogu z grą. Do ruchu bohatera używa się joysticka (w preview nie ma zbyt wiele do zwiedzania, tylko wejście do zamku ale to ulegnie zmianie), a guzikiem FIRE wychodzi się z gry.

Jeśli ktoś z jakichś powodów nie może uruchomić preview, to zdradzę początek scenariusza: W grze tytułowy Arcymag jest przewodnikiem rycerza o imieniu Vincent. Pomaga mu w doli i niedoli podczas jego zadania. A nasz Vincent z polecenia króla ma za zadanie chronić zamek przed wrogimi stworami (oprócz nietoperzy będą też inne stwory). Ma też zadanie poboczne zlecone mu przez Arcymaga. Musi odnaleźć wszystkie części zaczarowanego Amuletu, który został skradziony. Dzięki niemu jest szansa, że król wygra wojnę z Orkami, którą rozpętał. Nasz biedny Vincent musi w pierwszej kolejności znaleźć strawę potrzebną mu na drogę oraz oręż, potrzebną mu w walce z potworami. Mapa będzie podzielona na wiele komnat, takie jak kuchnia, zbrojownia, skarbiec, lochy zamku itp. Zastrzegam, że ten scenariusz może ulec pewnym korektom.

Pozdrawiam. :)

[#18] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #17

Ha ! Świetnie !
Bardzo się cieszę że po licznych nieścisłościach projekt żyje i ma się dobrze. Pobrałem preview, sprawdzę je niebawem. Z mojej strony wyrazy poparcia i podziękowania za wytrwałość. Powodzenia !!

Tak zupełnie na marginesie. Vincent mi nie pasuje bo kojarzy mi się z pierwszą produkcją Tima Burtona oraz Vincentem Vegą z Pulp Fiction :D

[#19] Re: Arcymag - praca nad drugim demkiem w toku

@Logan, post #18

Ja zamiast Vincenta dał bym Henryka albo Artura :) I fajnie że taka fajna gra powstaje :D

[#20] Re: Arcymag - praca nad drugim demkiem w toku

@Roszak, post #19

Myslalem , ze juz nic nie jest w stanie mnie rozbawic ale

"A nasz Vincent z polecenia króla ma za zadanie chronić zamek przed wrogimi stworami (oprócz nietoperzy będą też inne stwory). Ma też zadanie poboczne zlecone mu przez Arcymaga. Musi odnaleźć wszystkie części zaczarowanego Amuletu, który został skradziony. Dzięki niemu jest szansa, że król wygra wojnę z Orkami, którą rozpętał. Nasz biedny Vincent musi w pierwszej kolejności znaleźć strawę potrzebną mu na drogę oraz oręż, potrzebną mu w walce z potworami."

ten scenariusz mnie powalil... yippee

Minniat nie wymyslaj juz "scenariuszuf" tylko dokoncz swoje dzielo i wydaj je... bedzie korzystniej dla wszsytkich ;)



Ostatnia modyfikacja: 02.12.2009 02:07:50
[#21] Re: Arcymag - praca nad drugim demkiem w toku

@Roszak, post #19

Roszak napisał(a):

> Ja zamiast Vincenta dał bym Henryka albo Artura :)

A ja bym arcymaga nazwał Lechem, a rycerza Jarosławem.

[#22] Re: Arcymag - praca nad drugim demkiem w toku

@Minniat, post #17

Końcówka gry: Arcymag okazuje się być złym magiem, który wykorzystuje amulet do przejęcia władzy nad królestwem w zmowie z orkami, a rycerz razem z królem zostaje wtrącony do lochu. To be continued. :)
Dobra fabuła to podstawa. Następna część: "Arcymag II: Powrót Króla". Może być zrobić w formie przygodówki albo lepiej strzelanki - rycerz swoimi magicznymi zdolnościami wyśle sygnał o pomoc, który odbiorą komputery pokładowe na statku Avalon 1 i z orkami przyleci rozprawić się Turrican :P
[#23] Re: Arcymag - praca nad drugim demkiem w toku

@snajper, post #22

snajper napisał(a):


> Dobra fabuła to podstawa. Następna część: "Arcymag II: Powrót
> Króla".

Nie chcę być złośliwy, ale MSZ "Powrót Króla" to idealna fabuła części trzeciej. Część druga powinna mieć nazwę "Arcymag: Dwie Wieże"... ;)

MSPANC...

[#24] Re: Arcymag - praca nad drugim demkiem w toku

@szuler, post #23

szuler napisał(a):

> Nie chcę być złośliwy, ale MSZ "Powrót Króla" to idealna fabuła
> części trzeciej. Część druga powinna mieć nazwę "Arcymag: Dwie
> Wieże"... ;)

true, true... OK

[#25] Re: Arcymag - praca nad drugim demkiem w toku

@szuler, post #23

szuler BRAWO !!! :P OK

[#26] Re: Arcymag - praca nad drugim demkiem w toku

@HOŁDYS, post #25

HOŁDYS napisał(a):

> szuler BRAWO !!! :P OK
>
>
ehe... że skojarzyłeś? :P
A i tak ostateczna decyzja do Minniata należy. Poza tym Dwie Wieże nie muszą wcale wyjść jako druga część, tylko jako trzecia i stanowić prequel sequela pierwszej, tak żeby było ciekawiej :P
[#27] Re: Arcymag - praca nad drugim demkiem w toku

@snajper, post #26

Sprawdziłem to "preview". Mam 2 uwagi:

- Elementy zaciemnione wydają się zbyt jasne.
- Czcionka jest nadal mało czytelna (jak dla mnie)

[#28] Re: Arcymag - praca nad drugim demkiem w toku

@Logan, post #27

Hej. Dziękuję wszystkim za sugestie. Chwilowo przerwałem pracę nad "Arcymagiem", ponieważ pracuję nad grą na Świąteczny Konkurs twórców amigowych gier! :D Zostało 7 dni, a już udało mi się napisać prawie całą grę! - jaka to gra - będzie to niespodzianka. Okazało się, że przy dobrym pomyśle na grę można taką napisać nawet w przeciągu kilku dni. "Arcymagowi" zabrakło właśnie tego pomysłu, kształt gry był zbyt słabo nakreślony, dlatego takie wielkie opóźnienie w napisaniu tej gry. Tak czy inaczej myślę, że uda się mi i Krzyśkowi dociągnąć ten projekt do końca. W kolejnej odsłonie "Arcymaga" na pewno wykorzystam zupełnie nowy silnik gier dla Amigi klasycznej z kościami AGA i kartą turbo, taki jaki wykorzystuję przy pracy nad grą na Konkurs. Ten silnik ma bardzo duży potencjał, który można wykorzystać w pisaniu wielu ciekawych gier dla Amigi klasycznej.

Pozdrawiam.

[#29] Re: Arcymag - praca nad drugim demkiem w toku

@kiero, post #4

może zrób coś od siebie a nie czekasz na gotowe
no, pochwal się ile ty umiesz
typowy polaczek krytykant , wiecznie niezadowolony
trzymam kciuki za projekt OK
[#30] Re: Arcymag - praca nad drugim demkiem w toku

@MuppetShow, post #29

masz racje, kiero to leń i nicpoń a do tego urwis, nic nigdy dla amigi nie zrobił

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