Skocz do zawartości

odex

Użytkownicy
  • Postów

    42
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Treść opublikowana przez odex

  1. A dziękuję Oba punkty niezwykle zasadne - cała grafika jest zrobiona przeze mnie, a ponieważ moje zdolności są jakie są to wyszło jak wyszło A co do prędkości statków to był dla mnie jeden z głównych problemów odnoście znalezienia 'złotego środka', więc doskonale rozumiem, że mogą być dla kogoś za wolne/za szybkie. Może faktycznie jeszcze je minimalnie spowolnię. Szczerze to nawet nie wiem - użyłem domyślnej opcji w GM odnośnie kompresji audio. Gra też ma 200+ efektów dźwiękowych, więc to wszystko pewnie się kumuluje na taką wielkość.
  2. Tytuł: Proxy Quest Gatunek: Roguelike Bullet-Hell shooter Opis: Mój osobisty 'passion project', który powstał w większych, lub mniejszych bólach, przez ostatnie 3-4 lata. Celem Twojego zadania jest ochronienie planety, przed kosmiczną flotą piratów X-Blade, poprzez wyruszenie w podróż mającą na celu przejęcie tajemniczej broni od Twoich wrogów. Gra jest w dosyć oczywisty sposób inspirowana przez wszystkie nowoczesne 'roguelike-i', głównie EtG, Nuclear Throne, Monolith czy Steredenn. Głównie stawna ona na dynamikę rozgrywki - udany 'run' trwa około 20-30 minut. Gra posiada 20 bossów do pokonania, prawie 200 ulepszeń statku, 9 różnych statków do gry, 1000+ różnych 'roomów', oraz masę dodatkowych wyzwań, zadań i sekretów. Dodatkowo jest również pełna obsługa pada, tabela high-score, obsługa 3 save'ów jednocześnie, konfigurację wyglądu kursora itp. Download: https://tonyx.itch.io/proxy-quest Rozmiar pliku: 300MB Autorzy: Ja - Tomasz Screeny:
  3. Nie, po prostu coś takiego: ///scr_item_generator(x, y) var xx = argument[0]; var yy = argument[1]; random_set_seed(seed); //TO DOPISAŁEM var listsize = ds_list_size(global.itemlist)-1; var los = irandom(listsize); var obj = ds_list_find_value(global.itemlist, los); instance_create(xx, yy, obj); ds_list_delete(global.itemlist, los);
  4. Raczej nie bo wedle opisu problem się pojawia przy restarcie roomu. U mnie problem problem występuje nawet jak zrestartuje całą grę (puszczę kompilator ponownie). EDIT: Panowie, chyba mamy przełom. Dodałem do oryginalne skryptu generującego przedmiot jeszcze raz random_set_seed i... działa, ani razu nie dostałem innego rezultatu niż oryginalny, nawet gdy otwieram skrzynie w innej kolejności. Teraz moje pytanie - dlaczego? Tym bardziej, że wcześniej jak sprawdzałem w skrypcie to cały czas pobierało z właściwego seeda.
  5. Niestety, dalej to samo. Coś czuje, że problem leży po stronie samego GMSa.
  6. Randomize robi dokładnie to co powinien - przegenrowuje seed na losowy i wszystko zawsze jest inne zgodnie z założeniami. Skompilowałem grę i mam wrażenie, że rozstrzał jest jeszcze większy, na pewno nie działa jak powinno.
  7. Wybacz, teraz dopiero zauważyłem Twojego edita przy poprzednim poście. Zrobiłem jak pisałeś i dalej się rozjeżdża: 130 130 130 130 130 130 5 5 5 5 5 5 130 130 130 130 130 130 33 2 33 27 27 33 130 130 130 130 130 130 96 96 81 81 81 88 Aczkolwiek np zawsze pierwsza liczba to 5 i zawsze też przedmiot wylosowany był ten sam.
  8. Nie wiem czy dobrze zrozumiałem 'oddzielić od listy', zrobiłem po prostu tak: var listsize = ds_list_size(global.itemlist)-1; show_debug_message(string(random_get_seed())); var los = irandom(listsize); show_debug_message(los); var obj = ds_list_find_value(global.itemlist, los); instance_create(xx, yy, obj); ds_list_delete(global.itemlist, los); Efekt: 130 130 130 130 130 130 101 101 101 101 25 101 130 130 130 130 130 130 57 17 17 17 29 29 130 130 130 130 130 130 66 13 13 13 13 82 Pierwsza liczba to seed, liczba poniżej to rezultat (po 3 na próbę). Jak widać 3 razy pod rząd wygenerowało to samo (i faktycznie było to samo), jednak dalej są różne odchyły.
  9. Sprawdziłem i show_debug_message zawsze zwraca właściwego seeda. To nie jest też tak, że te powerupy są generowane całkowicie losowo, po paru próbach jestem w stanie odwzorować oryginalny stan, czasami jest jeden różny, czasami dwa, czasami wszystkie. Tak jakby seed zawężał mocno pole wyboru, jednak dalej pozwalał na małe przetasowania. Czy to możliwe, że ds_list jest tutaj problemem?
  10. W create obiektu, który jest pierwszą instancją tworzoną w roomie (sprawdziłem dwa razy). random_set_seed(130); To jest dosłownie cały kod. Wszystkie te meteoryty mają losowane ustawiany image_angle - to też działa prawidłowo, tylko powerupy są różne. Poniżej skrypt generujący obiekt po zniszczeniu 'skrzyni': ///scr_item_generator(x, y) var xx = argument[0]; var yy = argument[1]; var listsize = ds_list_size(global.itemlist)-1; var los = irandom(listsize); var obj = ds_list_find_value(global.itemlist, los); instance_create(xx, yy, obj); ds_list_delete(global.itemlist, los); Jak widać też nie ma tutaj nic specjalnie dziwnego, stąd też moje zakłopotanie, gdyż powinno działać.
  11. Cześć, sprawdzałem w historii, jednak nie znalazłem rozwiązania mojego problemu stąd też ten post. Powiedzmy, że tworzę grę opierającą się głównie na "losowo" generowanych numerach, coś np w stylu binding of isaac. Chciałbym użyć wbudowanej wbudowanej funkcji seedów w GM, tak by ewentualnie potem wrócić do wcześniej wygenerowanego scenariusza. Problem jest tylko taki, że po użyciu funkcji random_set_seed finalny rezultat nie zawsze jest taki sam, przykład: Oto pierwszym pokój gry, te kolorowe ikonki to powerupy, które są generowane ze zniszczonych skrzyń, jak widać na poniższych screenach mimo, że seed jest taki sam to przedmioty się różnią. Dodatkowo w prawym dolnym roku gra tworzy meteo o nieco innym kolorze. Ten meteor jest generowany losowo i zawsze jest w tym samym miejscu przy tym seedzie - to więc działa prawidłowo. W kodzie ani razu nie jest użyta funkcja randomize(). Wiem, że na wyniki generowania, nawet przy tym samym seedzie, wpływa to co robiliśmy wcześniej (różne działania prowadzą do różnych rezultatów). Problem jest taki, że jest to dosłownie pierwszy ekran i jedyne co zrobiłem to zniszczenie skrzyń zawierających te powerupy (zawsze w tej samej kolejności). Z góry dziękuję każdemu za pomoc.
  12. Path of the X v1.3 Witam ponownie. Minęło 10 miesięcy od ostatniej wersji. Przez większość czasu nic z tym nie robiłem, jednak ostatni miesiąc jakoś mnie wzięło ponownie do tego projektu i postanowiłem pozmieniać rzeczy na które ludzie narzekali i dodać kilka nowości. Oto co się zmieniło: - Nowy system poruszania się oraz kolizji ze ścianami. - nowe tła - nowe zakończenie - pseudo intro - około 200 nowych roomów - 16 nowych przedmiotów - nowi wrogowie, pickupy - kilka nowych mechanik - glowing bullets aka przedmiot dzięki któremu każdy w tym temacie wygrał jest teraz do odblokowania znacznie później w grze :) Jak komuś się nudzi to zapraszam. I jeszcze raz dziękuję wszystkim za każdy komentarz!
  13. Witam, chciałbym poruszyć pewną kwestię, która w mojej opinie zawsze w GM stwarza największy kłopot - kolizję obiektów i płynność ruchu z tym związana. Do rzeczy: moja scena wygląda bardzo prosto - mamy obiekt gracza, który znajduje się w kole (rysowanym, nie jest to prawdziwy obiekt). Chciałbym by gracz mógł płynnie poruszać się po "krawędziach" koła, bez zatrzymywania się w nich. Ma ktoś jakiś pomysł jak to zrobić? Aktualnie zatrzymuję ruch przez funkcję Point_distance, jednak wiem, że nie jest to idealne rozwiązanie. Poniżej STEP obiektu gracza (i to zasadniczo wszystko co w tej grze aktualnie jest): prawy = keyboard_check(ord("D")) lewy = keyboard_check(ord("A")) gora = keyboard_check(ord("W")) dol = keyboard_check(ord("S")) xaxis = (prawy - lewy); yaxis = (dol - gora); direc = point_direction(0, 0, xaxis, yaxis); if xaxis = 0 && yaxis = 0 { len = 0; } else { len = szybkosc; } x += lengthdir_x(len, direc) y += lengthdir_y(len, direc); if point_distance(x, y, room_width/2, room_height/2) >= 200 { x = xprevious; y = yprevious; } Będę bardzo wdzięczny za jakąś poradę jak łatwiej ten problem rozwiązać.
  14. Gibki Kaktus - gratulację, trafiłeś od razu na najlepszy przedmiot w całej grze :) Taki urok roguelike, że niektóre runy będą się przechodzić same, umiejętności wychodzą wtedy gdy tych dobrych przedmiotów nam brakuje. Co do kolizji to musi być to tylko punkt (jak to gry typu bullethell mają w naturze), zmienienie tego na cały statek wymagałoby całkowitego przebudowania gry (niektóre sytuacje byłyby niemożliwe). hgter: zielone cosie obok monet to bomby, które używasz za pomocą RMB. A statystyki kumpel wyświetla pod Q, tylko on ma do nich dostęp bo pomagał mi w beta testach.
  15. Ze względu na mechanikę w późniejszej części gry musi to tak działać.
  16. Uzjer: gratulacje - jesteś oficjalnie najlepszym graczem w tą grę na świecie ;) hgter: To co tutaj opisujesz jest to specjalny poziom policyjny, który jest w 100% opcjonalny. Możesz go uaktywnić albo poprzez użycie przedmiotu wykrzyknika, albo poprzez otwieranie niebieskich skrzynek (wtedy na końcu poziomu ma szansę zaatakować Cię większy statek policyjny, jak go pokonasz masz wybór czy robić ten dodatkowy poziom czy też nie). Zgodzę się, że ten etap jest dużo trudniejszy od wszystkiego wcześniej, jednak to bonus (który ma też potem w grze ważne zastosowanie ale nieważne ;)), dający Ci więcej przedmiotów. Samo przejście z normalnych plansz na plansz podnosi poziom do góry, jednak nie jakoś gwałtownie. Tutaj masz przykładowy run w tą grę od początku do końca -
  17. W menu masz opcje - sprawdź czy tam czasem nie ma wyłączonej muzyki - są osobne ustawienia dla soundtracku i SFX. hgter: wiem, że finalnie się z tego wycofałeś, jednak i tak się odniosę - dodanie opcji savepointu, do którego możemy wrócić po śmierci zabiłoby tą grę. Weź pod uwagę, że ukończenie runu zajmuje od 20 do 30 minut max, z czego około 20% tego czasu spędza się na pierwszych dwóch poziomach. Może są one łatwe (przynajmniej pierwszy, drugi już niekoniecznie imo), jednak też są krótsze od reszty. Pozwalają graczowi przygotować swój build na to co będzie czekać go dalej. Co do ślizgania się statku po planszy to w grze jest przedmiot który zwiększa tarcia :)
  18. No gra jest pauzą, nie widzę tutaj żadnego problemu (aka poprawione) :) Dzięki wszystkim za opinie i komentarze (liczę, że jeszcze parę takowych się pojawi :)), tak pokrótce odpisując na niektóre kwestie: Musiałeś trafić na warunek losowy utrudniający poziom - jednym z nich jest własnie ciemność. Może się to przydarzyć na każdym levelu. Rok i miesiąc, dłubane w wolnym czasie, gdy potrzebowałem odstresowacza po prac. Fakt, postaram się to poprawić. Ten komentarz akurat zaskoczył mnie mocno bo ja uważam grę za bardzo trudną, zwłaszcza tak od 3-4 poziomu, niektóre roomy to po prostu małe piekiełko. Na początku runu gra generuje długość danego piętra, po czym każdy kolejny room jest losowo wybierany z listy. Pokoje jak najbardziej mogą się powtarzać - jest ich po około 120 na poziom.
  19. Dobry fail, to tak jak człowiek już zapomniał się z forum korzysta. Naprawione.
  20. Tytuł: Path of the X Gatunek: RogueLike Bullet-Hell Shooter Opis: Jesteśmy byłym piratem międzyplanetarny, który został porzucony przez swojego dowódcę podczas walki. Teraz jego misją jest zemsta na swoim byłym przełożony... albo i nie. Jeśli grał z Was ktoś w gry typu Binding of Isaac to doskonale wie czego się spodziewać. Poruszamy się w grze po poszczególnych poziomach, składających się z poszczególnych roomów. Po drodze zbieramy doświadczenie, zdobywamy przedmioty upgradujące nasz statek i pokonujemy kolejnych bossów. Gra w liczbach: - ponad 150 przedmiotów. - ponad 800 roomów - ponad 12 bossów - 7 różnych poziomów Korzystając z okazji chciałem podziękować wszystkim na GMClan za pomoc przy tworzeniu tej gry, jak i pozytywny feedback w przypadku wersji beta. Gra powstała rok, co prawda dalej nie wszystko jest idealnie ale to taki gatunek - nigdy nie będzie w 100% ukończone :) Sterowanie W/S/A/D = ruch Myszka = celownik LMB = strzał RMB = bomba Spacja = użycie przedmiotu Q = więcej statystyk E = aktywacja sklepu Download: DOWNLOAD Rozmiar pliku: 26MB Autorzy: Programowanie: Ja Fabuła: Ja Grafika: Ja w 99% Muzyka: ja + darmowa muzyka z FMA Screeny:
  21. UPDATE: Przez ten cały czas dalej pracowałem nad grą i dodawałem nowe rzeczy, co się zmieniło? - przede wszystkim gra zyskała jakąś w miarę normalną grafikę, obiekty już nie wyglądają jak wyciągnięte z painta - doszło x2 nowych roomów (łącznie około 600) - około 20 nowych przedmiotów - kilka nowych wrogów - usprawniona mechanika w wielu elementach Jak ktoś jest zainteresowany to zapraszam do przetestowania :) DOWNLOAD
  22. Funkcja mp_grid_clear_rectangle działa, jednak teraz muszę przebudować swój cały system siatki na jedną globalną. Dla pewności w związku z tym zapytam od razu - czy jest jakiś bardziej optymalny sposób czy tamte funkcja to jest to co powinienem używać w tej sytuacji. Wiem, że jest jeszcze mp_grid_clear_cell ale ona odwołuje się bezpośrednio do komórek siatki, więc rectangle łatwiej mi po prostu usunąć te miejsca, które trzeba. Od razu dopytam też - jak zrobić by dwa takie same statki nie mogły być w tej samej komórce? Bo jak dodam do mp_grid_add_instances to wróg przestaje się całkowicie ruszać (co ma sens bo sam jest niedozwoloną komórką).
  23. draw_path: https://www.youtube.com/watch?v=DKFMutbEN2o...eature=youtu.be Jak widać ścieżka zostaje zerwana w miejscu gdzie wcześniej znajdowały się te czerwone/zielone klocki. Potwierdza to też mp_grid_draw. Tutaj jednak już widzę, że nawet po zniszczeniu tych czerwonych klocków, region w którym one stały dalej jest zaznaczony na czerwono (jako niedostępny). Ma to sens o tyle, że wrogi statek zaczyna mnie atakować dopiero gdy podlecę do niego za te kolorowe klocki, a gdy z nich wylecę to ścieżka przestaje funkcjonować. Więc pytanie - czy to normalne, że usunięcie bloków nie wykreśla ich jednocześnie z siatki? Czy ja po prostu zrobiłem coś nie tak?
  24. To w takim razie na przykładzie poniższego filmiku: https://www.youtube.com/watch?v=1YZaO1P9eoE...eature=youtu.be Jak widać poradziłem sobie z kwestią uciekania statków poza pokój (co było mocno błahą sprawą i niepotrzebnie w ogóle zakładałem temat w tej sprawie za co przepraszam), jednak dalej jak widać ścieżki nie działają poprawnie. W kodzie, który załączyłem w pierwszym poście, widać że cel jest dla statku wroga by dobrzeć do gracza. Cykl wydarzeń wygląda więc tak: 1. Start roomu - stworzenie ścieżki, 2. Ścieżka jest przyblokowana z każdej strony, bez możliwości dotarcia do celu, GM mówi "nie wiem co robić więc stoimy" 3. Ściany zostają zniszczone, droga robi się dostępna, powinniśmy ruszyć wzdłuż ścieżki po siatce do celu. Problem jest jednak taki, że tak się nie dzieje. Wróg uaktywnia się dopiero wtedy gdy podlecę blisko (co widać na załączonym filmiku), a nawet wtedy jego ścieżka nie działa prawidłowo (taniec w przód i w tył). Co do kwestii ulokowania obiektów w roomie to ściany zawsze są pierwsze, na końcu wrogowie. Dla pewności pousuwałem wszystkich i dodałem jeszcze raz - efekt taki sam jak widać. Stąd moje pytanie - gdzie jest mój błąd w logice? Dodam oczywiście, że w przypadku gdy w roomie droga jest dostępna do naszego gracza to wszystko działa bez najmniejszego problemu. Czy jest jakaś funkcja, która może mi wyświetlać ścieżkę na ekranie? I czy cała funkcja mp_grid_path nie powinna działać tak jak rozpisałem w punktach powyżej? Jeśli nie a ja jestem po prostu tępy to w jaki sposób wykonać zamierzony przeze mnie efekt? Z góry dzięki za odpowiedź
  25. To w takim razie moje pytanie jest jak działa dokładnie funkcja mp_grid_path. Jeżeli droga do celu jest niemożliwa przez elementy uwzględnione w siatce (jak np klocki w moim filmiku) to wtedy sciezka nie zostaje w ogole utworzona, zostanie utworzona ale nie będzie działać w ogóle, czy też zacznie dopiero działać jak ścieżka będzie dostępna? Bo widzę, ze to ostatnie średnio działa. Więc pytanie- jak zrobić by obiekt ruszył po ścieżce dopiero wtedy gdy będzie ona możliwa. Sorry jak coś niejasno napisałem z góry. Praca + komórka to nie jest najlepszy sposób na pisanie postów :-)
×
×
  • Dodaj nową pozycję...