Skocz do zawartości

Konrad-GM

Użytkownicy
  • Zawartość

    2622
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    14

Ostatnia wygrana Konrad-GM w Rankingu w dniu 12 Czerwiec

Konrad-GM posiada najczęściej lubianą zawartość!

Reputacja

32 Mała Cegła Społeczności

O Konrad-GM

Contact Methods

  • Website URL
    https://lethiandev.github.io/

Previous Fields

  • Steam
    samael_x92
  • Użytkownik GameMaker Studio 2
    Nie
  • Użytkownik GameMaker Studio
    Tak
  • Użytkownik GameMaker 8
    Nie
  • Użytkownik GameMaker 7 i wcześniejszych wersji
    Nie
  • Użytkownik Unity
    Nie
  • Uytkownik Godot
    Tak

Profile Fields

  • Płeć
    Mężczyzna

Ostatnie wizyty

21416 wyświetleń profilu
  1. Przetestuj różne ustawienia, które najlepiej będą działać dla Twojego projektu. Tutaj nie ma najlepszego, jedynie słusznego wyboru, staraj się, żeby wykonywać jak najmniej tzw. "draw calls", jeżeli chcesz optymalizować rendering oczywiście. Rozmiar tekstur do potęgi dwójki ma na celu zoptymalizowanie rysowania jak i zachować kompatybilność z prawie każdym GPU. Większość nowszych GPU wspiera tekstury NPOT, ale najwyraźniej GM idzie bardziej w kompatybilność sprzętową.
  2. Nie zostaną pewnie nawet podzielone na texture pages, bo dwie tekstury 3840x2160 (i więcej oczywiście) nie mieszczą się w atlasie o rozmiarze 4096x4096. Chyba, że inne sprite dołączą się do tego samego texture page. Tła musiałyby być podzielone na 2048x2048 (a właściwie to 2046x2046, ale to poniżej dlaczego), żeby zmieściły się 4 w jednym atlasie, bądź po prostu trzymaj się rozmiarów 4096x4096 na tła. To już decyzja którą sam musisz podjąć mając na uwadze wymagania projektu. Jeszcze pozostaje kwestia obramowania - jeżeli zmieścisz więcej jak jedną teksturę na atlasie, to pozostaje problem z wrapowaniem pikseli przy interpolacji. Defaultowo GM2 używa opcji 'clamped' co rozwiąże Ci większość problemów z interpolacją pikseli. A więc wynikowy rozmiar wrzucony do texture page i tak będzie większy niż 3840x2160 (zapewne zostanie rozszerzony do 3842x2162): Opcję tę można wyłączyć wymuszając ładowanie tła na oddzielnym texture page. Pamiętaj również, że jak tekstura będzie większa jak texture page, to zostanie zeskalowana w dół.
  3. 1. Tekstura i tak zapewne zostanie przydzielona do texture page 4096x4096, ale trzymałbym się pociętych tekstur, żeby w razie zmniejszenia texture page (każdy export ma inny limit) GM nie rzygał błędami przy kompilacji. 2. Nie widzę przeciwwskazań. 3. Texture page jest inaczej zwanym atlasem tekstur, a rozmiar ograniczony jest na każdy export ponieważ niektóre GPU nie obsłużą Ci tak dużych rozmiarów tekstur. https://docs2.yoyogames.com/source/_build/1_overview/3_additional_information/texture_pages.html
  4. Game Maker Studio 2

    Backgrounds wyrzucili z drzewka zasobów oraz usunęli powiązanie z tłami API background_index, background_colour itd.. Przy imporcie tła powinny być skonwertowane na warstwy i w razie używania backgroundowych API, powinno Ci automatycznie podmienić również kod na API warstw. https://help.yoyogames.com/hc/en-us/articles/231719468-Porting-A-GMS-1-4-Game-To-GameMaker-Studio-2
  5. Animowana mgła 2D

    Jest to prosty shader, wystarczy większość kodu po prostu skopiować do fragment shadera. Port zrobiony w 5min: https://gmclan.org/up1717_16_FogShader.html
  6. Tablice odczyt,zapis

    To tak jeszcze dodam od siebie przy postinkrementacji (ta sama zasada przy postdekrementacji) var a = 3; show_message(string(a++) + ", " + string(a++)); show_message(a); Da wynik "3, 4" i "5", ponieważ postinkrementacja (jak i również postdekrementacja) działa jak funkcja, bo po każdym a++ zwracana jest stara wartość i dopiero dodawana 1. Gdyby w GM istniały referencje, to wyglądałoby to mniej-więcej tak (kod dla przykładu w C): int postinc(int &var) { int temp = var; var += 1; return temp; } I wywołanie postinc wygląda tak: // A tutaj kod w pseudo-C, więc też nie do kopiowania :) int a = 3; show_message(string(postinc(a)) + ", " + string(postinc(a))); show_message(a); Dlatego czasami może być szybsze używanie ++a zamiast a++ (względem wykonywania kodu, nie jego tworzenia ), bo pomijamy etap kopiowania wartości do zmiennej tymczasowej. Chociaż taka mikro-optymalizacja w GM jest bezużyteczna, z wiadomych chyba względów. Oraz warto pamiętać, że używanie kilka razy a++ w jednym wywołaniu skryptu/funkcji może dać nieoczekiwany wynik.
  7. poziomy trudności w grze

    Globalna zmienna, tak jak to opisuje @SimianVirus7, jest jak najbardziej spoko opcją, ale dodatkowo zrobiłbym to jak @gnysek proponuje, wystarczy dodać stałe do projektu difficult_easy, difficult_medium i difficult_hard. Ale zrezygnowałbym ze switchy, są mega brzydkie
  8. Tablice odczyt,zapis

    Nie do końca, a++ nie da wyniku 4, a 3. var a = 3; show_message(a++); show_message(a);
  9. HTML5 i przycisk "wstecz"

    Panowie, a co z window.addEventListener? Można przecież podpiąć eventy tj. 'beforeunload' albo/i 'unload'. Jeżeli chodzi o attachEvent, to IE i canvasy to i tak odpadają, więc można pominąć w ogóle.
  10. Hosting dla GM'owego programu

    Cześć, podeślij jeszcze konfigurację GM Web-api. Znak '%' oznacza po prostu "dowolny ciąg znaków" w tym wypadku adres klienta kończący się na ".devil" (to pewnie jakiś wewnętrzny DNS MyDevila). Jeżeli @gnysek używał MyDevila to powinien wiedzieć jak odpowiednio skonfigurować bazę.
  11. Niestety sporo drobnych, acz użytecznych funkcji brakuje Visual Studio, które by mi ułatwiły z pisaniem w C++ i TypeScript/JavaScript. Dlatego w większości czasu i tak korzystam z VisualStudio Code. Chociażby wyświetlanie białych znaków, żeby nie commitować tabulatorów zamiast spacji (ofc. linter przed commitem też może pomóc, ale jakoś wygodniej mi mieć bieżący podgląd co robi IDE), albo zamiana zakończeń linii z CRLF (Windows) na LF (Uinx like) to po prostu koszmar pod Visual Studio, to samo dotyczy się kodowania znaków na UTF-8...
  12. A więc to "problem" z IDE a nie samym językiem czy kodem. Z tą globalną funkcją to zasugerowałem się Twoim ostatnim pytaniem więc stąd ta nadinterpretacja Podejrzewam, że używasz Visual Studio - IMO w takim razie jedyne co możesz zrobić, to wyłączyć wyświetlanie wyjątków (PPM na "Output Window", odznacz "Exception Messages") a informacje które Cię interesują wypisywać do konsoli samemu, np. możesz użyć klasy System.Diagnostics.Debug żeby pisać do strumienia "Output Window". Nie widzę, żeby Visual Studio miał jakąś funkcję do filtrowania wyjątków np. po nazwie, niestety.
  13. Hosting dla GM'owego programu

    Przekierowanie domeny to akurat nie problem. Jeżeli masz domenę wykupioną na dhosting to możesz dalej ją tam opłacać (poza hostingiem) albo kupić/przenieść gdzieś indziej np. nazwa.pl czy godaddy.pl - jedyne co musisz zrobić, to dodać domenę (virtual host) na swoim hostingu www i zmienić DNS żeby przekierowały na nowy hosting.
  14. Zapewne niewłaściwie podchodzisz do łapania wyjątków. Globalna funkcja łapiąca WSZYSTKIE wyjątki to chyba najgorsze rozwiązanie na które mogłeś wpaść - właśnie przez to masz ten problem. Jeżeli API zapewnia rzucanie wyjątkami, powinieneś je obsługiwać z poziomu swojego kodu już w aplikacji, podczas wykonywania jakiejś funkcji, zwłaszcza jeżeli nie chcesz "pewnych" wyjątków propagować w górę. Minimalizuj korzystanie z globalnej funkcji do łapania wyjątków.
  15. Jeszcze natknąłem się na taki artykuł o js. Dodając prefix gmcallback_ do skryptów w GMie można wywoływać te skrypty z poziomu innych javaskryptów na stronie, np. gml_Script_gmcallback_moj_skrypt(); powinien odpalić Ci skrypt z gry.
×