[#1] Sposoby robienia gier na amigę (klasyczną)
Ostatnio popełniłem kopię pewnej mini amigowej gry (fani Lotusa 2 zrozumiejo), aby obczaić choć trochę konstruckje gier.

Gra została zrobiona w javie. Kod:
https://github.com/richardpi/dux_game_java

Ogólnie nie mam doświadczenia w programowaniu gier, a na amigę to już w ogóle.

W java applet (lub innym "nowoczesnym" obiekto-podobnym języku) mamy pomocnicze funkcje takie jak run(), paint(), które pomagają w kółko odświeżać współrzędne obieków, sprawdzając kolizje i rysując wszystko na ekranie.

Czy programowanie gier na amigę klasyczną dużo różniło się od objektowo-orientacyjnej filozofii a'la java?

Z tego co pamiętam np. Amos to był język proceduralny i nawet nie wiedziałbym od czego zacząć.

Czy są na amigę jakieś silniki, frameworki (nie koniecznie amos), które mają wbudowane podstawowe funkcje przydatne do robienia gier (np. dla c lub innego amigowego języka programowania. Oczywiście nie chodzi mi o czarną magię typu assembler)?

Ostatnia aktualizacja: 29.07.2016 11:57:51 przez rizn
[#2] Re: Sposoby robienia gier na amigę (klasyczną)

@rizn, post #1

Jest C/C++ z SDLem do Amig z kartą graficzną lub C z graphics.library - API do działania na układach graficznych.

Dla mocnych jest asembler + programowanie układów specjalizowanych - podobno wcale nie takie trudne.

Na systemy NG jest przeportowane Allegro oraz także działa SDL.

Z języków basicowych to oczywiście Amos oraz BlitzBasic (Wormsy w wersji na Amigę w nim powstały oraz Skidmarks).
[#3] Re: Sposoby robienia gier na amigę (klasyczną)

@rizn, post #1

nie. krotko rzecz ujmujac:) chyba ze mowimy o nowych amigach, to tam moze jakies biblioteki by sie znalazly
[#4] Re: Sposoby robienia gier na amigę (klasyczną)

@rizn, post #1

polecam amosa, gdzie rysowanie bobow na ekranie i wykrywanie kolizji jest wzglednie proste i bardzo dobrze napisane (tzn. dziala dosc szybko)

i o ta szybkosc sie rozbija... nowoczesne komputery nie potrzebuja optymalizacji bo nadrabiaja gigaherzami :) takie wykrywanie kolizji mozna by napisac w najgorszy mozliwy sposob a i tak bedzie dzialalo rownie szybko jak w prawidlowy.. a na amidze juz tak prosto nie jest :) (sprzetowe wykrywanie kolizji jest dosc slabe niestety, chyba ze mowa o banalnej grze gdzie faktycznie wystarcza sprite'y)

Ostatnia aktualizacja: 29.07.2016 12:32:22 przez juen
[#5] Re: Sposoby robienia gier na amigę (klasyczną)

@pong777, post #2

Allegro? Chyba tylko dla AmigaOS 4.x?

Amos byłby fajny gdyby działał bezpośrednio pod PPC i kartami graficznymi, a nie tylko na OCS/ECS i 68k.

Ostatnia aktualizacja: 29.07.2016 12:53:02 przez KM
[#6] Re: Sposoby robienia gier na amigę (klasyczną)

@KM, post #5

Myślę, że sprawny koder dorobiłby extensiona do tego celu. Amos jest otwarty na nowe funkcje i procedury.
[#7] Re: Sposoby robienia gier na amigę (klasyczną)

@pong777, post #6

Szczególnie że takie próby miały już miejsce (XAMOS).
[#8] Re: Sposoby robienia gier na amigę (klasyczną)

@Leon, post #7

XAMOS (Cross-AMOS) alpha 0.29
[#9] Re: Sposoby robienia gier na amigę (klasyczną)

@pong777, post #6

Myślę, że sprawny koder dorobiłby extensiona do tego celu. Amos jest otwarty na nowe funkcje i procedury


Amos chociaż żeby dorobił się natywnej obsługi AGA , to było by dobrze ! Na 68k bo mamy Vampire i Winuae szeroki uśmiech
[#10] Re: Sposoby robienia gier na amigę (klasyczną)

@pong777, post #2

no to rzeczywiście chyba Amos jako jedyna alternatywa pozostaje dla osób "czujący" raczej programowanie wysokiego poziomu. BlitzBasic podobno nie jest zbyt dobrze udokumentowany.

także sobie rozkminam, ile było kombinowania z porównaniem do dzisiejszych metod, to czlowiek nabiera pokory :)
[wyróżniony] [#11] Re: Sposoby robienia gier na amigę (klasyczną)

@rizn, post #10

no a propo dokumentacji to nieskonczone ilosci zrodlowek z amosa na aminecie, ksiazki i seria amos pd, ktora chyba doliczyla sie z tysiaca dyskietek. amos to chyba najbardziej udokumentowany i najbardziej rozwiniety amigowy jezyk
[#12] Re: Sposoby robienia gier na amigę (klasyczną)

@juen, post #4

nowoczesne komputery nie potrzebuja optymalizacji bo nadrabiaja gigaherzami :)

No niezupełnie tak jest. Najnowsze maszyny też potrzebują użycia zoptymalizowanych algorytmów (również rysowania przez kartę graficzną). Także to nie jest przypadłość Amigi.

AMOS jest bardzo fajny i można w nim błyskawicznie tworzyć gry (z muzyką, animacją i efektami).

Jednakże dla kogoś kto zna Javę polecałbym raczej język C i zapoznanie się z bibliotekami Amigi.

Dzisiaj pisze się gry trochę inaczej niż kiedyś. Bierze się pod uwagę, że gra nie musi być koniecznie na nośniku włożonym do stacji DF0, jak również to, że komputer może mieć zainstalowaną pamięć FAST, nowszy procesor lub inny monitor niż PAL.

Dzięki użyciu bibliotek systemowych można napisać program, który nie ma problemów z różnymi konfiguracjami Amig.

Można zaniedbać te rzeczy, ale z reguły taki soft ma problemy z kompatybilnością.

Jeśli pisze się grę na Amigę to polecam (choć nie jest to konieczne) poznać chociaż podstawy Asemblera. Jest to wiedza bardzo przydatna.
[#13] Re: Sposoby robienia gier na amigę (klasyczną)

@Hexmage960, post #12

mimo wszystko zostane przy swoim zdaniu. na potwierdzenie tego moge podac przyklad tworzenia gier we flashu, gdzie czesto tworza je graficy nie majacy zadnego doswiadczenia w programowaniu. robia je byle jak, byleby dzialaly i efekt nierzadko jest swietny.

takich przykladow jest mnostwo. przeciez nie mowie o highendowych silnikach robionych przez dziesiatki osob tylko w kontekscie proby stworzenia samemu gry bez doswiadczenia
[#14] Re: Sposoby robienia gier na amigę (klasyczną)

@rizn, post #1

w amosie zacząć jest bardzo łatwo.
Wystarczy wpisać

Screen Open 0,320,256,16,Lowres
Hide
Flash Off
Cls 0
Paper 0
Ink 1
Print "hello"
Wait Key

I gotowe. A dalej to już dasz radę, jak nie dasz to zadawaj pytania na forum a odpowiedzi się znajdą.
[#15] Re: Sposoby robienia gier na amigę (klasyczną)

@asman, post #14

"w amosie zacząć jest bardzo łatwo."

ale dokonczyc wszystko juz nie latwo ok, racja
[#16] Re: Sposoby robienia gier na amigę (klasyczną)

@selur, post #15

Jak w każdym języku.
[#17] Re: Sposoby robienia gier na amigę (klasyczną)

@selur, post #15

W moim przypadku to się za dużo otwiera projektów :)
[#18] Re: Sposoby robienia gier na amigę (klasyczną)

@juen, post #13

Ja miałem na myśli bardziej Javę, ale co do Flasha - to z tego co się orientuję (czytałem trochę na ten temat) jego wirtualna maszyna jest mocno zoptymalizowana. I korzysta z akceleracji sprzętowej.

Ogólnie jeśli masz np. odrysować kawałek planszy to czy na Amidze, czy na PC odrysowujesz ten kawałek a nie całość ekranu. Przestrzega się tego, inaczej nawet szybki procesor zacznie mulić.
[#19] Re: Sposoby robienia gier na amigę (klasyczną)

@Hexmage960, post #18

nie do konca, przeciez tworzy sie gry takze z uzyciem c2p dla maszyn 030+ :)
takze np tworzac gre 3d nie rpzerysowywujesz kawalka ekranu bo nie ma to sensu..
[#20] Re: Sposoby robienia gier na amigę (klasyczną)

@juen, post #19

Ale kolejne klatki w takim choćby Doomie nie są liczone cały czas od nowa. Wystarczy spojrzeć do dokumentacji, gdzie jest napisane, że jak mamy odpowiednią ilość pamięci, cała mapa jest renderowana do pamięci. I dzięki temu można uzyskać dobrą prędkość.
[#21] Re: Sposoby robienia gier na amigę (klasyczną)

@Hexmage960, post #20

Wow, gdzie takie cos wyczytales? W doomie i wszystkich grach 3d renderowana jest cala klatka, moze poza panelem dolnym.
[#22] Re: Sposoby robienia gier na amigę (klasyczną)

@kiero, post #21

Przepraszam, pomyliłem się.
[#23] Re: Sposoby robienia gier na amigę (klasyczną)

@rizn, post #10

A ja piszę w C. Skończyłem prawie jedną grę na cztery zaczęte. ;)

Pisanie pod system jest fajne jako punkt startu. Zwłaszcza jeśli sobie nie ubzdurasz jakiejś minimalnej konfiguracji Amigi, tak jak ja A500 z 1MB i kickiem 1.3.
Wtedy okazuje się, że funkcje w kicku 1.3 są zabugowane i piszesz część sam od nowa.
A potem okazuje się, że w dokumentacji ostatnio aktualizowanej 20 lat temu jest jeszcze sporo błędów, dowiadujesz się o tym w twardy sposób.
A potem się okaże, że wszystko działa za wolno, bo pozostałe API Amigi było pisane choć całkiem wydajnie, to jednak raczej na silniejsze konfiguracje. Więc zaczynasz przepisywać resztę.
A potem Twoje pomysły żeby pewne rzeczy napisać inaczej lub szybciej okazują się być niezbyt fajne, więc robisz rewrite. I tak z 5 razy.
A potem jest nadal za wolno bo masz dodupny kompilator lub dodupny skill lub nie piszesz w asemblerze i nic Ci innego nie pomoże.
A potem nagle w Twoim kodzie zaczynają się pojawiać regresje tam, gdzie ich nie powinno być.

A potem albo rzucasz to w diabły albo piszesz korzystając z tego co jest i obniżając pułap i oczekiwania wobec wydajności, albo brniesz w to szaleństwo i cieszysz się każdą jego chwilą. Ja wybrałem to ostatnie. ;)

Jak chcesz pisać na ograniczone sprzęty, to OOP jakie znasz z Javy wybij sobie z głowy. Jest miejsce na abstrakcję, ale niewielkie. Programowanie strukturalne też trzeba znać, bo z niego naturalnie wyszło OOP i nawet można je w tej mocno pierwotnej formie stosować. Tyle ode mnie, ale ja tam żadnym mastahem nie jestem, więc jakoś mocno się nie sugeruj.
[#24] Re: Sposoby robienia gier na amigę (klasyczną)

@teh_KaiN, post #23

albo brniesz w to szaleństwo i cieszysz się każdą jego chwilą. Ja wybrałem to ostatnie. ;)


szeroki uśmiech
[#25] Re: Sposoby robienia gier na amigę (klasyczną)

@teh_KaiN, post #23

no właśnie... trzeba chyba mieć pewne predyspozycje psychiczne, aby na to szaleństwo się brnąć :), szczególnie jeśli człowiek został rozleniwiony kiedy wszystko za niego jest zrobione (wysoki poziom)

ostatnio próbowałem skonfigurować c++ z opengl pod linuxem i takie proste zadanie mnie wycieńczyło, a co dopiero zmaganie się z c pod amisią :)

więc jednak chyba jedyną słuszną drogą pozostaje amos
[#26] Re: Sposoby robienia gier na amigę (klasyczną)

@rizn, post #25

Phi, cieniasy... Ja tam sobie ustawiłem niedawno i GCC i VBCC na A1200 z 68020@28 i fajnie mi się pisze.
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