Linki do ciekawych stron

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

Czerwiec już praktycznie się kończy, ale YYG nie zwalnia. Udostępniono dziś dwie nowe open-sourcowe biblioteki:

Api mod.io
Pozwala na pobieranie i przeglądanie modów do gier z serwisu mod.io korzystając z API.

github.com/YoYoGames/GMEXT-mod.io

Niestety, implementację modów musimy zrobić już sami - do tego polecam:
- Tiny Expression Runtime yellowafterlife.itch.io/gamemaker-txr
- The Catspeak Programming Language github.com/katsaii/catspeak-lang
Przypomnę też, że od niedawna GM ma ustawienie, w którym tekstury są wczytywane z pliku poza win.dat (Dynamic Texture), dzięki czemu użytkownik może je podmienić i w ten sposób można np. tworzyć nowe skiny do gry.

Framework testujący czy funkcje GML działają prawidłowo

Tego narzędzia YYG używa, aby sprawdzić, czy najnowszy runtime nie powoduje błędów.

github.com/YoYoGames/GM-TestFramework

Nowa roadmapa w pełni dostępna!

W zeszłą środę wspomniałem o tym, że na githubie YYG pojawiła się lista feature requestów które będą wrzucane w kolejnych wersjach GM, tymczasem dziś YYG postanowiło przygotować bardziej oficjalny widok, z podziałem na wersje miesięczne w których dane funkcjonalności zostaną wprowadzone.

github.com/orgs/YoYoGames/projects/13/views/1

Z ciekawostek, w wersji 2023.6 która wyjdzie w tym tygodniu mamy opcję odpalania z obecnej gry innej gry ( game_change() ). Natomiast najciekawiej zapowiada się wydanie sierpniowe, które zawiera:

- asystent AI
- rozszerzone narzędzia do debugowania
- id jako referencje, zamiast kolejnych liczb naturalnych (część 1, ds_xxx)
- kolizje na tilemapach
- otwieranie zasobów w zewnętrznych edytorach (powrót funkcjonalności sprzed GMS2)
- lepszy ekran wyboru templatek z gotowymi grami
- zaktualizowany manual
- zgłaszanie bugów prosto z IDE, zamiast przez stronę YYG

W związku z pracami nad nowym runtime oraz prawdopodobną betą nowego edytora kodu, wydanie wrześniowe zostanie przeskoczone i kolejne dostaniemy dopiero w październiku. Bardzo prawdopodobne jest, że wtedy ruszy też otwarta beta nowego runtime, gdyż wg. zapowiedzi miało się to stać w Q3 2023. Tutaj czekają nas:

- referencje zamiast id jako liczby naturalne (część 2, assety z drzewka)
- manager pakietów
- nowe funkcje dla vertex bufferów
- okno właściwości sekwencji
- kolejne nowości dla audio FX

I raptem miesiąc później, w listopadzie:
- panele Flex
- layer GUI
- zasób tekstowy w roomach
- lepszy proces aktualizacji IDE (czyżby bez instalatora?)

Niestety, na liście miesięcznej nie ma prefabów, które wymagane są do dodania systemu UI, ale wynika to raczej z tego, że będą one dostępne w wersjach beta do czasu wyeliminowania wszelkich problemów i ewentualnych poprawek UX po naszych opiniach (podobnie z edytorem kodu). Bardzo więc możliwe, że niektóre rzeczy trafią do wspomnianych wydań nawet jeśli na razie nie są na liście.

Przypomnę, całą listę (wszystko na rok 2024 jest na razie jako "Future Release") znajdziecie tutaj:

github.com/orgs/YoYoGames/projects/13/views/1

Bardzo duża lista nowości GM na nowej roadmapie

Pisałem tydzień temu o nowym sposobie zgłaszania Feature Requestów do GameMakera, bezpośrednio na githubie, gdzie inni mogą zagłosować na nasz pomysł, a YYG go oceni i zatwierdzi lub odrzuci.

Na tej liście pojawiły się dziś rzeczy, które zawitają do GM w najbliższych miesiącach, w tym całkiem sporo również dla obecnego runtime a nie jedynie dla nowego. Przy okazji - są plany, aby nowy runtime trafił do otwartej bety w trzecim kwartale tego roku, a wersja produkcyjna jest spodziewana około czerwca 2024.

