[#151] Re: Zapowiedzi nowych gier

@asman, post #150

Można się zastanowić. Pamiętaj, że to są usługi jak najbardziej systemowe: graphics.library i input.device.

Jeśli za OS wziąć system ekranów i okienek Amigi intuition to rzeczywiście jest to rozwiązanie nieprzyjazne temu środowisku.

Danie zera na końcu, by handler intuition nie został wykonany jest udokumentowane i to jedyne rozwiązanie, by użytkownik przez przypadek nie nacisnął czegoś na ekranie pod spodem naszego View.

Zatem View z graphics.library oraz handlery input.device to rozwiązania niższego poziomu, ale są to rozwiązania udostępniane przez OS.

Jeśli za OS wziąć system, którego najniższym zasobem są biblioteki exec.library, graphics.library i urządzenia jak input.device to jest to rozwiązanie jak najbardziej legalne w kontekście systemu.

--
Dzisiaj udało mi się kontynuować pracę. Tworzę warstwę, dzięki czemu to co wystaje poza ekran jest przycinane. W ramach testów wyszedł mi mini program graficzny. Działa bardzo szybko. Może go udostępnię.

Ostatnia aktualizacja: 24.10.2016 21:21:11 przez Hexmage960
[#152] Re: Zapowiedzi nowych gier

@Hexmage960, post #99

Miniat, jak tam progres w tworzeniu gry?
[#153] Re: Zapowiedzi nowych gier

@michalmarek77, post #152

Nie przeszkadzaj. Teraz gra i pisze recenzje Valhalla.
http://www.ppa.pl/forum/strefa-gier/35736/valhalla-1-pytanie#m544956
[#154] Re: Zapowiedzi nowych gier

@Hexmage960, post #151

Jak tam prace nad gra? Kiedy moza bedzie zagrac?
[#155] Re: Zapowiedzi nowych gier

@Norbert, post #153

Ostatnio pisał jakoś tak:
Obiecałem w zeszły weekend, że pokażę menu. Postaram się w ten weekend go zrobić. To plan minimum.

Czyli mamy jeszcze kilka godzin na plan minimum ;)
Jeszcze wszystko może się zdarzyć. Na przykład pomysł na kolejny projekt.
[#156] Re: Zapowiedzi nowych gier

@Norbert, post #153

@Norbert
Nie piszę recenzji Valhalli.

W ostatnie dni nie miałem Amigi na chodzie. Dopiero wczoraj ją złożyłem. Ale jeden dzień nicniemówienia to doskonały pretekst by skłamać, rzucić kamieniem, oraz zachęcić inne osoby do tego samego.

Projektu nie zarzuciłem, rysowanie i obsługa myszy działa, o czym wspominałem. Menu jeszcze nie ma.

Szkoda, że padają takie słowa. Już nie proszę o to, byście pomogli mi w programowaniu, czy nawet przesłaniu paczki grafiki. Proszę o chociaż elementarną życzliwość, szczególnie wobec człowieka w mojej sytuacji.

Daty 1 listopada jeszcze nie ma, jest pojutrze. Wrzucę co mam.

Ostatnia aktualizacja: 30.10.2016 20:27:19 przez Hexmage960
[#157] Re: Zapowiedzi nowych gier

@Hexmage960, post #156

To nie chodzi o brak życzliwości. Zdeklarowałeś konkretny termin którego nie dotrzymałeś (cytowałem), no chyba że miałeś na myśli długi weekend do wtorku ;]
Odróżnij motywację od bezpodstawnej krytyki. Ciebie trzeba pilnować
[#158] Re: Zapowiedzi nowych gier

@Hexmage960, post #156

Olej pokaz działającego menu, fajnie jakby na planszy szło jednym pojazdem sie poruszać klikając gdzie ma jechać :)
[#159] Re: Zapowiedzi nowych gier

@Hexmage960, post #156

Nie pokazuj nic, póki nie będziesz miał czegoś skończone lub nie natrafisz na problem, w którym ktoś miałby Ci pomóc. To takie moje spostrzeżenia. Tych co krytykują jest zdecydowanie więcej, nie będzie rozczarowań po obu stronach. Do pracy kolego, do pracy. OK
[#160] Re: Zapowiedzi nowych gier

@Hexmage960, post #156

Ile obserwatorów tyle pomysłów nt. pokazywania i niepokazywania. ;) Ja bym mimo wszystko pokazał co się ma - i tak cała Twoja praca była póki co w kodzie, więc nikt tu raczej okiem niczego nie zauważy, a będziesz miał spokój z tymi co się upominają.

Możesz też potem pobawić się z nami w tygodniowe raporty niezmiennie składające się z 3 rzeczy:
- co zrobiłeś od ostatniego raportu,
- co Ci sprawiło największy problem na przestrzeni tego tygodnia,
- co zamierzasz zrobić do czasu następnego raportu.
Ostatnio zacząłem takie podejście stosować i potrafi motywować. ;)
[#161] Re: Zapowiedzi nowych gier

@Hexmage960, post #156

Wiedziałem że takie publiczne tworzenie Twojej gry nie będzie łatwe. Jak widać istnieje spora presja na upublicznianie postępów - co z pewnością przyjemne nie jest. Ale wnosząc z historii Twoich poprzednich licznych, niedokończonych projektów, muszę chyba stwierdzić że to może być dla Ciebie jak najbardziej dobra rzecz - pomimo tego że trochę "uwiera w tyłek". Pokazuje to w gruncie rzeczy że ludzie chcą w pewien sposób wesprzeć Twój wysiłek... No i tak naprawdę to nie musisz się zabierać z tak ambitny projekt jak napisanie gry kompletnie sam, chociaż jak na razie widzę że skupiasz się na samym kodzie, co jest według jak najbardziej OK.
Powodzenia życzę ! Mam mam dzieję że podczas pisania tego projektu dużo się nauczysz i sprawi Ci to przyjemność
[#162] Re: Zapowiedzi nowych gier

@Hexmage960, post #130

Skoro masz słomiany zapał zawsze możesz pisać gry proste, np. takie jak bywały na Atari 2600. Proste i szybkie w wykonaniu pomysły które ogarniesz sam bez potrzeby szukania pomagierów. No bo teraz nie masz renomy osoby kończącej gry i na chętnych do tworzenia grafiki i ogólnie pomocy przy Hex-dune nie masz co liczyć ... co innego jakbyś miał skończone kilka gier, nawet ultra prostych.

Gry na Androida udowadniają że styl jest ważniejszy od rozbudowania i technicznych aspektów np. grafiki. Warto zobaczyć takie nowe retry o '8-bit' gry bo pokazują pewne rozwiązania które nie przyszły do głowy twórcom w latach 80/90 a idealnie pasowałyby do Amigi. Jak dobrze pogłówkujesz możesz zrobić w tym stylu mały lokalny hit.

Nawet jeśli nie hit lepiej wydać kilka prostych gier niż całe życie zaczynać klon Dune2 w którego nikt by nie grass ł nawet jakby wyszedł...
[#163] Re: Zapowiedzi nowych gier

@XoR, post #162

Dziękuję serdecznie za wszystkie konstruktywne komentarze powyżej.
Wrzucam jak to w tej chwili wygląda.

Bardzo wczesne preview

Od poprzedniego tygodnia:
- Przepisałem kod do C celem szybszego postępu,
- View jest alokowane dynamicznie umożliwiając podwójne buforowanie,
- Usprawniłem handler input.device,
- Dodałem własnego duszka za pomocą systemowej funkcji.

No więc mamy pierwsze, bardzo wczesne preview.
Przedstawia zupełne podstawy silnika - otwieranie własnego View (przejęcie obrazu), obsługę myszy i klawiatury za pomocą własnego handlera input.device co czyni silnik bardzo szybkim przy zachowaniu zgodności z systemem. Do tego mamy też własnego duszka, który reprezentuje wskaźnik myszy i jego ruch jest obsługiwany przez mój program. Mój wskaźnik myszy może mieć do 15 kolorów i być animowany. Obecnie wykorzystuję zaledwie 2 kolory.

Preview wymaga Amiga OS3.1.

Z programu wychodzimy klawiszem ESC co zresztą jest napisane w pliku Preview1.txt.

Program będzie oczywiście rozbudowywany dalej. Tempo powinno się zwiększyć. Dziś i jutro niestety czeka mnie nauka, bo w czwartek mam kartkówkę, więc chyba dużo nie dodam, ale później będę kontynuował pracę dużo intensywniej.

Pamiętajcie, że moje zdrowie poprawia się z tygodnia na tydzień i efektywność pracy również rośnie. Menu jeszcze w tym preview nie ma, ale będzie w następnym.

Ogólnie uważam, że praca idzie mi naprawdę dobrze teraz. Zresztą możecie się sami przekonać. Kod tego preview wrzuciłem na serwer:
Main.c
System.c
System.h

Ostatnia aktualizacja: 01.11.2016 12:01:54 przez Hexmage960
[#164] Re: Zapowiedzi nowych gier

@Hexmage960, post #163

Jak chcesz udostępniać kod to w ogóle proponuję Ci repozytorium na githubie czy innym takim - każdy będzie mógł patrzeć na Twój progress i częstotliwość wrzucanych zmian, kod nigdzie nie zginie i takie tam. Swoje rzeczy kiszę na repozytoriach od czasu incydentu z Villages, popularnością się nie cieszą ale przynajmniej danych tak łatwo nie stracę.

Kiedy następne preview? ;)
[#165] Re: Zapowiedzi nowych gier

@teh_KaiN, post #164

Z GitHubem jest bardzo dobry pomysł, bo czas najwyższy usystematyzować swoje programowanie. Kod właśnie wrzuciłem na repozytorium na dysku mojej Amigi Użyłem Revision Control System.

Z RCSa nie potrafiłem do tej pory korzystać (bo w kółko kasowałem, zamiast pliki zapamiętywać). Nadeszła pora by to zmienić

Sądzę, że lepiej jak będę regularnie korzystał chociaż z RCS na Amidze. Będę przerzucał na PC jakieś ważniejsze wersje.

Zatem pierwszy preview wrzucony na repozytorium RCS. Dalej będę rozbudowywał istniejącą wersję.

Następny preview mam nadzieję za tydzień lub dwa. Myślę nad dwoma drogami:
- Napisać menu i małe intro wprowadzające w grę,
- Rozpocząć pisanie właściwego silnika gry (trudniejsze).
Co chcielibyście zobaczyć najpierw?
[#166] Re: Zapowiedzi nowych gier - bug raport

@Hexmage960, post #165

Nie mam teraz jak sprawdzić na A1200 z 040, ale na WinUAE w trybie 040 + FPU widzę czarny ekran z zielonym celownikiem (kursor myszy). Plik exe ma 10 kB. Tak ma być?
[#167] Re: Zapowiedzi nowych gier - bug raport

@Andrzej Drozd, post #166

Tak! Dobrze działa.
[#168] Re: Zapowiedzi nowych gier

@Hexmage960, post #165

Co chcielibyście zobaczyć najpierw?


Menu. No i mam nadzieję że zgłoszą się też graficy, którzy zaproponują ewentualne poprawki.
[#169] Re: Zapowiedzi nowych gier

@Andrzej Drozd, post #168

Ale w to menu się jakoś mocno nie wgryzaj - zrób mocno podstawowe, nawet z czarnym tłem i idź do samej gry. Ja teraz w swoim krapie zaprototypowałem ważniejsze części gameplayu i chwalę sobie to podejście, bo spaliłbym pełno czasu na menu a potem by się okazało, że np. czegoś nie dam rady zrobić i projekt by poszedł później w odstawkę.
[#170] Re: Zapowiedzi nowych gier

@teh_KaiN, post #169

Tak, myślałem o czarnym tle pod menu. Chciałbym zrobić buttony, które później mógłbym wykorzystać również w panelu dowodzenia gry. Myślałem, żeby w menu zawrzeć wybór strony konfliktu (z opisem płynnie wyświetlanym na ekranie). Na razie czcionka podstawowa. I jakiś minimalny efekt graficzny.
[#171] Re: Zapowiedzi nowych gier

@Hexmage960, post #170

Według mnie zupełnie nie powinienes tykać takich pobocznych taskow jak menu itp.Zmęczysz sie tylko i zagrzebiesz w tym.Nie ma co sie migać od głównego wyzwania (engine) i zajmowac pozorna robota nad ornamentami do nieistniejacej budowli Nie rob tez grafiki, uzyj do prototypu czegos z netu.Szkoda czasu i sil.

PS. W tej chwili powinienes raczej studiowac algorytmy AI w grach tego typu albo cos rownie ważnego dla projektu.To ,ze myslisz o menu jest prawde mowiac lekko porażające

Ostatnia aktualizacja: 01.11.2016 14:11:06 przez Aniol
[#172] Re: Zapowiedzi nowych gier

@Aniol, post #171

Proste menu nie zaszkodzi. A działać może tylko pierwsza opcja (Start) i przedostatnia (Komu Piwo).OK
[#173] Re: Zapowiedzi nowych gier

@Hexmage960, post #163

Ogólnie uważam, że praca idzie mi naprawdę dobrze teraz. Zresztą możecie się sami przekonać. Kod tego preview wrzuciłem na serwer:


Taka mala uwaga. W swoim handlerze alokujesz pamiec za pomoca AllocMem ktore moze byc dosc powolne przy sporej fragmentacji pamieci. Skoro wymagasz i tak systemu 3.1 to moglbys sie zastanowic nad uzywaniem puli (CreatePool, potem AllocPooled/FreePooled)...
[#174] Re: Zapowiedzi nowych gier

@mschulz, post #173

Albo po prostu jakis ringbuffer. Zero alokacji.
[#175] Re: Zapowiedzi nowych gier

@kiero, post #174

I jeszcze jedno. Moze plan z przekazywaniem wiadomosci do aplikacji jest 'fajny' ale na 100% nie chcesz tego robic jezeli chodzi o poruszanie wskaznikiem myszy. Jezeli glowna petla aplikacji nie bedzie dzialac wystarczajaco szybko (tak, wiem, napiszesz, ze bedzie...) to po prostu dostaniesz skaczacy wskaznik. Wskaznik myszy powinien byc niezalezny od predkosci dzialania glownej petli aplikacji.
[#176] Re: Zapowiedzi nowych gier

@mschulz, post #173

@MSchulz, Kiero

Słuszna uwaga, przypatrzę się tym funkcjom.

W kwestii ilości zużywanej pamięci to sprawdziłem, że obecnie obciążenie jest minimalne. Nawet jak ruszam myszą, co generuje dużo wywołań handlera, moja pętla główna zdąża z odpowiedzią i zużywana jest zaledwie jedna instancja wiadomości (wiem to po składowej "count").

Jedyną kwestią jest optymalny rozmiar puli/bufora. Bo skoro jest średnio zużywana jedna instancja to pewnie wystarczy mało. Nie wiem tylko czy obciążenie czasami nie jest większe.

@Anioł, Andrzej Drozd.

Właśnie o takim prostym menu myślałem, żeby gra w trakcie prac miała wygodną obsługę. Grą AI to będę się martwił w praktyce dopiero jak obsługa pola bitwy przez człowieka będzie gotowa, czyli praktycznie na końcu pisania silnika.

Praktyka pokazuje, że lepiej jak piszę projekt małymi kroczkami. Ta taktyka sprawdza się całkiem dobrze, bo mamy coś gotowego. Wszelakie porywanie się na jakieś skomplikowane algorytmy kończy się fiaskiem.

Po prostu będę dalej pisał projekt. Najważniejsze bym go kontynuował na bazie obecnego kodu źródłowego. Tylko wówczas projekt ma szansę na rozwój.

Ostatnia aktualizacja: 01.11.2016 19:31:11 przez Hexmage960
[#177] Re: Zapowiedzi nowych gier

@kiero, post #175

@Kiero
Tak, trzeba będzie zadbać o to, by pętla główna była wykonywana szybko (a przynajmniej, żeby pętla pobierania sygnałów z myszy była wykonywana wystarczająco często).

Ogólnie input.device ma mały overhead w stosunku do intuition.library.
[#178] Re: Zapowiedzi nowych gier

@kiero, post #174

Albo po prostu jakis ringbuffer. Zero alokacji.


Albo jeszcze prosciej:
- Kazda wiadomosc i tak zaczyna sie od struct Node. Mozna wiec na starcie zaalokowac np. pule 10 wiadomosci i wrzucic je na liste wolnych wiadomosci.
- Potem w handlerze wystarczy jedno REMHEAD zeby pobrac wiadomosc z listy wolnych wiadomosci
- Jezeli REMHEAD wzrocil NULL mozna zaalokowac nowa pule 10 wiadomosci i dorzucic do listy wolnych wszystkie poza media ktorej uzywamy
- Zwalnianie wiadomosci przychodzacych na ReplyPort to jedno ADDHEAD na liscie wolnych wiadomosci, mozna by nawet zmienic sobie tymczasowo ln_Type na cos wlasnego. Zaden ringbuffer, zadle pule pamieci ;)
[#179] Re: Zapowiedzi nowych gier

@mschulz, post #178

Uważam, że proponowane przez Ciebie pule pamięci (Memory Pools) to jest najlepsze rozwiązanie, jeśli chodzi o alokację pamięci.

Z tego co czytam pula pamięci się automatycznie rozszerza i zmniejsza w zależności od zapotrzebowania. Więc jest to zbliżone do tego co teraz napisałeś.

Co do systemu wiadomości, to zostawiłbym Put/Get/ReplyMsg(). Nie ma potrzeby tworzyć własnego systemu wiadomości. Przecież intuition korzysta z tego systemu z powodzeniem.

Dobrze, wnioski z naszej rozmowy wysnułem następujące:
  • Muszę spróbować wykorzystać te pule pamięci (nigdy z nich nie korzystałem),
  • Postaram się zadbać o to, by pętla obsługi myszy była wystarczająco szybka.

Od początku pracy nad tym projektem zauważyłem, że niektóre czynności muszą być wykonywane często, a niektóre rzadko. Pętla obsługi myszy uplasuje się gdzieś w środku tego zestawienia. Tak, by działała płynnie.
[#180] Re: Zapowiedzi nowych gier

@Hexmage960, post #177

Dobrą praktyką w grach z wskaźnikiem myszy jest aby był niezależny od jakichkolwiek pętli oraz działał z prędkością odświeżania ekranu i nie używał buforowania tj. celujemy w uzyskanie najmniejszych opóźnień.

Swoją drogą gra nie powinna działać w żadnych 50Hz jeśli jest pisana na system i RTG. O ile wydajność procesora na to pozwala scrollowanie powinno być płynne bez nakładania sztucznych ograniczeń.
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