Przykład gry sieciowej a'la 39dll - serwer i klient w GM 2023.6+
W tym przykładzie znajdziecie kod gotowy do obsługi serwera i klientów do stworzenia gry online. Przykład korzysta z wbudowanych w GM funkcji sieciowych, dzięki czemu powinien działać na każdej platformie (poza HTML5/Opera GX, które wymagają Websocketów).
Dla ułatwienia, dodano globalny bufor, oraz funkcje nazwane identycznie jak w 39dll, który był słynną na GMCLANie biblioteką do tworzenia gier jakieś 10-15 lat temu. Różnica polega na tym, że ta wersja korzysta z natywnych funkcji GM, więc nie wymaga dołączania żadnych rozszerzeń i zadziała na większości platform.
Dla przypomnienia, artykuły o tworzeniu gier z pomocą tej biblioteki dll:
https://gmclan.org/artykul/46
https://gmclan.org/artykul/66
Przykład gry sieciowej - serwer i klient w GM 2023.6+
W tym przykładzie znajdziecie kod gotowy do obsługi serwera i klientów do stworzenia gry online. Przykład korzysta z wbudowanych w GM funkcji sieciowych, dzięki czemu powinien działać na każdej platformie (poza HTML5/Opera GX, które wymagają Websocketów).
Przykład pokazuje on jak za pomocą parametru pitch, zmienić wysokość dźwięku o wybraną nutę.
Pobierzecie go tutaj: https://github.com/gmclan-org/piano_example
Natomiast spróbować go na żywo w przeglądarce można tutaj: https://gnysek.itch.io/gamemaker-piano
Korzysta on z prostej zasady, gdzie pitch należy ustawić jako [kbd]power(2, nuta/12)[/kbd], gdzie "nuta" oznacza o ile dźwięków się przesuwamy. Ujemne wartości zagrają poniżej, a te powyżej 11 oznaczają kolejną oktawę (bo cała ma 12 nut, a zaczynamy od 0).
Miłej zabawy!
Pauza do gry z użyciem struktur i bez użycia surface
Przykład pauzy w grze, bez użycia surfaces, natomiast z wykorzystaniem struktur, które pojawiły się w GMS 2.3.
Kod dostępny jest także pod adresem https://github.com/gmclan-org/pause_no_surface .
Przykład zrobienia własnych okienek do wpisywania tekstu aby zastąpić funkcję get_string(). Wymaga kontrolera który zapamiętuje aktualnie wskazane pole. Łatwo konfigurowalny poprzez zmienne w create które można też edytować w creation code room edytora.
Oczywiście ostylowanie ich aby pasowały do waszej gry to już wasza robota!
Z pomocą http://freegeoip.net/ pozwala wyświetlić miasto i kraj użytkownika, a także pokazuje na mapie gdzie się znajduje.
Ponieważ to darmowa baza, może nie być dokładna - niestety te dokładniejsze są płatne i to sporo.
[GameMaker:Studio 1.1]
Sztuczna inteligencja pościgu Top-down
Przykład pokazuje ściganie przeciwnika za graczem tak by obierał najlepszą drogę.
Przykład pokazuje jak w prosty sposób zrobić kolizje w grze izometrycznej. Dodatkowo można zobaczyć jak się robi zaznaczanie grup myszką.
Bardzo ciekawy przykład użycia stosów
Różne sposoby przewijania palcem/myszką
Przykład pokazuje cztery sposoby przewijania np. Menu na ekranach dotykowych
ID zasobu po jego nazwie - xxx_get_index
W GameMaker:Studio w przeciwieństwie do poprzednich wersji nie ma już wewnętrznego licznika zasobów, automatycznie inkrementowanego i nadającego kolejne ID bez nawet jeśli zasoby znikają - możliwe było posiadanie zasobów o ID 0,1,5,7,9,10. W GM:Studio zasoby zawsze posiadają identyfikatory jako kolejne liczb naturalne od 0 do n, nie wg. kolejności tworzenia, a wg. kolejności w drzewku (zatem ID nie są stałe jak kiedyś). To jednak pozwala wykonać pętlę whilę od 0 do n tak długo, jak zasób o danym ID istnieje, zapisać jego nazwę jako string w tablicy i następnie za pomocą skryptów pobierać ID zasobów po nazwie.
Brzmi skomplikowanie, ale w użyciu jest proste. Wystarczy wywołać skrypt index_init() na początku gry (koniecznie tylko raz!) i potem można używać skryptów sprite_get_index(), object_get_index(), script_get_index() oraz room_get_index() za argument podając nazwę jako string. Jeśli potrzebujesz skrptów także dla pozostałych zasobów jak czcionki, tła, ścieżki itp., to dopisanie nie powinno być problemem, mając gotowy kod dla reszty.
Skalowanie i obracanie viewa, nie zmieniając położenia GUI
Dość częsty problem, pojawiający się gdy chcemy obracać view, lub zmieniać jego rozmiar aby przybliżać/oddalać akcję, ale rozmiar wyjściowy ekranu zostaje niezmienny - cały interfejs gry również się skaluje i obraca. Ten przykład pokazuje jak sprawić, aby wszelkie informacje typu energia, punkty itp, nie zmieniały swojego położenia.
Zawiera pliki dla wersji GM 8.0, 8.1 oraz HTML5/Studio.
Prosty przykład pokazuje jak po najmniejszej lini oporu narysować wykres liniowy. Przydatny do gier w których pojawiają się dane statystyczne np. wyniki na końcu rozgrywki.
Przykład pokazuje jak dodać premię punktową w zależności od czasu w jakim zbiera się pickupy. Jezeli zdobycie kolejnego pickupu nie przekroczy dwóch sekund, dostaje się dodatkowe punkty.
Przykład pokazuje jak w prosty sposób zrobić podstawowe poruszanie się w strategiach (głównie ekonomicznych) jak np Knights and Merchants.
Bardzo dobry silnik szachowy respektujący oficjalne zasady tejże gry (łącznie z biciem w przelocie, roszadą i podobnymi). Świetnie napisany, wszystko w jednym obiekcie. Dla początkujących może być trudny do zrozumienia.
Przykład wysyłania wiadomości e-mail poprzez skrypt php, przy użyciu biblioteki Ether.dll.
W paczce znajduje się projekt GM6 ze skryptem SendMail() i przykładem użycia, oraz plik mail.php ze skryptem wysyłającym e-mail.
Dekodowanie hasła podobne do tego z gry Just Cause 2.
Przykład wyjaśnia na czym polegają kolejki i listy.
Przykład obrazuje jak można wykonać listę zapisów stanu gry znajdujących się na dysku.
Najnowsze wersje GameMakera:
wydana 50 dni temu
wydana 189 dni temu
wydana dziś
![:D](/data/skins/1/images/emot2.gif)
![:D](/data/skins/1/images/emot2.gif)
![:D](/data/skins/1/images/emot2.gif)