kategorie: ANSI C, Asembler
[#31] Re: Kilka technik dla Amiga OS

@Hexmage960, post #30

Ja podaję sporo pomysłów, chciałem je jakoś usystematyzować i udostępnić innym programistom. Te techniki są sprawdzone w praktyce, kompletne i działające.


Gdy już napiszesz wszystko to dopiero udostępnij.
Posprawdzaj wszystko i pamiętaj, to ma być Twoj punkt widzenia na zagadnienie.
To nie praca zbiorowa, więc dlaczego ktoś miałby wpływać na Ciebie.
2
[#32] Re: Kilka technik dla Amiga OS

@Norbert, post #31

Hej,

Zgodnie z wcześniejszą zapowiedzią wrzuciłem nową wersję mojej biblioteki pisanej w języku ANSI C o nazwie GameX na Aminet.

Jest to pierwsza aktualizacja od 2012 roku. Tamta zawierała jeszcze mój nieaktualny e-mail i dane.

Biblioteka ma za zadanie ułatwić pisanie gier dla programistów. Szczególnie tych piszących w języku C i Asembler.

Ale, po skompilowaniu i przerobieniu na bibliotekę, dostęp do niej mogliby mieć też programiści piszący w Amiga E, a nawet AMOSie czy Blitz Basicu.

W paczce aktualnie jest kod źródłowy oraz pierwsza demonstracja, która obrazuje możliwości zawartych technik i kodu.

Demo wyświetla okno o rozmiarze 320x120 z animowaną mapą. Okno może być przemieszczane za pomocą myszy i jest animowane na bieżąco.

Ekran dema to 640x256 w wysokiej rozdzielczości. Rozmiar kafelków to 32x20 pikseli.

Jest to praktyczny przykład. Oczywiście silnik może wyświetlać dowolną zawartość w oknie, również przesuwaną.

Wymogiem biblioteki i demonstracji jest Amiga z OS 3.0+.

Planuję zamieścić jeszcze ok. dwie demonstracje. Chciałbym oczywiście stworzyć samodzielnie grę na tym silniku, waham się jeszcze w tej kwestii (przygotowałem ostatnio grafikę do klonu Boulder Dasha).

Są możliwe gry o różnej złożoności - np. taka w stylu Alien Breed lub gry wyścigowej z widoku z góry.

Poniżej zrzut z dema. Animowane drzewka narysowane zostały na szybko. System umożliwia tworzenie i animowanie większej liczby okienek na ekranie.

GameX pobierzecie z Aminetu: http://aminet.net/package/dev/c/GameX

W razie pytań proszę śmiało zadawać. Aktualnie pakiet nie ma jeszcze dokumentacji do funkcji bibliotecznych, planuję ją dodać do archiwum LHA.

Pozdrawiam.

4
[#33] Re: Kilka technik dla Amiga OS

@Hexmage960, post #32

Hej, chciałem podzielić się fajnymi postępami w mojej pracy:

Otóż przygotowałem nową wersję biblioteczki GameX. Największą nowością jest własna implementacja funkcji DrawGList() z biblioteki graficznej, która rysuje Boby.

Zaimplementowałem większość funkcji:
- Flaga OVERLAY mówi, czy Bob ma maskę,
- Flaga SAVEBACK mówi, czy zapamiętywać tło.

Zanim powstanie grafika możemy przetestować nasz silnik z kolorowymi prostokątami.

Ponadto funkcja rysująca ikony została wydzielona do odrębnego pliku.

Najnowszą wersję można pobrać stąd: https://coreprogramming.pl/GameX/GameX.lha

Uwaga: zawiera nowe demo pokazujące możliwości!

Poniżej zrzut ekranu z dema. Grafikę przygotowałem sam.

Biblioteczka jest w pełni używalna i większość funkcji przetestowana. Dodam niedługo opis funkcji dla programisty i wtedy wrzucę też na Aminet.

Serdecznie pozdrawiam.

P.S. Będę informował o kolejnych postępach. W planach mam dokończyć najpierw Blastera (choć grafika w demie pochodzi z planowanej, innej gry). Mechanika Blastera jest bardzo prosta, stąd taki wybór.

4
[#34] Re: Kilka technik dla Amiga OS

@Hexmage960, post #33

Hej!

Postępy w mojej pracy są coraz bardziej widoczne.

Przygotowałem w ostatnim czasie kilka nowych funkcji:

- Z rodziny rysujących przygotowałem funkcję, która wkleja w okienko bitmapę opcjonalnie ją skrolując - jedną operacją. Przydatna gdy chcemy wkleić fragment dużej mapy.

Opcjonalnie możemy użyć maski, gdy np. nanosimy drugą warstwę (Boby itp.). Funkcja jest ta sama. Rysowanie możemy sobie dowolnie rozdzielić na obszary - nie musimy rysować całości.

- Funkcje do przetwarzania grafiki (pikseli). Przydatne gdy chcemy zmapować grafikę itp. Możemy rozłożyć to w czasie.

- Technika 50 fps, która dzięki paru zabiegom umożliwia płynną animację, rozkładając kosztowne operacje w czasie w razie potrzeby.

Mój silnik w obecnej postaci umożliwia opracowanie na Amigę 1200 gier typu The Lost Vikings 2, Worms 2 itp. gdzie mamy dużą mapę, dużo obiektów animowanych i 256 kolorów. Myślałem, żeby wypuścić demonstracje, które to udowadniają, ale nie mam grafiki.

Aktualnie dopracowałem silnik komórkowy, na bazie którego oprócz wcześniejszego Sokobana chciałem zrobić klon Boulder Dasha (grafika pokazana wcześniej) oraz nową wersję klonu Robbo. Do Blastera mam starszą grafikę - a chciałem ją troszkę poprawić.

Silnik komórkowy jest bardzo fajny i definiuje po prostu interakcje obiekt - pole i obiekt - obiekt.

Moje problemy systematycznie się zmniejszają i faktycznie jest postęp. Mam też sporo roboty na ostatnim semestrze studiów i piszę grę tekstową na konkurs, ale postaram się wrzucić działające demo/grę korzystające z moich technik.
3
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