Linki do ciekawych stron

GMCLAN Meetup #3 - 21 października

Hej! Chcielibyśmy was zaprosić na trzecie już spotkanie GMCLANowe z serii Meetup. Tym razem spotkamy się online (więc argumenty, że za daleko odpadają ;) ).

Spotkanie odbędzie się 21 października na naszym Discordzie. Będzie to okazja do pokazania swoich gier, a także podyskutowania o nowościach i zmianach w GM - jest szansa, że właśnie w okolicach naszego spotkania ruszy otwarta beta nowego runtime...

Grafika: /upload/ajax/20230928_44768abfde2a56406f75ea74cc55fb90.png

Link do samego spotkania: discord.gg/9FZKaNarze?event=1150716984657449021

Wydarzenie jest też oczywiście dostępne w serwisie meetup - meetup.gmclan.org :)

GM 2023.8.1 dostępny

YYG wydało dzisiaj hotfixa do GM 2023.8. Znalezione błędy były dość specyficzne, więc jest szansa, że nie zauważyliście problemów.

- naprawiono możliwość zamykania gier za pomocą Alt+F4
- layer_tilemap_create() zwraca id tilemapy, a layer_tilemap_get_id() zwróci teraz id tilemap dodanych w trakcie gry, zamiast jedynie tych stworzonych w IDE
- manual znów otwiera strony na opisach funkcji, zamiast na stronie głównej

Reszta opisów na:
- gms.yoyogames.com/ReleaseNotes.html
- gms.yoyogames.com/ReleaseNotes.html

3 miesiące darmowego GM (Win/Mac/Ubuntu i HTML5)

Jeśli jesteście na bieżąco z sytuacją na rynku silników do gier, na pewno wiecie, co odstawiło Unity (a jeśli nie wiecie - to są byt łasi na hajs od gier). Z tej okazji, dla osób które uciekają od Unity, GameMaker przygotował specjalną promocję. 3 miesiące darmowego eksportu na PC/Mac/Ubuntu i HTML5. Jedyne co trzeba zrobić, aby skorzystać z tej promocji, to założyć i zalogować się na konto na stronie gamemaker.io , a następnie wejść pod wiele mówiący link:

opr.as/F-Unity

Nie wiadomo do kiedy potrwa promocja, ale jeśli skorzystacie z niej teraz, załapiecie się jeszcze na wersję 2023.11 GM, która powinna wprowadzić Layer GUI, panele Flex do responsywnych interfejsów, prefaby oraz otwartą betę Nowego Runtime.

GM 2023.8 wydany

Z lekkim poślizgiem, sierpniowe wydanie stabilnej wersji GMa jest w końcu dostępne.

Przypomnę najważniejsze zmiany:
IDE
- narzędzie do zgłaszania błędów bezpośrednio z programu, oraz publiczny bugtracker na githubie (jeśli chcemy raporty podpiąć
pod nasze githubowe konto, zrobicie to pod adresem gamemaker.io/account/dashboard ).
- zmiany nazw runtime z VM i YYC na GMS2 VM i GMS2 YYC (te runtime na zawsze będą dostępne dla posiadaczy licencji dożywotnich)
- GX przestało być domyślnym eksportem dla posiadaczy licencji dożywotnich
- "Open in external editor" jako opcja dla zasobów
- "Included files" można teraz zobaczyć w inspektorze
- nowe funkcje Feathera dla ignorowania całego folderu w drzewku zasobów
- podgląd efektu emitowania particli co wybrany czas (aka. burst)
- optymalizacja przechowywania tekstur w pamięci IDE
- poprawki 65+ bugów

