Linki do ciekawych stron

GMRT - ruszyła otwarta beta nowego runtime

Grafika: https://i.imgur.com/2Rrzk4r.png

Na ten dzień czekaliśmy od dawna - GM wkracza w zupełnie nową epokę.

Od dziś można testować GameMaker Runtime - GMRT, przepisany od zera silnik który będzie napędzał gry GMowe.

Różni się sposobem kompilacji (do kodu natywnego) co oznacza znaczący wzrost wydajności, co najmniej do poziomu GMS2 YYC. Pozwoli to też na kompilowanie i obsługę dodatkowych języków - już zapowiedziano JS, w planach jest też co najmniej C#. Ułatwi też kompilację dodatkowych, własnych modułów, lub modyfikację tych już istniejących, bez potrzeby tworzenia zewnętrznych rozszerzeń.

Aby wziąć udział w becie wystarczy jedynie pobrać zwyczajną wersję beta GM w wersji 2024.800 lub nowszej, a następnie pobrać wszystkie narzędzia dostępne w GMPM (Game Maker Package Manager).
Pełen opis wymagań i informacji o tym jak korzystać z GMRT znajdziecie tutaj: github.com/YoYoGames/GMRT-Beta/blob/main/docs/introduction/GMRT-beta-intro-and-setup-instructions.md .

Jedną z nowości którą dostajemy już dziś, jest eksperymentalny dostęp do API WebGPU - github.com/YoYoGames/GMRT-Beta/blob/main/docs/webgpu/webgpu_api.md .

Platformy "desktopowe" mają być gotowe do końca 2024, a wszystkie platformy, na początku drugiej połowy 2025.

Więcej informacji o becie GMRT: gamemaker.io/pl-PL/blog/gmrt-open-beta
Zgłaszanie błędów do bety GMRT: github.com/YoYoGames/GMRT-Beta/issues/new/choose
Niekompatybilności względem GML v2.3: github.com/YoYoGames/GMRT-Beta/blob/main/docs/introduction/GMRT-beta-intro-and-setup-instructions.md .

Flex Panele dostępne w becie 2024.8

Z racji miesiąca urlopowego kolejna beta musiała swoje odczekać, ale dostarczyła ona jedną z funkcji na które czekaliśmy. Mowa o Flex Panelach, które służą do budowania interfejsów i automatycznego skalowania elementów.
Funkcjonalność otworzy skrzydła niestety dopiero gdy pojawią się UI layery (po wakacjach), gdyż wtedy flexy będzie można tworzyć bezpośrednio z IDE bez potrzeby używania kodu, a także przypiąć automatycznie assety i instancje - na tę chwilę takie rzeczy trzeba zaprogramować samemu.

Grafika: /upload/ajax/20240718_68b84b2dd81b92b6121639105f6e7b95.png

Jeśli ktoś chce sprawdzić, bawiąc się na szybko stworzyłem proste demo tego co można uzyskać - gmclan.org/uploader/plik/21302,flex_test .
YYG opublikowało też wpis na blogu który tłumaczy działanie flex paneli i pokazuje parę przykładów - gamemaker.io/en/blog/flex-panel-functions .
Oczywiście wszystko wyjaśnione jest też w dokumentacji GM (na razie tylko dla wersji beta), a same właściwości flex paneli znajdziemy w dokumentacji systemy Yoga na którym oparto implementację - yogalayout.dev .

Najważniejsze zmiany w pierwszej becie 2024.800
- flex panele
- dużo poprawek dla bety Code Editora 2 (ale wciąż pozostaje trochę rzeczy do poprawy)
- funkcje gpu_set_scissor i gpu_get_scissor do "wycinania" ekranu

W ramach bet z serii .800 najprawdopodobniej dostaniemy też prefaby (w związku z wygaszaniem marketplace o którym pisałem w poprzednim newsie), oraz wsparcie dla plików SVG w runtime (wyświetlanych jako vertexy, jak SWF).

Pełna lista zmian: releases.gamemaker.io

Uwaga!
Ważne informacje dotyczące Marketplace!

YYG poinformowało dzisiaj, że wkrótce zniknie możliwość sprzedaży assetów na marketplace - będą one jednak nadal wyświetlane, a te które są darmowe (lub je kupiliśmy) nadal będzie można pobierać. Sam Marketplace będzie też w późniejszym terminie całkowicie wygaszony. Możliwe będzie jednak aktualizowanie istniejących assetów. Update: Planowana data zaprzestania sprzedaży to 14 sierpnia.

W związku z tą zmianą, YYG zachęca do zaktualizowania stron z opisami płatnych assetów, o linki do sprzedaży w innych serwisach (np. itch.io) - dzięki temu, mimo, ze przycisk "kup" zniknie z marketplace, nadal będziemy mogli czerpać korzyści z naszych zasobów.

