Czerwiec za nami, a wraz z początkiem kolejnego miesiąca wydano "miesięczną" wersję GameMakera - 2024.6.
Co nowego?
- Tekst w roomach (na layerach) - pozwala nie tylko dodać tekst na layerze z assetami, ale też stworzyć takowy zasób na dowolnym layerze w trakcie gry. Zaletą tego rozwiązania w stosunku do draw_text()
jest możliwość justowania i ustawiania odstępów między znakami w pionie i poziomie.
- Raycast dla funkcji fizyki (physics_raycast()
)
- Dostęp do depth i stencil buffera - pozwoli na tworzenie efektów jak shadow mapping, deferred rendering, volumetric rendering, ambient occlusion - ale jeśli nie jesteście specami od tajemnic GPU, na pierwsze przykłady i gotowce od społeczności zapewne przyjdzie nam chwilę poczekać
- panel instancji i assetów w room editorze - rozwiązuje problem wybierania layerów i zawartości layerów w room editorze - dzięki temu oba są widoczne na raz; w kolejnych wydaniach właśnie tam trafią elementy layerów flex/gui
- można wyłączyć culling sprite'ów/instancji
- kolizje w kształcie elipsy działają teraz wg. rozmiaru bboxa, nawet jeśli jest on większy niż sprite (wcześniej były limitowane do prostokąta o wysokości i szerokości sprite)
- przejście na .NET8 i załatanie wielu problemów z wydajnością, w tym szybsze logowanie przy starcie IDE (ale nie wszystkich, więc zgłaszajcie koniecznie wszystko co jeszcze znajdziecie)
- ponad 200 innych zmian i bugfixów
Więcej informacji na blogu YYG: gamemaker.io/pl-PL/blog/release-2024-6
Lista wszystkich zmian i nowych funkcji: releases.gamemaker.io/release-notes/2024/6
Lista wszystkich załatanych bugów (część mogła występować tylko w betach): github.com/YoYoGames/GameMaker-Bugs/milestone/11?closed=1
Następne wydanie to 2022.0.3 LTS, a zaraz po nim 2024.8, w którym - jeśli nie będzie opóźnień: Flex Panel, UI Layer, Prefaby i wsparcie dla SVG (więc coś czuję, że nie wszystko zdąży).
Linki do ciekawych stron
Nowości w betach 2024.600
GM Update 2024 za nami, więc po obietnicach czas na czyny. Niestety, ze względu na zbyt krótki okres większość zapowiedzi zobaczymy najwcześniej w lipcu, ale to nie znaczy, że YYG zostawi nas jedynie z poprawkami. Wersja "6", oferuje całkiem sporo nowości które mogą mieć wpływ na wydajność:
- Text on Layer - możliwość dodania tekstu na layerach tak samo jak w sekwencjach. Dużym atutem jest fakt, że tekst ten można dodać także w trakcie gry za pomocą funkcji layer_text...
. W porównaniu do draw text funkcjonalność ta wyróżnia się też wydajnością (korzysta z vertex bufferów), oraz możliwością wyjustowania i ustawienia odstępów w poziomie i pionie.
- Stencil Buffer - dostęp do bufora szablonowego GPU. Pozwala chociażby na używanie maskowania bez użycia surface.
- Surface Depth - możliwość odczytania danych o "głębi" na surface. Dotyczy to raczej gier 3D, ale to jedna z tych rzeczy których wykorzystanie zależy od kreatywności twórcy
- Physics Raycast - pozwala znaleźć miejsce, w którym nastąpi kolizja obiektów z włączoną fizyką
- struct_existst/remove_from_hash
kolejna z funkcji, która pozwala na szybszy odczyta danych w strukturach poprzez wstępne hashowanie nazw zmiennych
- wyliczenie wartości dla funkcji których wynik znany jest w momencie kompilacji i będzie stały przez całą grę - więcej info w #5688
- optymalizacja wykrywania kolizji (kolizje precise nie będą już sprawdzane poza bounding boxem, gdzie i tak zawsze zwracały false)
- optymalizacje memory leaków w IDE, przejście z .NET 6 na .NET 8
Pełna lista: releases.gamemaker.io/release-notes/2024/600
Oczywiście wciąż trwają też prace nad Code Editorem 2, który nadal nie trafi do wersji stabilnej. Poza tym, do końca czerwca pojawiać będą się jeszcze różne bugfixy, ale jeśli chodzi o nowości, to minęła już data "feature freeze" i Flex Layery, Prefaby czy UI Layer zobaczymy najwcześniej 2 lipca.
Wsparcie dla JavaScript zmierza do GameMakera - GM Update 2024
YYG zaprezentowało dziś nadchodzące zmiany w GM, chociaż tym razem film był znacznie krótszy niż przez 2 wcześniejsze lata i obejmuje znacznie krótszy okres - jest możliwość, że nie zapowiedziano wszystkiego, co pojawi się w tym roku.
Poza prezentacją nowego Code Editora, który jest już dostępny w betach, więc można go sprawdzić na własnej skórze.
W końcu dowiedzieliśmy się nieco więcej o Layerach UI. Będzie to specjalna warstwa w roomach, współdzielona przez nie wszystkie, w której będą widniały kolejne sub-layery na których można ustawiać elementy. Teoretycznie, jeszcze w maju powinniśmy zobaczyć betę tej funkcjonalności.
Kolejny raz wspomniano też o prefabach - ale poza filmem prezentującym jak mniej więcej ma działać UI nie powiedziano chyba nic nowego - to nadal mają być biblioteczki, które będzie można zaciągnąć do projektu i wybrać sobie dowolne zasoby, które staną się częścią projektu. To czego nie wybierzemy, nie zostanie eksportowane. Jeżeli jakiś prefab wymaga innych zasobów w nim dostarczonych - to oczywiście zadziała to kaskadowo.
Śmietanką na torcie były oczywiście informacje o nowym runtime. Zabrakło co prawda dokładnej daty startu otwartej bety GMRT, ale mogę was zapewnić, że niewiele brakuje, aby mogła ona wystartować. Potwierdzono też, że w pierwszym wariancie dotyczyć będzie ona jedynie Windowsa, a pozostałe eksporty będą systematycznie dochodzić - w kolejności: mobilki i konsole.
Najważniejszą wiadomością było jednak nadchodzące wsparcie dla JavaScript w nowym runtime, które ma działać jeszcze w tym roku. W przyszłości YYG planuje też wsparcie dla innych języków, w tym C#. Nie poinformowano jednak w jak wielkim stopniu. Wiadomo jednak, że GML i JS będzie można miksować, więc część kodu będzie mogła powstawać w jednym a część w drugim języku, a zmienne będą przekazywane.
Prezentacja GM Update 2024 za tydzień
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)
Prezentacja nastąpi 16 maja (czwartek) o 18:00 polskiego czasu:
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/release-notes/2024/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 [url=github.com/YoYoGames/GameMaker-Bugs/milestone/10?closed=1]110 bugów[/url]
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/release-notes/2024/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
Najnowsze wersje GameMakera:
wydana 74 dni temu
wydana 2 dni temu
wydana 8 dni temu