Runtime
- zasoby są teraz referencjami a nie liczbami naturalnymi (dzięki czemu np. użycie ds_list_add() na ds_mapie wyrzuci nam błędem)
- kolizje z tilemapami (jako argument należy przekazać identyfikator layer_tilemap_get_id() a nie samą tilemapę, dzięki czemu można tej samej tilemapy używać na różnych layerach i sprawdzać te kolizje osobno)
- nowe funkcje ImGui do tworzenia debugowych narzędzi w grze (debug overlay), pozwalających zmieniać wartości dowolnych zmiennych (slider, dropdown, text, sprite, checkbox, color, button) - więcej informacji w manualu; funkcje te mają prefix dbg_
- konsola w debug overlay, która potrafi wykonać istniejące skrypty GML jeśli podamy ich nazwę, przekazując wpisane parametry
- efekt audio "Compressor:
- renderowanie efektów w fontach SDF (color blend/glow/outline/shadow/demo znajdziecie na: github.com/gmclan-org/sdf-dbg-examples )
- poprawki 85+ bugów

Wersji 2023.9 (wrześniowej) nie będzie, ponieważ GM LTS dostanie drugą aktualizację, natomiast samego GM czekają w kolejnej wersji dość duże zmiany i wymagają one kolejnej dłuższej przerwy w cyklu wydawniczym, zatem kolejną wersją będzie ostatnia w tym roku aktualizacja 2023.11 - wszystko oczywiście dostaniemy w wersjach beta 2023.1100, ale dopiero od października. Co nas czeka?
- beta nowego edytora kodu
- beta nowego runtime
- layer GUI
- panele flex do responsywnego pozcjonowania GUI
- efekty fontów SDF w sekwencjach
- referencje w pozostałych typach które do tej pory były zwracane jako liczba naturalna (jak bufory, networking, tekstury i inne rzeczy niedostępne w drzewie zasobów)
- menadżer pakietów pozwalający korzystać w dowolnej liczbie projektów z wybranych zasobów z innego projektu bez potrzeby kopiowania ich (i z automatycznyną aktualizacją, gdy projekt pierwotny jest aktualizowany)
- możliwość podmieniania/aktualizowania vertex bufferów
- lepsza struktura dla właściwosci sekwencji


Pełen opis zmian w wersji 2023.8 (a jest tego baaaardzo dużo) przeczytacie tutaj:

gms.yoyogames.com/ReleaseNotes.html
gms.yoyogames.com/release-notes-runtime.html

GMowy Bugtracker dostępny publicznie

Nadszedł dzień, w którym po paru latach narzekań (i zmianach wprowadzonych jeszcze przez PlayTech) doczekaliśmy się w końcu ponownie publicznego bugtrackera.

Poza faktem, że zgłaszać bugi można teraz (poza dotychczasowym formularzem który nie zniknie) również na githubie, przypomnę, że od wersji 2023.8 GameMakera, bugi można zgłaszać bezpośrednio z IDE GMowego, bez potrzeby logowania się na stronie gamemaker.io .

Bugtracker i listę bugów (zaimportowano również nierozwiązane bugi z ostatnich lat), znajdziecie pod adresem: github.com/YoYoGames/GameMaker-Bugs/issues

Beta 2023.8 wprowadza kolejne (zapewne już ostatnie) nowości, w tym funkcje których nie zapowiadano.

Po pierwsze, pojawiły się od dawna oczekiwane kolizje na tilesetach.