Planowane nowości w IDE
- nowy edytor kodu (na razie tylko w becie, od 2023.800)
- więcej kolumn w interfejsie, dzięki czemu będzie można ustawiać np. inspektor i drzewko assetów obok siebie, a nie w tabach
- pole "szukaj" w preferencjach
- zmiana rozmiaru rooma z wyborem w który róg/środek mają trafić obecne instancje
- pluginy do IDE
- ulepszony system Undo/Redo (prawdopodobnie chodzi o zrzucanie za dużych stosów powodujących memory leaki do pliku)
- ulepszony system importu zasobów (zapewne ma związek z prefabami)
- lepsze wsparcie dla różnych DPI
- lepsze zarządzanie okienkami
- lepsze wsparcie dla motywów
- pozbycie się górnego paska systemowego okna
- prefaby (importowalne z własnej/zewnętrznej biblioteki zasoby)
- fonty SDF w IDE (są już w betach 2023.600)
- asystent AI
- otwieranie zasobów w zewnętrznym edytorze
- raportowanie błędów bezpośrednio z IDE
- manager pakietów
- GUI, GUI Layer, Flex
- Tekst w roomach
- usprawniony proces aktualizacji IDE

Planowane nowości w runtime
- data structures jako referencje a nie id liczbowe; następnie reszta zasobów
- kolizje na tilemapach
- zdalne debugowanie; nowe narzędzia debugowania
- odpalanie wielu kopii gry na raz
- dodatkowe funkcje dla vertex bufferów
- wibracje na macOS (tylko nowy runtime)
- wsparcie dla Regexów (tylko nowy runtime)

Lista może być aktualizowana, na ten moment znajdziecie ją tutaj:

github.com/orgs/YoYoGames/projects/12/views/1?layout=board&filterQuery=status%3A%22Planned+-+IDE%22%2C%22Planned+-+New+Runtime%22%2C%22Planned+-+GMS2+Runtime%22

Kolejna dobra wiadomość od Opery i YoYoGames - gry stworzone w darmowym eksporterze GX.games, który pozwalał na tworzenie gier pod przeglądarkę Opera GX, od dziś zadziałają także w każdej przeglądarce opartej na Chromium. Nie trzeba już ściągać specjalnej odsłony przeglądarki Opera z dopiskiem GX.

W gry możecie zagrać na stronie gx.games/pl .

Dodatkowo poinformowano, że Firefox i Safari nie będą gorsze, ale ich wsparcie pojawi się dopiero za "jakiś czas" :)

Grafika: https://pbs.twimg.com/media/Fyl5P8xWIAILan8?format=jpg&name=medium

Kolejna pozytywna zmiana w YYG - od dziś prośby o nowe funkcjonalności są dostępne publicznie i można na nie głosować, co pomoże ustalić priorytety.

Listę (już posortowaną) znajdziecie tutaj: github.com/YoYoGames/GameMaker-Feature-Requests/issues

Koniecznie oddajcie swoje głosy!, aby przyspieszyć dodawanie nowych brakujących funkcji do GM. I jeśli macie ochotę - od teraz w tym samym repozytorium githubowym można zgłaszać pomysły:

github.com/YoYoGames/GameMaker-Feature-Requests/issues/new/choose

Najnowsze wersje GameMakera:

Stabilna
2024.2.0.132 • 2024.2.0.163
wydana 52 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 191 dni temu
Beta
2024.400.0.549 • 2024.400.0.567
wydana  2 dni temu
= IDE, = Runtime
Użytkownicy online
2 użytkowników aktywnych:
gości: 1, userów: 1
 Adriann
(~ostatnie 15 minut)
Discord
28 użytkowników online na discordzie:
Kysiu, s..., Carl-bot, RogerDodg3r, Grela, Add92, SuperEnduro, Filyps, fervi, Sevitaus, Kalor, antek, Arrekin, yazaa, Dyno, ZYGZAK, Miłosz, LeD, Ulti, bagno, g..., Danieo, l..., Nikas, Shockah, Kandif, Cosplyfanka, 🧁Cupcake🧁
Shoutbox
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.
Tymon (16:05, 11.04.24)
Yes. Obecny nie jest taki zły, jak zainstalowałem najnowszą stabilną to w porównaniu z tym czego używałem... 10 lat temu...? Wszystko wydaje się lepsze.
gnysek (22:48, 10.04.24)
bscotch/stitch ? Ja czekam na fixy do nowego edytora, bo wszystko wydaje się dziś lepsze od tego obecnego :D
Tymon (19:54, 10.04.24)
Hm, Stitch okazuje się całkiem dobrą alternatywą dla wbudowanego edytora
Wojo (22:16, 08.04.24)
siemano huder myślałem, że zniknąłeś całkiem z gmclanu bo na discordzie cie nie ma :D
I am Lord (00:37, 05.04.24)
O dzięki :D
gnysek (09:58, 02.04.24)
Znalazłem na podstawie jego postów: youtube.com/@Jakim_
I am Lord (20:16, 01.04.24)
Ktoś ogarnia jakie konto miał Jakim na YT?
gnysek (16:07, 29.03.24)
Nowy Edytor kodu jednak po świętach
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?