Skocz do zawartości

sunflower

Użytkownicy
  • Postów

    47
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez sunflower

  1. sunflower

    CA 2012 - Dyskusja

    To ja tu wychodzę na parę godzin, a wy tu robicie taki bajzel? Wstyd, panowie, wstyd! ;-; Zastrzeżenia do GMa można mieć różne, wiem tylko, że na moje potrzeby działa naprawdę dobrze. Jeśli ktoś chce korzystać z czegoś innego - jego sprawa. Teoretycznie, skoro to GMClan, to i Community Awards powinny w miarę dotyczyć produkcji GMowych, ale widziałam jak to się czasami trzyma tego warunku GMowatości (znaczy się, praktycznie wcale, np. przy Lidze czy gdzieś :P), a skoro i wcześniej brały udział gry nieGMowe, to i teraz też nie ma chyba przeciwwskazań... ...prawda? ^^' Tramur, proszę jeszcze tylko, wytłumacz mi, co miałeś na myśli pisząc o tym: Może właśnie jest jakiś problem, o którym ja nie wiem, i teraz popełniam błąd życiowy próbując siłować się z GMem, podczas, gdy później pojawiłyby się nieoczekiwane kłopoty! ;-; (no, chyba, że to naprawili w GM:Sie? ^^') ---Edit--- A, i jeszcze jedno: "homara" pisze się przez samo "h". ;) (a co do kaszana: w istocie, ten lisek *jest* straaasznie czarujący ^-^)
  2. sunflower

    CA 2012 - Dyskusja

    Uchh, wybacz, ale jak mam rozumieć "organizację kodu" i czemu jest zła w GMie? W szczególności, kiedy i jak przeszkadzała? ^^' Poza tym niezależnie od tego, czy to to nazwiemy produkcjami "indie" czy "amatorskimi", to nadal o ile mi wiadomo, w GMie powstaje sporo fajnych i grywalnych produkcji i chyba właśnie taki jest cel - żeby taki pojedynczy ktoś (albo niewielka grupka) mógł sobie zrobić mniej lub bardziej rozbudowaną grę, która mogłaby się okazać znacznie ciekawsza od wielu tak zwanych "poważnych" produkcji.
  3. Tak, pingwin i wrona nie są kosem. Dzięki specjalnemu pominięciu rozpoznawania znaczeń system całkowicie akceptuje, jeśli nazwa instancji nie ma specjalnego sensu w odniesieniu do nazwy obiektu, co umożliwia programistom kreatywne, nieskrępowane sztywnymi konwencjami pisanie kodu!1 Zasadniczo to, co zamierzam zrobić, to szkielet do budowy kolejnych, bardziej doprecyzowanych silników. Jak już uda mi się to zbudować, to pewnie okaże się, że potrzebuję kolejnych komponentów w zależności od gier, i wtedy być może będę te komponenty załączać jako osobne zestawy obiektów i skryptów. To, co teraz ma powstać, może się np. okazać bardzo praktyczne przy tworzeniu dialogów RPGowych, choć żeby takie dialogi dobrze wyświetlać, to wypadałoby z kolei zrobić kolejny komponent odpowiedzialny za pokazywanie dialogów (komunikując się z kontrolerem poleceń; przy rozpoczęciu dialogu kontroler poleceń ładuje do wątku zbiór kwestii dialogowych, każe je po kolei wyświetlać komponentowi dialogowemu, komponent dialogowy pyta o następne kwestie jeśli skończył z obecną, a po przejściu przez wszystkie kwestie dialog się kończy). Bardzo prawdopodobne, że zrobię też silniki skrojone pod bardziej szczegółowe rodzaje gier. Więc odpowiadając nieco krócej na to pytanie: ten silnik ma być wykorzystano jako szkielet do szkieletów aplikacji, w pewnym sensie; sam z siebie nie stanowi czegoś co wystarczy do stworzenia gry, ale może okazać się bardzo praktyczny w wielu mniej lub bardziej znaczących zastosowaniach. O ile nie piszę tego pod debugowanie/testowanie aplikacji, to zastosowanie też zostało poruszone - istnieje możliwość korzystania z konsolki, która przechowuje ostatnie logi i może je wyświetlić w razie potrzeby. Z doświadczenia wiem, że czasami takie printy lepiej działają niż np. takie show_message (choćby ze względu na możliwość przejrzenia poprzednich logów).
  4. Ja korzystam z emotek, ale takich co mi się nie zamieniają na obrazki. :< Co do kontrolera instancji, to tak jak mówisz, możesz odnosić się do instancji poprzez nazwę zamiast przez ID; w szczególności, inne komponenty mogą się dobierać do tej instancji przez jej nazwę. To co wtedy chciałam opisać kosem i rakietą, to na czym polega interakcja kontrolera zdarzeń i kontrolera instancji. Dla przykładu, mamy trzy instancje obiektu obj_kos, nazwane np. "wrona", "koliber", "pingwin", tak żeby się nie myliło. Oprócz tego jest też instancja obj_rakieta, nazwana "RAKIETA". Załóżmy, że zdarzeniu "lot" przypisano skrypt machnij_skrzydlami dla obj_kos, a zdarzeniu "lot" przypisano skrypt odpal_silniki. Poza tym przykład zawiera skrypt cevents_call, który pozwala na wywołanie odpowiedniego zdarzenia. Oto co będzie się działo: - wywołanie cevents_call("lot") przez dowolną instancję obj_kos spowoduje, że rzeczona instancja wywoła skrypt machnij_skrzydlami - wywołanie cevents_call("lot") przez dowolną instancję obj_rakieta spowoduje, że ta instancja wywoła skrypt odpal_silniki - wywołanie cevents_call("wrona.lot") spowoduje, że instancja obj_kos nazwana "wrona" wywoła machnij_skrzydlami, nawet jeśli samo cevents_call zostało wywołane np. przez rakietę - wywołanie cevents_call("RAKIETA.lot") spowoduje, że instancja obj_rakieta nazwana "RAKIETA" wywoła odpal_silniki, nawet jeśli samo cevents_call zostało wywołane przez kosa nazwanego kolibrem Czyli w ogólności: - to co jest przed kropką to nazwa instancji, która ma wywołać zdarzenie, rozpoznawana przez kontroler instancji - to co jest po kropce to nazwa zdarzenia do wykonania - jeśli nie ma kropki, to nazwa zdarzenia jest tym, co podano, a instancja która wywołuje zdarzenie jest tą samą, co wywołuje cevents_call - cevents_call jest na tyle móndry, że rozpoznaje rodzaj obiektu, do którego należy wołająca instancja (określona wyżej wymienionymi sposobami), i na jego podstawie wie, który skrypt wywołać (czyli nie każe kosowi odpalać silników czy rakiecie machać skrzydłami) Kontroler zmiennych przechowuje zmienne, które o ile dobrze wiem powinny się zachowywać w miarę globalnie. Przechowuje te zmienne w strukturze drzewiastej, albo plikowo-folderowej (gdzie folder to gałąź przechowująca zmienne i dalsze gałęzie, a plik to liść z nazwą i zawartością zmiennej). Na przykład tak mogłaby wyglądać struktura takiego drzewka zmiennych: > ROOT >> Ekwipunek >>> Pierścienie >>>> Lewy="jeden by wszystkimi rzadzic" >>>> Prawy="nic" >>> Bron="halabarda 5d6+3" >>> Zbroja="koszula+4" >> Questy >>> Obecne >>>> Olaboga="zostało 7 labogow" >>> Skończone >>>> CzyscicielKanalow="koniec" Pogrubione są nazwy gałęzi, a pochylone nazwy zmiennych z wartościami. Zauważ, że gałąź "Ekwipunek" zawiera podgałąź "Pierścienie", ale też dwie swoje zmienne "Bron" i "Zbroja". W sumie to tak jak w jednym folderze może być ileś podfolderów i ileś plików bezpośrednio podlegających. ^^' Taka struktura może okazać się pożyteczna przy tworzeniu większych projektów, np. RPGów (a przynajmniej tak mi się zdaje). Ponadto inne komponenty będą mogły się dobierać do tych zmiennych z nazwy, co bardzo się przydaje chociażby do generowania parametrów poleceń w trakcie wykonywania (np. chcesz w trakcie dialogu wyświetlić obecnie posiadaną broń, to wtedy jako jeden z parametrów podajesz nazwę zmiennej). Napisałabym jeszcze o kontrolerze poleceń, ale to jest dość długa historia i żeby pokazać jakie zastosowania to to może mieć, to też musiałabym się nieco rozpisać. ^^' A te pytania, które masz, to jakie są? O.o'
  5. Ostatnimi czasy po powrocie do pracy nad grami z okazji GMDuela zaczęłam sobie konstruować taki system, co to pomagałby mi z różnymi elementami gry. W końcu po rozważaniach takich i owakich wyodrębniłam cztery elementy, które byłyby szczególnie przydatne z różnorakich względów, co do których nie jestem pewna czy jeszcze je pamiętam, ale pewnie w trakcie tworzenia jeszcze je sobie przypomnę. ^^' System powstaje w GM:Studio, zaś wszelkie komentarze do niego są w języku angielskim. Jest ku temu kilka powodów: - obcokrajowcom pewnie też mogłoby się przydać - nie ma bawienia się z polskimi znakami, które może są, a może ich nie ma - wychodzę z założenia, że jak komuś opłaca się płatna wersja GM:S (która jest wymagana do prawidłowego działania systemu, choćby z powodu limitu obiektów, o ile się nie mylę), to pewnie i w języku wyspiarzy coś tam kojarzy (choć akurat to założenie nie jest do końca pewne...? ^^') Sporo części jest nadal w budowie, i choć sporo zostało ukończone, nadal zostało sporo drobnych rzeczy do dorobienia (np. dokomentowanie co niektórych miejsc, destruktory, wstrzymywanie i wznawianie ciągów poleceń, co jest kluczowe dla dialogów RPGopodobnych itp.), a poza tym jakaś przykładowa gierka, a i pewnie podczas użytkowania mogą wyniknąć jakieś paskudne błędy; póki co testowałam tyle, żeby sprawdzić, czy to, o co mi głównie chodziło działa tak jak powinno, a nie chce mi się wymyślać wszystkich rodzajów niebezpiecznych sytuacji; jeśli to to naprawdę jest komuś potrzebne, to ten ktoś to zrobi i błąd sam wypłynie. Efekty dotychczasowej pracy można ściągnąć tutaj: https://gmclan.org/up6455_4_CIVE_Example_gmx.html Na razie to to nie wygląda na zbyt wiele (ot, taka tam konsolka na której pojawiają się wyniki potrójnych rzutów kością), ale to głównie dlatego, że jeszcze nie dodałam mechanizmu wstrzymywania i wznawiania ciągów poleceń, a poza tym zrobienie aplikacji testowej pokazującej możliwości poszczególnych funkcji samo w sobie nie jest rzeczą łatwą. A jakie komponenty wchodzą w skład mojego silnika? Są to: Kontroler poleceń - przechowuje u siebie wątki mogące wywoływać poszczególne sekwencje, a także drzewa składające się z ciągów poleceń. Istotną cechą jest możliwość przechowywania poleceń, które mogą zostać wywołane w dowolnym późniejszym momencie i w odpowiednich grupach (w zależności od kontekstu mogą to być fragmenty algorytmu sztucznej inteligencji, linie dialogowe itp.). Parametry poleceń mogą być także uzyskiwane w trakcie wywoływania (np. uzyskanie obecnego imienia postaci albo losowego numeru). Kontroler poleceń korzysta ze "zdarzeń" (w rozumieniu tutejszego kontrolera zdarzeń); w istocie każde polecenie jest informacją o zdarzeniu, które należy wywołać. Kontroler zdarzeń - właściwie to ze zdarzeniami ma głównie tyle wspólnego, że tak to sobie nazwałam. Pozwala na przypisanie skryptowi i jego parametrów odpowiedniej nazwy, np. można przypisać "gadanie" do skryptu "mowa" z parametrem "gadula" i "rozmawianie" do skryptu "mowa" z parametrem "rozmowca". Albo coś. Jeśli skrypt ma działać prawidłowo jako "zdarzenie", powinien korzystać z odpowiedniej notacji; w szczególności, arg(n) zamiast argumentN i args_count() zamiast arguments_count. To dlatego, że podczas wywoływania skryptu nie da się przekazać bliżej nieokreślonej liczby argumentów jako kolejne parametry innego skryptu. Kontroler instancji - umożliwia rejestrację instancji pod odpowiednimi nazwami; nazwy te wykorzystuje się m. in. do wybrania odpowiedniego obiektu wywołującego zdarzenie (np. wywołanie zdarzenia "leci" przez instancję obj_kos powoduje wywołanie tego przez rzeczonego kosa, a wywołanie "rakieta.leci" - przez obiekt nazwany rakietą). Kontroler zmiennych - umożliwia gromadzenie zmiennych w specjalnie przeznaczonej drzewopodobnej strukturze. Szczególnie przydatne, jeśli zmiennych jest od groma i chciałoby się je uporządkować, a przeglądanie mapy 1000 zmiennych w celu znalezienia tej jednej też nie brzmi specjalnie fajnie. Konsola - nie wchodzi w skład głównego systemu, ale jest bardzo praktyczna jeśli chcę sobie posprawdzać wartości, a akurat nie mam ochoty na zasiewanie kodu okienkami typu show_message; wówczas zasiewam go printami. Niby i jedno i drugie zaśmieca kod, ale taka konsolka może przedstawić to wszystko naraz i pozwala do tego wrócić w miarę dowolnym momencie. Jakieś pytania, uwagi, życzenia? Warto nad tym dalej pracować? ^^'
  6. sunflower

    GMDuel

    Jeśli będziesz pośród tego pola minowego latał rakietą tenisową, to chyba tak. ;)
  7. sunflower

    GMDuel

    Dopóki to będą 1-3 dni, a nie cały tydzień, to myślę, że powinno być w porządku. :P
  8. sunflower

    GMDuel

    To Huderowi i Sheriffowi też proponuję coś w okolicach poniedziałku 7 stycznia (6:00 rano dla ustalenia uwagi), co by nie trzeba było zbyt długo czekać na wynik pojedynku Chell + przegrany półfinału.
  9. sunflower

    GMDuel

    Póki co nadal zostaję przy Nowym Roku 6:00 rano, choć jeśli Pietrz chce, to można to przedłużyć nawet i do 6:00 rano po najbliższej niedzieli po Nowym Roku (czyli do poniedziałku 7 stycznia, 6:00 rano). Co na to Pietrz? ^^'
  10. sunflower

    GMDuel

    Co z Sheriffem i Huderem?
  11. sunflower

    GMDuel

    Pietrz stwierdził, że 6:00 rano 1 stycznia "Może być". To jak, oficjalnie wywieszamy temat z datą i tak dalej? ;)
  12. sunflower

    GMDuel

    Noo, zwłaszcza, że to nie twój temat. :P
  13. sunflower

    GMDuel

    Jeśli faktycznie to to jest temat który by starczył do końca roku, to proponowałabym od zaraz do godziny 6:00 rano 1 stycznia. Czekam na odzew!
  14. sunflower

    Foxi

    Sorry, ale ja kurczę miałam zajęcia do 20, a po powrocie Internet mi ciekł jak krew z nosa i nie bardzo miałam jak pobrać obie prace, a jak je zobaczyłam to kompletnie nie wiedziałam co się działo przez ten tydzień czasu bo to w ogóle nie wyglądało jakby coś się w tym czasie specjalnie działo! A tu ktoś się jeszcze wkurza, że minęły raptem cztery i pół godziny i nikt nie ocenił, jak to czasami czeka się znacznie dłużej na jakikolwiek odzew! A tak poza tym, bardzo nie podoba mi się mechanika tej gry, a zwłaszcza to jak lisek ma fizykę prostokąta otaczającego, przez co czasami lewituje w powietrzu lub jest zabijany chociaż teoretycznie zderzenia nie było widać. Poza tym co was tak wzięło na Nyan Caty i czemu NIE MAJĄ KAPCI Z KOKARDKAMI?!? Zresztą, kapcie z kokardkami to jedna rzecz, ale one nawet nie mają kokardek. Sterowanie też cokolwiek toporne, zwłaszcza z takim wysokim skokiem. Zasadniczo głównym powodem dla którego sądzę że powinieneś wygrać jest to, że konkurent jeszcze mniej się postarał i w sumie to specjalnie też tam kapci nie widziałam, a i ten Nyan Cat co był na screenie to jakoś w samej grze nie widziałam, choć teoretycznie ją przeszłam. Ogółem jestem bardzo zła z powodu tej rundy, zwłaszcza, że kazaliście mi tyle czekać, i to było znacznie więcej niż cztery i pół godziny! Dlatego ninejszym skazuję cię na walkę z Huderlordem, a Pietrza na walkę ze mną!
  15. A i owszem, zdarza mi się. :)

  16. sunflower

    GMDuel

    Ładne to to. Sam narysowałeś? :)
  17. sunflower

    GMDuel

    Jeszcze... więcej... czekania...? O.o' Mogłabym się ewentualnie zgodzić, ale pod jednym warunkiem: to, co powstanie w nowym terminie, będzie naprawdę fajne. W przeciwnym wypadku będę zła!
  18. sunflower

    GMDuel

    Jak tak teraz patrzę, to wśród ostatnich pojedynków z dolnej drabinki dwa zostały rozstrzygnięte przez wycofanie się uczestników (bez gry z którejkolwiek strony), a dwa pozostałe przez walkower (nie oddanie pracy przez jednego z uczestników mimo rozpoczęcia pojedynków). Mam nadzieję, że przynajmniej w górnej drabince będzie nieco lepiej, choć z tym kocim tematem może być różnie. ^^'
  19. Widzisz, rzecz w tym, że po Boadzie nie miałam czego się spodziewać, a po Huderze spodziewałam się pracy na dość wysokim poziomie. A teraz walczyłam z karolem320 i doszłam do wniosku, że pewnie na tę rundę też nic nie wyśle, tak samo jak na pierwszą. ^ ^' W związku z tym nawet gra robiona w godzinę spokojnie wystarczyła przeciwko brakowi jakiejkolwiek gry, a chciałam, żeby to było przynajmniej jakkolwiek grywalne, i chyba się udało, mam nadzieję? ;) Poza tym, jak wspomniałam, ostatni tydzień był nieco nerwowy, następny zresztą pewnie też będzie nie najlepszy. Cóż, może przynajmniej wygospodaruję czas na przenoszenie silnika stworzonego na pojedynek z Huderem do GM:Studio, z paroma praktycznymi usprawnieniami...
  20. Tytuł: Adblock Gatunek: Defense kurkowodnopodobny Opis: Twoją skrzynkę pocztową atakuje nawałnica spamu! Musisz odpowiednio szybko klikać na wiadomości zanim przejdą do Ulubionych! Jednak zadanie nie jest łatwe: automaty spamowe z czasem potrafią coraz zręczniej unikać twoich ataków, a w dodatku w aplikacji pocztowej ciągle wyskakuje jakaś wredna reklama, która przekierowuje nie wiadomo dokąd. Grrr... Gra zrobiona w godzinę z leciutkim okładem, bo dowiedziałam się, że karolo i tak nic nie zrobił (szczerze powiedziawszy, miałam przeczucie, że tak się stanie), a tydzień miałam trochę narwany, więc nie chciało mi się specjalnie starać. Pozazdrościłam też trochę Piedrowi, że miał tego jednogodzinnego challenge'a, więc oto rezultat (fakt, że już wcześniej miałam pomysł, ale samo kodzenie odbywało się na przestrzeni godziny z minutami)!Mam jednak nadzieję, że to co jest to jest w miarę grywalne. ^^' Download: http://www18.zippyshare.com/v/169891/file.html Rozmiar pliku: 1.5 MB Autorzy: Programowanie: Sunflower Fabuła: Sunflower Grafika: Sunflower Muzyka: brak Screeny: http://i.imgur.com/Em1P3.png http://i.imgur.com/6ct0a.png
  21. sunflower

    GMDuel

    Patrząc na tabelkę, pojedynkowałbyś się z Chellem. Przegrani pojedynków z górnej tabelki idą do górnej połowy dolnej tabelki, najwyraźniej. ^^'
  22. sunflower

    Trupia czaszka

    Tak na wszelki wypadek: wiesz, że możesz przeciągnąć obrazek z folderu na pole zasobów i wtedy GM go dodaje po wybraniu rodzaju zasobu ("Sprite" albo "Background"). Pomyślałam, że to mogłoby przyspieszyć to kopiowanie tych obrazków. ^^' *sprawdza* O, i jeszcze jak zaznaczysz kilka obrazków do przeciągnięcia, to ci je wszystkie dodaje albo do sprite'ów, albo do backgroundów, w zależności od tego co wybierzesz. Mam nadzieję, że to trochę przyspieszy proces. ;)
  23. sunflower

    GMDuel

    Ja tam nie mam nic przeciwko przedłużeniu. ^ ^' To jak, karolo, od tej soboty 6:00 AM do następnej soboty 6:00 AM? Żeby jeszcze była przestrzeń do zarywania nocy przed weekendem? :P ---EDIT--- Właściwie to nie miałabym nic przeciwko, żebyśmy zaczęli od zaraz, nadal z terminem do 6:00 AM w następną sobotę. Bo skoro może być 7+... ;)
  24. sunflower

    GMDuel

    Hmm... czyli na chwilę obecną na wynik czekają: - Adriann i Sheriff - I am vader i Uzjel - Huderlord i ja Poza tym walkowerem wygrali: Piedro i Boad (sądząc po tym, że Bedziom sam ogłosił swoją przegraną, a Cysior nie wysłał żadnego tematu od czasu jakiegoś). Ze znanych par pojedynki muszą teraz rozegrać: MXQ i karolo320 oraz Piedro i Chell. Zgadza się? ^^'
  25. A więc... - gierka dość ciekawa, nawet sympatycznie się broni tu i ówdzie - fabuła wykorzystuje motyw białego kosmosu (noo, zamglonego kosmosu, i w zasadzie białe to to chyba nie jest, no ale... ^^') - trochę szkoda, że nie ma rosnącego poziomu trudności Nie wiem jak innym, ale mnie się podoba bardziej od gry Adriana.
×
×
  • Dodaj nową pozycję...