Działają one tak, że jeśli funkcji sprawdzającej kolizje podamy jako argument id tilemapy na layerze (np. layer_tilemap_get_id("Tiles_1"), to GM zrzutuje aktualną komórkę na x/y w sprite i sprawdzi, czy zachodzi tam kolizja.
Uwaga!
Aby kolizje na tilemapach działały, trzeba ODZNACZYĆ pole "Disable Source Sprite Export", inaczej GM będzie porównywać kolizje z pustym obrazkiem, zawsze zwracając brak kolizji.
Wskazówka:
Typ kolizji ustawiony w sprite ma wpływ na wynik sprawdzania - jeśli ustawimy Rectangle, to będzie po prostu zwracać true/false jeśli w danej komórce jest jakiś kafel tilesetu (nawet jeśli jest przeźroczysty), ale już ustawienie "Precise" sprawi, że będziemy mieć kolizję tylko na pełnych pikselach, co daje naprawdę spore możliwości!

Największą zaletą tego wszystkiego jest to, że... kolizje sprawdza się istniejącymi już funkcjami: instance_place(), instance_position(), place_meeting(), place_empty(), position_meeting(), move_and_collide(), collision_circle/ellipse/line/point/rectangle() + wszystkie warianty ..._list().

Dodatkowo, od teraz można do funkcji kolijzji przekazywać tablice obiektów i/lub id elementu tilemap z layera, np.:

kodvar tid = layer_tilemap_get_id("Tiles_1");
var collision = position_meeting(mouse_x, mouse_y, [obj_wall, tid]);

Poza tym, ta beta wprowadza konsolę w show_debug_overlay(), w której poza wyświetleniem logów z okna Output, możemy też wpisywać komendy - wystarczy wpisać istniejącą nazwę globalnej lub funkcji, a opcjonalnie po spacjach można podać argumenty. Niestety, na tę chwilę funkcjonalność ta wydaje się nie do końca działać prawidłowo, ale to pierwsza beta z nią, a do wydania sierpniowej wersji jeszcze blisko 20 dni.

Przeczytaj dalszą część »

W tym tygodniu, dla odmiany od informowania o nowościach w becie GameMakera (w sierpniu czeka nas jeszcze dawka emocji), dodałem na stronę dwa przykłady.

Przypomnę, że obecnie zamiast wrzucać na stronę spakowane pliki staramy się wrzucać kod na naszego githuba - ma to tę zaletę, że po pierwsze możecie zgłosić ewentualne błędy (a nawet je poprawić), a także można sobie przejrzeć kod bez potrzeby ściągania go. Nasz github ma też fajny do zapamiętania adres - github.gmclan.org przeniesie was gdzie trzeba :)

Wracając jednak do przykładów, tym razem na tapet wziąłem silnik sieciowy do gier online, korzystający z natywnych funkcji GMa, dzięki czemu taki serwer i klienci mogą działać na większości platform.

Dodatkowo - w ramach testów - dorobiłem silnik który działa na podobnej zasadzie co szalenie u nas popularny ponad dekadę temu 39dll.dll. Okazuje się, że funkcje sieciowe w GM działają bardzo podobnie i większość tych funkcjonalności to raptem aliasy do funkcji buffer_xxx, do tego stopnia, że w ramach testów udało mi się odpalić klienta i serwer Almory Online 0.7.6 w becie GM 2023.8 i podmieniając jedynie funkcje do połączenia, oraz przenosząc odbieranie pakietów z eventu step do Async-Network udało mi się pozbyć starego .dll i odpalić grę na Androidzie czy Steam Decku. Przypomnę, że gra pierwotnie była robiona w GM 7, w 2009 roku...

Przykład gry sieciowej - serwer i klient w GM 2023.6+:
gmclan.org/plik/232

Przykład gry sieciowej a'la 39dll - serwer i klient w GM 2023.6+:
gmclan.org/plik/233

Niewielkie i pisane na szybko dokumentacje znajdują się w repozytoriach przykładów - oba przykłady są obecnie w wersjach beta, gdy "dojrzeją" postaram się dodać też artykuły na temat tego jak działa przesyłanie danych.

Miłej zabawy i nie zapomnijcie zgłaszać błędów i poprawek poprzez Github ;)

Do etapu "feature freeze" GameMakera 2023.8 zostały jeszcze ok. 2 tygodnie, a YYG w którym zakończył się sezon wakacyjny w pierwszej sierpniowej aktualizacji dorzuca do pieca.