Wkrótce mają zostać też ujawnione informacje o tym, jak działać będzie biblioteka Prefab, która zastąpi marketplace. Nasze zasoby będzie można rozprowadzać zarówno trzymając je na serwerach YYG (a w więc jako następstwo marketplace), lub też na własnych serwerach (a dzięki githubowi, łatwo będzie je również wersjonować). Prefaby mają umożliwić dołączanie bibliotek do projektu, ale eksportowanie jedynie zasobów, które faktycznie dodaliśmy do projektu. Dzięki temu, załączając np. bibliotekę zawierającą tonę skryptów, obiektów i sprite, jeśli użyjemy tylko jednego z nich, finalna gra nie będzie zawierać tylko ten jeden zasób. GM ma automatycznie wykrywać referencje, jeśli jakiś zasób odwołuje się do innego (parent w obiektach, oraz powiązane skrypty). W planach jest też dodanie do GM namespaceów (dzięki czemu prefab mógłby mieć te same nazwy skryptów co nasza gra i nie spowodowałoby to konfliktów), ale na potwierdzenie tych informacji trzeba jeszcze poczekać.

W późniejszym terminie zostanie wprowadzona opcja sprzedaży Prefabów, jednak nie będzie ona dostępna na start.

Po minięciu okresu na zwrot kupionych assetów, zebrane przez nas środki zostaną wypłacone, o ile w danych konta znajdują się poprawne dane konta PayPal.

Pełna treść ogłoszenia: forum.gamemaker.io/index.php?threads/marketplace-future-and-the-prefab-library.113969

Hotfix 2024.6.1

YYG wydało hotfix dla wersji 2024.6.1:

- przywrócono VSYNC w IDE (ale można go wyłączyć w opcjach) - brak tej opcji powodował błędy na monitorach G-Sync
- naprawiono nameof(), audio_sound_loop_end(), string_concat(), string_join() które w specyficznych przypadkach nie działały
- precyzyjne kolizje znów działają poprawnie po ręcznej zmianie image_index

Pełna lista zmian i linki do pobrania releases.gamemaker.io/release-notes/2024/6

2024.6 wydane

Czerwiec za nami, a wraz z początkiem kolejnego miesiąca wydano "miesięczną" wersję GameMakera - 2024.6.
Co nowego?

Grafika: /upload/ajax/20240702_946af705893f788cff6510b9621a866b.png

- 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).

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.

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.

Miniaturka youtube

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:

Miniaturka youtube

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.

Przeczytaj dalszą część »

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.

Najnowsze wersje GameMakera:

Stabilna
2024.06.2.162 • 2024.6.1.208
wydana 12 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 284 dni temu
Beta
2024.800.0.597 •
2024.800.0.620
 0.11.0

wydana  2 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
27 użytkowników online na discordzie:
Alice, Carl-bot, RogerDodg3r, p..., LadyLush, GibkiKaktus, Grela, TobiasM (Morgo), HappyOrange, Tival, DungeonFairy🧚, MKP (GEM), Moldis, yazaa, Dyno, Deusald, LeD, ZYGZAK, 𝕳𝖚𝖌𝖔 𝕲𝖔𝖓𝖝𝖆𝖑𝖊𝖝, Voytec, m..., bagno, l..., Alkapivo, Jayu, Krzysiek1250, Shockah
Shoutbox
gnysek (18:31, 25.07.24)
Ogłaszam nowy etap w historii GameMakera.
gnysek (11:36, 08.07.24)
Ale w sumie taki numer GG był bezpieczniejszy niż nr. telefonu czy kontakt społecznościowy. Utrudniał stalkowanie i ułatwiał banowanie.
Wojo (08:08, 08.07.24)
Niestety to już nie te czasy kiedy pytało się kasjerki o wiek i numer Gadu-Gadu...
Adriann (08:28, 05.07.24)
Albo okraść :|
Adriann (08:28, 05.07.24)
Może pani chciała zobaczyć twoje dane i Cię poderwać :d
gnysek (10:38, 03.07.24)
Mnie ostatnio w Żabce zapytali o wiek. A mam już ponad dwie osiemnastki.
Wojo (08:27, 30.06.24)
Ogólnie to miał być żart ponieważ portal internetowy, którego można opisać jako PH jest portalem przeznaczonym dla dorosłych. Miało być śmiesznie wyszło żenująco, a wiadomości w shoutboxie nie mogę skasować :P
Wojo (09:40, 28.06.24)
Tymon jak co wizytę musiałem potwierdzić wiek
gnysek (14:15, 17.06.24)
Bo Łapusz woli alkohol, niż się organizować. Co tam Pixel Heaven, sprawdźcie jego zbiórki na książki...
Adriann (21:02, 13.06.24)
Bardzo słusznie, straszna patola z tą organizacją :D
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?