Linki do ciekawych stron

Wielkie zmiany i nowości w GML pod koniec roku !!!

Na taką informację czekaliśmy od dawna. GameMakerStudio 2 w końcu czekają konkretne zmiany, poprawiające i dodające mnóstwo brakujących funkcjonalności do języka GML!!!

Pełna lista tutaj: yoyogames.com/blog/514/gml-updates-in-2019 - ale postaram się wam przybliżyć o co chodzi (zwłaszcza tym który angielski sprawia problemy).

Dereferencje tablic i struktur.
GMS 2 wprowadził zmianę, która pozwala wstawić tablicę do tablicy. Tak naprawdę teraz tablice 2D to własnie tablica w tablicy. Niestety, odczyt takiej zagłębionej tablicy nie jest łatwy, trzeba bowiem "podtablicę" przypisać najpierw do zmiennej.
Zmiany to poprawią i będzie można napisać tak:
kodvar a = my_array[1][4][0][2];To samo dotyczy map, list i gridów:
kodvar a = my_list[| 5][# 5, 6][? "key"]; // odczyt 5 elementu listy, potem pozycji 5,6 grida, potem klucza mapy w tymże gridzie
Skrypty i funkcje można napisać teraz wszędzie i przypisać do zmiennej.
Zamiast tworzyć skrypt, od teraz będzie można napisać:
kodfunction my_script(a,b){return a+b;}Poza faktem, że można zrezygnować z argument0,...,.argment15, można też przypisać funkcję do zmiennej (jak w JS) i ta zmienna automatycznie zostaje nazwą funkcji. Powala to też na tymczasowe funkcje:
kodvar my_script = function(a,b){return a+b;} // bez "var" funkcja będzie globalnaMinusem jest to, że takie funkcje stracą dostęp do zmiennych tymczasowych zdefiniowanych poza nimi.
Wszystkie istniejące skrypty zostaną przekonwertowane po odpaleniu w GMS 2.3 do nowego formatu, a domyślnie zostanie argument0, argument1 itp.
Funkcje będzie też można dzięki temu zrobić w jednym pliku, a nie każda osobno. Będzie trzeba się przestawić z mówienia "skrypt" na "własna funkcja" - chociaż na finalne nazewnictwo poczekamy, na forum YYG już są na ten temat narzekania.

Lekkie obiekty
Będzie można zdefiniować własne obiekty, bez jakichkolwiek wbudowanych zmiennych (x, y, image_index itp.) - coś na zasadzie "struct" z innych języków czy właśnie obiektu z Javascriptu.
kod
var a = {
name: "Buty z borsuka",
price: 500,
def: 20,
desc: "Te buty zrobiłem ręcznie",
can_buy: function() { return global.gold > price; }
};

konstruktor "new"
konstruktor "new" pozwoli na utworzenie instancji obiektu (coś jak instance_create dla lekkich obiektów).
kod
function Item(n,p){
name = n;
price = p;
};
var buty = new Item("Gwiezdne kapcie", 300);

Łapanie wyjątków
GMS2 wprowadzi funkcjonalność wyłapywania błędów w grze, bez wywalania fatal errorów.
kod
try {
var b = my_array[-1];
} catch ex {
// w zmiennej ex będzie błąd, zapewne "Index out of bounds" w tym przypadku
} finally {
// kod który będzie wykonany zawsze po try-catch, w sumie to bez finally za klamrą też powinien się wykonać ;)
}

Garbage collector
Będzie usuwał zmienne które wyparowały z pamięci. Nie jest jeszcze jasne czy, ds_xxx też znikną, jak nie będą przypisane do żadnej zmiennej, bo tego YYG nie napisało. Ale logicznym by było, zeby tak się stało.

Komentarze (łącznie 6):
Konrad-GM (Pią., 05 Kwi. 19, 21:11)
#1

Jeszcze warto wspomnieć, że operator 'new' tworzy obiekt, który może mieć własne metody definiowane tak jak inne funkcje :P

function Item(n,p){
name = n;
price = p;
can_buy = function () { return global.gold > price; }
};
var buty = new Item("Gwiezdne kapcie", 300);

P
Pieter (Sob., 06 Kwi. 19, 12:04)
#2

lul. tyle lat a GM nadal korzysta z GML? Już lepiej by było gdyby przepieli się na V8 albo Lua, wyszło by im to na dobre.

T
Temporal (Sob., 06 Kwi. 19, 13:40)
#3

Fajnie gnysek, że nie linkujesz newsa z yoyo strony, tylko jednak robisz własną wersję z własnymi przykładami. Szanuję.

gnysek (Pon., 08 Kwi. 19, 11:59)
#4

Dzięki :)

BONUS GMC (Czw., 10 Paź. 19, 21:02)
#5

i to są te wielkie zmiany tak

gnysek (śro., 11 Gru. 19, 10:44)
#6

Rok się nie skończył ;)

Najnowsze wersje GameMakera:

LTS
2026.0.0.16 • 2022.0.3.99
wydana 98 dni temu
Beta
2026.100.0.1142 •
2026.100.0.1093
 GMRT beta 0.21.0

wydana  wczoraj
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
17 użytkowników online na discordzie:
Miłosz, 🧁Cupcake🧁, LeD, Carl-bot, Fox, GibkiKaktus, Sławomir, Wielki Druid, GMRussell, Tidżi, 𝕯𝖎𝖆𝖓𝖆, Pako, Dyno, szmalu, Korodzik, bagno, l...
Shoutbox
gnysek (01:00, 22.08.26)
Będzie wkrótce spory plugin do GM z kilkunastoma QoL, trwają prace ;)
Wojo (11:35, 13.08.26)
Gratuluję i dziękuję w imieniu aktywnych użytkowników GMClanu!
gnysek (23:13, 12.08.26)
Szybkie info, że GMCLAN chodzi obecnie na cloudflare więc wyciąłem boty :)
Wojo (21:21, 28.06.26)
na ten moment czerwiec prezentuje się dość przyzwoicie jesli chodzi o ilosc wpisow w shoutboxie bo aż trzy! a taki styczeń zero :0
gnysek (15:06, 10.06.26)
oraz pokój na świecie
Kuzyn (17:16, 08.06.26)
i urlop
gnysek (11:13, 05.05.26)
czekamy na GMRT
Wojo (14:53, 04.05.26)
Co tak cicho?
gnysek (11:01, 30.04.26)
Grill panie, grill.
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?