- wsparcie dla efektów fontów SDF: obrys, cień, blask, predefiniowany kolor - aż 18 parametrów do ustawienia w font_enable_effects
- zgłaszanie bugów z IDE bez potrzeby wchodzenia na strony YYG. Publiczny dostęp pojawi się w ciągu kilkunastu dni.
- nowe funkcje pozwalające na debugowanie "na żywo" - slidery, dropdowny, pola tekstowe, checkbox, przycisk, pola z wyborem sprite, wybór kolory - wszystkie z nich z prefiksem dbg_xxx, natomiast do przekazywania zmiennej używamy ref_create(refOrStruct, name), gdzie w przypadku obiektów referencją jest np. self (w runtime 800.0.411 ta funkcja tymczasowo nazywa się dbg_ref).
Wygląda to tak:
Grafika: /upload/ajax/20230803_4684e20cd7826b7bf11cc6d8b903b2f0.png

- feather pozwala na ignorowanie całych folderów wg. ścieżki na dysku, np. // feather ignore GM2017 in /Objects/System/* (można podać też np. tylko ścieżkę do zasobu - więcej informacji w Release Notes)
- opcja Otwórz w zewnętrznym edytorze dla zasobów.
- wsparcie dla funkcji part_emitter_delay(), part_emitter_interval() w edytorze Particli
- efekt audio Compressor

Poza tym, pojawił się ważny fix na użycie pamięci przez IDE w projektach z dużą liczbą spritów (różnica sięga kilka GB). Przypomnę, że warto też włączyć limit historii "Undo", który też przy dłuższych sesjach ratuje użycie pamięci przez IDE.



Wg. wcześniejszych zapowiedzi w ciągu następnych 2 tygodni powinniśmy dostać jeszcze:
- kolizje dla tilemap
- asystenta AI
- betę nowego edytora kodu (która nie zakończy się w tej wersji, a potrwa kilka miesięcy)

Pełna lista zmian w becie:
gms.yoyogames.com/ReleaseNotes-NuBeta.html
gms.yoyogames.com/release-notes-runtime-NuBeta-I.html

Pierwsza beta GM 2023.8 dostępna

Zaczął się lipiec, a więc miesiąc wakacyjny - i chociaż YYG planuje największe nowości w betach bliżej sierpnia, gdy pracownicy wrócą z urlopów (nowy edytor kodu!) - dostaliśmy mimo to całkiem pokaźną listę nowości:

- nowe funkcje particli:
    - part_system_colour, part_system_angle, part_system_global_space
    - part_emitter_delay, part_emitter_interval, part_emitter_enable, part_emitter_relative
    - opcję zmiany skali x/y i klatek sprite'a particli: part_type_size_x, part_type_size_y, part_type_subimage
- funkcje blokowania kursora w środku ekranu dla gier FPS:
    - window_mouse_set_locked, window_mouse_get_locked, window_mouse_get_delta_x, window_mouse_get_delta_y
- chwilowe rysowanie na innym depth za pomocą gpu_set_depth/gpu_get_depth
- nowe funkcje rysowania efektów:
    - effect_create_layer, effect_create_depth dzięki którym status deprecated dostały effect_create_below, effect_create_above
- funkcja nameof(name) która zmienia nazwę danej zmiennej w string w momencie kompilacji.

Poza tym, w YYC przyspieszono odczyt tablic (o prawie 200%), a niektóre typy assetów nie są już kolejnymi liczbami naturalnymi a referencjami (niestety nie podano które, a ja jeszcze na tyle nie przetestowałem bety :) ).

Przypomnę, że w wersji 2023.8 dostaniemy jeszcze: asystenta AI, nowe narzędzia debugowania, fonty SDF w sekwencjach, nowy efekt audio Compressor, kolizje na tilemapach i rozpoczną się beta testy nowego edytoru kodu - a to wciąż nie jest pełna lista zmian, gdyż YYG każdego miesiąca dorzuca jeszcze kilka mniejszych rzeczy.

Pełna lista zmian oczywiście pod adresami:
gms.yoyogames.com/ReleaseNotes-NuBeta.html
gms.yoyogames.com/release-notes-runtime-NuBeta.html

GM 2023.6 wydany

YYG po dwumiesięcznej przerwie wydało kolejną "miesięczną" wersję GM, kończąc tym samym okres bety dla nowych funkcji.

Co nowego w wersji 2023.6 ?

