YYG poinformowało, że w przyszłym tygodniu (13 - 17 maja 2024) zaprezentuje tegoroczną prezentację GameMaker Update, w której dowiemy się jakie nowości powinniśmy dostać w ciągu nadchodzących kilkunastu miesięcy.
Czego się spodziewamy?
- szczegóły o nowym runtime - GMRT - oraz nowościach jakie zaoferuje
- więcej szczegółów o rzeczach które obecnie widnieją już na roadmapie (layery UI, Prefaby, Code Editor 2, przepisanie obsługi okien w IDE, Pluginy)
- niezapowiedziane rzeczy
- coś na temat rzeczy które zniknęły z roadmapy (rollback, triggery obszarów, akcje przycisków)
Pełne podsumowanie nowości znajdziecie na GMCLANie niedługo po opublikowaniu prezentacji. Na tę chwilę nie jest znana dokładna data.
Linki do ciekawych stron
GM 2024.4 dostępny
Zakończył się kwiecień, więc zgodnie z planami na ten rok YYG wydało nową aktualizację GM. Niestety, parę rzeczy zostało przesuniętych na kolejne (czerwcowe) wydanie, ale daje to dodatkowe dwa miesiące na wykrycie ich błędów, a korzystać z nich i tak będzie można już w kolejnym tygodniu w wersjach beta.
Co nowego w wersji 2024.4 ?
- zmieniono domyślną ścieżkę dla projektów (co za zapobiegać nieświadomej synchronizacji z Google Drive lub OneDrive) - można jednak przywrócić sobie w preferencjach "starą"; GM będzie wykrywał i ostrzegał o zapisywaniu w folderach synchronizowanych
- kompresja tekstur dla GPU (więcej w poprzednim newsie)
- nowe tryby blendingu - teraz można ustawić tryby równań jakie zajdą, a nie jedynie sposób mnożenia pikseli źródłowego i nowego; służy do tego funkcja gpu_set_blendequation()
(domyślny, stary tryb to bm_eq_add
)
- nowe funkcje dbg_view_exists(view), dbg_section_exists(section)
- nowa funkcja dla Androidów: gamepad_enumerate()
, pozwalająca wykrywać gamepady bez potrzeby ustawiania zgody na dostęp do Bluetooth (BLUETOOTH_CONNECT
)
- zaktualizowano bazę gamepadów
- Nowe projekty będą teraz posiadać pliki .gitignore, .gitattributes
- Zmiany SDK: YYC nie korzysta już z 32-bitowego linkera, może to wymagać aktualizacji preferencji, do tego zmianie uległy minimalne wymagania dla SDK: Android, Switch, PlayStation, Xbox, trzeba je ręcznie podnieść dla istniejących projektów
- Przy importowaniu stripów (pliki z końcówką _stripN
, gdzie N to liczba klatek które zostaną stworzone) przy przeciąganiu do IDE spowodują usunięcie suffixu _stripN z nazwy.
- Nowe ustawienie dla domyślnej prędkości sprite wstawianych na asset layer w roomach
- Skróty wieloliterowe w IDE: pozwala na ustawienie skrótów klawiszowych korzystających z więcej niż jednego znaku, wciskanych po sobie (podobnie jak w np. Visual Studio), typu Ctrl+A,S
.
- Poprawki wydajności IDE
Nowy Edytor kodu pozostaje na razie jedynie w wersjach beta i pozostanie tam tak długo, jak będzie potrzebował.
Więcej informacji o 2024.4: releases.gamemaker.io/.../4
Jeśli ciekawi was na co czekamy w wersji 2024.6 (planowanej na początek wakacji), zapraszam do dalszej części wpisu.
Kompresja tekstur GPU dostępna w GM
Na tę chwilę czekał każdy, komu w grze brakuje FPSów na słabszych sprzętach, dotyczy to więc zwłaszcza osób tworzących na Androidy i Switcha.
Od najnowszej wersji 2024.4 (a także w wersjach beta) dostępna jest opcjonalnie kompresja sprzętowa tekstur pod GPU, co oznacza, że w przeciwieństwie do obrazów JPG, PNG czy QOI tekstura taka nie musi zostać rozpakowana do 32-bitowej bitmapy, a samo GPU bez problemu poradzi sobie z wszelkimi operacjami na tej teksturze w jej skompresowanej wersji. Oszczędza to zatem zarówno pamięć VRAM jak i czas przy korzystaniu z shaderów, czy po prostu przy rysowaniu na ekranie.
Repozytorium z przykłądowym projektem oraz instrukcją używania znajdziecie na githubie yoyogames:
github.com/YoYoGames/GM-GPUTextureCompression
Przygotowanie projektu jest na razie dość specyficzne, gdyż YYG nie skupiało się na razie na wsparciu po stronie IDE dla tego rozszerzenia, czekając na nasz feedback - możliwe więc, że w kolejnych wersjach nie będzie trzeba ręcznie wpisywać kompresji dla każdej grupy tekstur.
Co ważne, mimo kompresji i oszczędności VRAM na niektórych platformach (zwłaszcza na Androidzie) nadal obowiązuje limit wielkości tekstur. Nie wynika on tyle z wagi tekstury jaka faktycznie zmieści się w pamięci a... z limitu sterowników, które nie chcą operować na wartościach większych niż np. 2048 (2^11) czy (2^12). Wciąż jednak powinien być odczuwalny efekt poprawy nawet na niższych ustawieniach - jak twierdzi YYG, niektóre z testowanych przez nich gier zyskały aż 10x na wydajności. Jak jest faktycznie - zapewne trzeba poczekać na pierwsze opinie innych twórców.
Nowy Edytor Kodu w Becie!
Doczekaliśmy się - od wersji 2024.400.0.532 w betach IDE dostępny jest nowy edytor kodu. Poza samymi funkcjonalnościami typowymi dla dzisiejszych edytorów, wprowadza on jeszcze jedną ważną nowość - edycję obiektów w trybie pełnego ekranu. Oznacza to, że zamiast latających okienek połączonych liniami, dostaniemy wszystko na pełnym ekranie (wszystkie eventy jeden pod drugim), a "stary" styl edytowania, który jest z nami od ponad 20 lat, odchodzi powoli w zapomnienie.
Nowy edytor pozostanie w becie tak długo, jak będzie tego potrzebował i niemal pewne jest, że nie pojawi się jako element miesięcznej wersji 2024.4 - jeśli chcecie więc go wypróbować (i zgłosić wszelkie propozycje i błędy) - musicie pobrać wersję beta (którą da się zainstalować osobno od wersji "miesięcznej" czy LTS). Warto też testować edytor na kopiach projektów. Jeśli nie widzicie nowego edytora - należy go włączyć poprzez Preferences > Code Editor 2 - bez włączenia tej opcji można pozostać (prawdopodobnie na stałe) przy obecnym wyglądzie edytora.
Pierwsza beta z serii 2024.400
Od wydania wersji 2024.2 minęły już dwa tygodnie, czas więc na kolejny dwumiesięczny cykl wydawniczy GMa.
Wersja 2024.4 powinna wprowadzić sporo DUŻYCH nowości, widocznych dla oka, w przeciwieństwie do poprzedniczki która przemycała wiele rzeczy pod spodem, szykując grunt na "mięsko" w kolejnych miesiącach.
Jeszcze przed świętami powinniśmy dostać wyczekiwaną betę nowego edytora kodu, są też plany rozpoczęcia wkrótce otwartej bety nowego runtime - o szczegółach zapewne dowiemy się już w trakcie GDC, które startuje w poniedziałek, 18 marca.
Przy okazji wydania nowej bety, YYG zaszczyciło nas też nową stroną na której można sprawdzić listę nowości!
Jest to zdecydowanie najlepsza i najbardziej czytelna odsłona tej strony jaką do tej pory widzieliśmy.
releases.gamemaker.io
Co nowego?
- lokalne pakiety (local packages) mogą być teraz tworzone bez logowania (co ma związek z darmową wersją GM)
- można teraz ustalić własną domyślną prędkość animacji dla sprite'ów w roomach
- w przypadku przeciągania stripów do IDE, stworzony sprite będzie pozbawiony suffixu _stripN
, gdzie N oznacza liczbę klatek
- poprawki wycieków pamięci IDE
- dwie nowe funkcje dbg_view_exists(view), dbg_section_exists(section)
- poprawki dla 110 bugów
Więcej zmian pojawić ma się po powrocie ekipy YYG z USA.
Szczegóły tej i kolejnych bet 2024.400 znajdziecie pod adresem releases.gamemaker.io/.../400
GameMaker 2024.2 wydany!
Z lekkim poślizgiem (potrzebnym na poprawki ostatnich bugów) zajechała pierwsza tegoroczna wersja GameMakera - 2024.2.
Lista nowości tym razem nie jest imponująca - dlatego, że skupiono się na poprawkach bugów, oraz przygotowaniach pod nowy runtime i pakiety, więc kolejne lepiej widoczne zmiany pojawią się dopiero w marcowych betach. Czasem jednak odrobina stabilności też jest potrzebna
- Nowe funkcje: is_mouse_over_debug_overlay()
, is_keyboard_used_debug_overlay()
, vertex_submit_ext()
, handle_parse()
(zamiana stringa w referencję na asset), window_enable_borderless_fullscreen()
(fullscreen dla gier bez obramowania), GM_is_sandboxed
- Zmiany w działaniu funkcji dbg_text_input()
, json_parse()/json_stringify()
(lepsze wsparcie dla undefined, możliwość własnego filtrowania i wyłączenia konwersji z/na referencje GMowe)
- Sekwencje mają od teraz możliwość ustawienia efektów (FX) dla dźwięków
- Narzędzie do konwersji projektów z wersji 2.x, 2022.x i 2023.x do najnowszej wersji, wspierającej pakiety zasobów
- Debug overlay zyskał wyświetlanie tekstur, surface i zużycia pamięci
- kompresja tilesetów, dzięki czemu roomy z dużą ich ilością zajmują mniej miejsca na dysku
- HTML5 otrzymał nowe argumenty dla gml_pragma
które pozwalają zoptymalizować gry tak, aby korzystały z natywnych funkcji JS zamiast własnych YYG np. dla operacji matematycznych. Ustawienie jest opcjonalne, w razie, gdyby jakiś specyficzny fragment kodu jednak psuł nasz eksport
Pełna lista zmian: github.com/YoYoGames/GameMaker-Bugs/milestone/7
W marcu są duże szanse, aby ruszyła otwarta beta nowego runtime, oraz otwarta beta nowego edytora kodu. Warto zaznaczyć, że to nie oznacza ich dostępności w wersji 2024.4 - zostaną w becie nieco dłużej, ale to nie jedyne nowości jakie nas czekają. O ich szczegółach dowiemy się w ciągu najbliższych dni, wraz z pierwszą wersją beta 2024.4.
FMOD w końcu dostępny w GameMakerze
YYG poinformowało dziś, że skończyło prace nad rozszerzeniem FMOD. Dzięki temu, można teraz odtwarzać aż 20 formatów audio, w stosunku do raptem 3 które obsługuje normalnie GM (wav, ogg, mp3). Do tego oferuje też różne dodatkowe efekty, czy analizę. Więcej informacji pod adresem: github.com/YoYoGames/GMEXT-FMOD/wiki
Warto dodać, że o FMOD jest darmowy, o tyle gry które osiągną sukces komercyjny mogą potrzebować licencję - szczegóły znajdziecie na: fmod.com/licensing
Pierwsze większe zmiany w LTS dopiero w 2025, w 2024 jedynie aktualizacje SDK
Ucieszą się osoby, które z różnych powodów wolą korzystać z wersji GameMakera, która nie posiada "chorób wieku dziecięcego" dzięki nie wprowadzaniu żadnych nowości, a oferuje jedynie poprawki dla poważnych bugów i aktualizacje SDK, co ułatwia nam aktualizacje, gdy dobrze działającą potrzebujemy jedynie rekompilować jeśli wymaga tego np. AppStore, Google Play, czy sklepy konsolowe, wprowadzając jakieś nowe wymagania - a nie zmienia się nic w kodzie.
YYG planuje kolejne wydanie LTS (Long Term Stable) wyrównujące je z bieżącymi funkcjami IDE i runtime dopiero w 2025 roku (oznaczone jako 2025.0). Powodem tak dużego rozstrzału jest stopniowe wprowadzenie w tym roku nowego runtime (w ciągu kilku tygodni ma ruszyć otwarta beta), który do 2025 powinien już być wystarczająco stabilny.
Obecny LTS doczeka się co najmniej jednej aktualizacji SDK w tym roku (2022.0.3; jeśli zajdzie nagła potrzeba - odpowiednio więcej) - więc będzie zdatny to pracy zapewne nie tylko w tym, ale co najmniej w przyszłym roku.
Warto jednak czasem sprawdzać na kopii projektu, jak działa on w bieżących wersjach GM - chociażby wersja 2024.2 dostanie kilka poprawek optymalizujących dostęp do struktur i wszelkich danych które wymagają hashowania, a nazwy te są literałami (czyli nie mogą się zmienić w trakcie gry) - zmiana ta pozytywnie dotyka zwłaszcza kompiler GMS2 YYC - przy grach mobilnych może to oznaczać, że większa liczba sprzętów osiągnie wymarzone 60/60 FPS, jeśli gra miewała problemy na telefonach-zmieniakach.
Wersje miesięczne nadal będą się pojawiać tradycyjnie co 1, 2 lub 3 miesiące.
World of Horror z nominacją do Paszportów Polityki 2023
Miło nam poinformować, że stworzona w GMie gra World of Horror, nad którą pracował znany wam z forum @japanstache, czyli Paweł Koźmiński, został nominowany do Paszportów Polityki 2023 w kategorii Kultura Cyfrowa. To jak na razie najwyższe wyróżnienie dla GMowych gier które powstały w naszym kraju, dlatego gratulujemy!
Pierwsza beta na 2024 dostępna
Opóźniona przez problemy z nowym edytorem kodu, który ma wkrótce także trafić do bety, dostępna jest pierwsza wersja beta na ten rok (2024.2), dla wydania, które będzie dostępne pod koniec lutego.
Jakie zmiany? Na tę chwilę, dostaliśmy chociażby kilka nowych funkcji:
- GM_is_sandboxed
- pozwala sprawdzić, czy projekt pozwala na otwieranie plików w dowolnych lokalizacjach (przydatne dla bibliotek)
- handle
(które prawdopodobnie zostanie zmienione na handle_parse()
, żeby nie kolidować ze zmiennymi twórców), które pozwala pobrać referencję na asset po jego nazwie jako string
- is_mouse_over_debug_overlay, is_keyboard_used_debug_overlay
- dla wyłączenia eventów w grze, gdy korzystamy z debugowego ImGui
- window_enable_borderless_fullscreen, window_get_borderless_fullscreen
- funkcje które dodają obsługę fullscreena przy braku ramki okna gry
- json_stringify, json_parse
- dostały nowy argument filter_func
który pozwala "poprawić" json przed zapisem. Dodatkowo, null
nie będzie już odczytywane jako pointer_null
, a jako undefined
, co pozwoli na szybszy odczyt danych w tej samej formie, jak zostały one zapisane. Jakby tego było mało, referencje na Assety zostaną zapisane ze specjalnymi prefixami i suffixami @ref ASSET
, dzięki czemu tak długo jak nie zmienimy nazwy assetu, możemy go zapisać i wczytać w plikach json.
Poza tym, poprawiono odczyt zmiennych, zwłaszcza struktur - zależnie od użycia kompilerów VM czy YYC zysk może wynosić od 1,5-2,5x, więc może to mieć spory wpływ na grę, zwłaszcza, jeśli korzystacie z zagłębionych struktur np. do tworzenia GUI.
Poza tym, od teraz można w oknach debugowych w grze zobaczyć tekstury i sprawdzić statystyki garbage collectora.
Wprowadzono też kompresję danych o tilesetach, co powinno pozytywnie wpłynąć na rozmiary .exe, jeśli korzystacie z tej funkcjonalności.
Pełna lista zmian: github.com/YoYoGames/GameMaker-Bugs/milestone/7?closed=1
To oczywiście nie wszystko na kolejną wersję, a niektóre z powyższych funkcji mogą jeszcze być doszlifowywane i zawierać bugi - warto jednak je przetestować i zgłaszać wszystkie błędy które znajdziecie, żeby nie trafiły one do wersji miesięcznej i żeby nie czekać z ich naprawą aż do kwietnia
YYG przeniosło też całe repozytorium Feature Requestów do bazy bugów, więc teraz wszystko będzie na jednej liście, co ułatwi sprawdzanie notek o wydaniu.
Najnowsze wersje GameMakera:
wydana 8 dni temu
wydana 206 dni temu
wydana 10 dni temu
![:D](/data/skins/1/images/emot2.gif)