Yuan Gao's Avatar

Yuan Gao

@meseta.dev

GameDev, working on an MMO and trying force better tools onto indie devs Website: https://meseta.dev Former birdsite: https://x.com/mesetatron

150
Followers
38
Following
20
Posts
09.06.2023
Joined
Posts Following

Latest posts by Yuan Gao @meseta.dev

Preview
ServerKit GameMaker: Easily Manage GameMaker Servers How to use SKGM to create a server that you can easily manage from a web interface, and use it to upload and deploy your GameMaker servers

quickstart guide. You can get one of these up and running in Digital Ocean in about 5 minutes
meseta.dev/serverkit-ga...

28.12.2023 09:43 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I created something to help with making servers with GameMaker: ServerKit, An open source tool to manage GameMaker servers using a cPanel-like web UI Built using GameMaker and GML A docker image is also available for easy deployment. skgm.meseta.dev

28.12.2023 09:42 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image

gamemaker devs, do you know about the fabled "s" variable?

24.12.2023 07:00 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Here's a walkthrough for how to build your first website using GameMaker

Rejoice, gamedevs! the internet is ours for the taking. No longer must we be held back by our domain-specific languages. GML can make websites too now.

meseta.dev/server-make-...

23.12.2023 01:32 ๐Ÿ‘ 5 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

I've released it. It's MIT license, you can now make websites in GameMaker

htgm.meseta.dev

22.12.2023 22:48 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1
Preview
MinHeap Priority Queues, an alternative for ds_priority A modern GC-friendly version of ds_priority based on arrays and structs

Need a GC-friendly priority queue for your A* path finding or character initiative turn order tracking in gamemaker? Here's a GML MinHeap and MaxHeap implementation to replace ds_priority. Finally you don't need to touch any more ds_ datastructures
meseta.dev/libraries-mi...

11.12.2023 18:30 ๐Ÿ‘ 2 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Exception Inheritance in GML GameMaker's try/catch exceptions are rife with potential pitfalls. We can do better using exception inheritance to avoid overbroad catching

Pushed a new post on GameMaker exception handling, and how despite people thinking try/catch is the literal scourge, it's can be redeemed if you throw with constructors and use exception inheritance to avoid the pitfall of overbroad exception catching: meseta.dev/gamemaker-ex...

11.12.2023 01:12 ๐Ÿ‘ 2 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Sentinels and Abstract Base Constructors in GML When it comes to returning values that indicate the absence of a thing, "undefined" can be problematic, let's explore some other options

Sentinels are values you return to signify a lack of something. GameMaker is cursed when it comes to sentinels, its built-in functions return a grab-bag of "undefined", noone, and sometimes -100

But we can do better with Abstract Base Constructors!

meseta.dev/gamemaker-se...

09.12.2023 23:52 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Lol, I just reinvented PHP in Gamemaker

Using HTMX, it dynamically loads bits of DOM rendered in GML into the page. So it's doing SSR, but the server is written in, of all languages, GML

With a little work, we should be able to make an approximation of MVVM

30.11.2023 14:17 ๐Ÿ‘ 5 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

Today, I have another task for the GML HTTP server. So I'm updating it - adding type annotations that are part of Feather, support for deflate content-encoding, and a few other goodies as well I have some even dumber things planned for this

30.11.2023 07:30 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Post image

As well as allowing the sharding service (responsible for managing the fleet of gamemaker servers) to control which room the server is running, or to send the server Idle when it's not being used

30.11.2023 07:30 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image

Since HTTP and REST in particular are the kings of server-side stacks (or perhaps at least the common denominator), it made sense to give GameMaker the ability to be an HTTP server

For example, in our MMO backend, we use this to provide kubernetes /healthz healthchecks.

30.11.2023 07:29 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Why did I do this? A couple years ago when I was experimenting with running GameMaker on the server, in particular inside kubernetes, I realized that one of the key things that prevent it from being used as part of server stacks is not having a nice way to interface with it

30.11.2023 07:29 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image

Want to see a dumb thing I made? A full on web server (HTTP/1.1) written in GML, using raw TCP socket handling

Since I'm on vacation, I spent a little time updating it to use all the new goodness in the GameMaker Beta Runtime 2023.1100 than make all the string-parsing nicer.

30.11.2023 07:29 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 1
a laptop running Gamemaker on a treadmill

a laptop running Gamemaker on a treadmill

Waiting for Gamemaker to run, so I can run Gamemaker while I run

04.08.2023 01:24 ๐Ÿ‘ 5 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Ralph Wiggum saying "I'm helping"

Ralph Wiggum saying "I'm helping"

24.07.2023 12:25 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
supermarket isle in China, selling Hoegaarden beer for 6.9 RMB

supermarket isle in China, selling Hoegaarden beer for 6.9 RMB

In other good news, my local supermarket sells Hoegaarden beer, which I quite like, for ยฅ6.90, which is like $1 USD

much fun times could be had

18.07.2023 13:59 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

glad to be here. Who should I follow here?

18.06.2023 11:43 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image

well that's ominous

17.06.2023 14:13 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Damn, ok, so for my first post gotta be a bit more shitposty

I'm currently in China, where the English translators are doing much better these days than the "engrish" that was prevalent a couple decades ago, but it's quite amusing when they don't use euphemisms that native speakers would

17.06.2023 14:08 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0