- nowy konwerter projektów ze starszych wersji (1.4 i 2.x) do najnowszej wersji
- nowe opcje kolizji dla Spine (GMowe lub Spine'owe)
- fonty SDF w IDE
- Feather domyślnie włączony (jeśli nigdy nie zmienialiśmy żadnych opcji Feathera)
- nowy debug overlay oparty na ImGui
- tworzenie paczek do zgłaszania bugów
- shorthand dla structów (jeśli zmienna w structcie ma się nazywać i mieć wartość jak zmienna istniejąca obecnie w obiekcie, wystarczy napisać {zmienna} zamiast {zmienna: zmienna}
- 140 bugfixów
- nowe efekty audio (High-shelf, Low-shelf, Peak EQ)
- tworzenie launcherów gier przez game_change() (Windows, macOS, PS4, PS5 i Switch)
- funkcje do ZIPowania
- nowe/przywrócone funkcje: ds_grid_to_mp_grid(), surface_get_format(), display_get_frequency()

Trzy z funkcji na powyższej liście (Feather, debug overlay i paczki do zgłaszania bugów) są przedsmakiem tego co dostarczy wersja 2023.8, w której pojawi się nowy edytor kodu, nowe narzędzia debugowe i nowy system zgłaszania bugów do YYG prosto z IDE (niektóre funkcjonalności mogą pozostać w becie dłużej i nie trafić do 2023.8).

Wkraczamy też właśnie w okres największych zmian GM od dawna: w następnych 3-4 miesiącach sprawdzimy nowy edytor kodu, nowy runtime (otwarta beta w III kwartale), prefaby, stopniową zmianę identyfikacji zasobów z liczb naturalnych na referencje, czy też nowe funkcje do tworzenia GUI - Flex Panel, GUI Layer i predefiniowane klasy GUI. Druga połowa 2023 będzie więc jeszcze grubsza niż wszystkie poprzednie zmiany, od kiedy Opera przejęła YYG - które zaoferowało nam w 2,5 roku czasie kilkanaście razy więcej, niż Playtech przez 7 lat.

Pełne info o aktualizacji 2023.6 pod adresami:
gms.yoyogames.com/ReleaseNotes.html
gms.yoyogames.com/release-notes-runtime.html

Najnowsze wersje GameMakera:

Stabilna
2024.4.0.137 • 2024.4.0.168
wydana 16 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 214 dni temu
Beta
2024.400.0.556 • 2024.400.0.571
wydana 18 dni temu
= IDE, = Runtime
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
22 użytkownicy online na discordzie:
Papaj, s..., Alice, Carl-bot, Draczeq, p..., 21Lancz, Kowu, Tival, LadyLush, Chell, MKP (GEM), Moldis, Arrekin, Dyno, Morro, LeD, l..., Krzysiek1250, Shockah, TobiasM (Morgo), xVANiLL
Shoutbox
Chell (11:15, 17.05.24)
nareszcie będzie można zaimplementować padający śnieg w gierce
gnysek (18:33, 16.05.24)
JS zmierza do GM xD
I am Lord (16:29, 05.05.24)
Czaję
gnysek (13:38, 04.05.24)
Nie wbudowują tego przez warunki licencyjne. Ale kto wie, może jako prefab zobaczymy to już w kolejnym wydaniu, bo wtedy prefaby mają zostać dodane.
I am Lord (12:17, 03.05.24)
Aha to trzeba coś tam jeszcze kombinować tak
gnysek (18:05, 01.05.24)
Tak, w osobnym rozszerzeniu (na githubie YYG).
I am Lord (17:56, 30.04.24)
funkcje z fmod są już?
gnysek (20:44, 11.04.24)
Niektórzy dlatego wybierają GMEdit. Ale ja liczę na Code Editor 2, tylko na razie zbyt zbugowany jest.
Tymon (16:11, 11.04.24)
Stitch dla mnie osobiście jest lepszy bo nie musze kopać się z interfejsem GMa i mogę tylko pisać kod.
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?