Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

YellowAfterlife

1,999
Posts
5
Topics
3,171
Followers
35
Following
A member registered Oct 01, 2014 · View creator page →

Creator of

Recent community posts

You can use asset_get_ids to get an array of all sprites and call sprite_set_live on each, but note that this can be costly on large projects as the server will have to watch a lot of files for changes.

Typically you might use get_string and asset_get_index to make yourself a little debug thing where you can paste a name of a sprite to watch, or make it so that you can press a key to watch the sprite(s) of an instance under the mouse.

(1 edit)

live_sprite_updated gets called after a sprite is updated (so that you can place it in a room for viewing or re-apply anything you need), it doesn’t do anything on its own.

Ah, a good mystery - don’t think I’ve touched that since adding the feature.

You can download the source code (second file) and compile it yourself.

I can’t do much about it being detected as a virus - some antivirus companies don’t even reply to emails about false-positives.

When making scripts, code should be put in a function in recent GM versions:

function scr_room_updated() {
    room_goto_live(argument0);
}

The underlying font library sets x-height based on x and capital height based on H (source).

If your font does not contain these symbols, the two will not be set.

(1 edit)

The Xbox release is based on the same branch as Steam betas, so it does what you can see in them. A new stable PC version will be released after some more work.

Sometimes I feel like you can’t do anything remotely interesting without something weird happening at least on some of the computers

2024.13 breaks this extension so you’ll need to update it.

Might have to make that

function(1,2, , , , ,3)

for now - the underlying code editor component combines same-type tokens so ,,,, isn’t 4 distinct commas, but a single comma with a string ",,,," inside.

This causes occasional oddities in parts of GMEdit that have to count punctuation, especially if the cursor is in the middle of that character sequence.

Those additional vanity items:

  • 3201 = Backwards cap
  • 3202 = Beater
  • 3203 = Cardboard box
  • 3204 = Dress pants
  • 3205 = Gi
  • 3206 = Monkey hair
  • 3207 = Blue Hoodie
  • 3208 = Cool Hair
  • 3209 = Suit
  • 3210 = Ushanka
  • 3211 = Vest and shirt
  • 3212 = Welding goggles

You will want to update GMLive or disable “Automatically remove unused assets” checkbox in Game Options - see changelog

Without knowing more specifics or having an example project at hand, be aware that GameMaker will only compile effect types that are used somewhere in the project, so switching effect type to something new requires tweaking.

If you know a little C++, you can adapt code from this example relatively easily.

If you cannot connect from Mac to its own address, then it’s something on the Mac side (or the IP is wrong).

Once you get that sorted out, if connecting from an iPhone doesn’t work, you can try hosting a web server on Mac and seeing if you can connect from that from Mac but not an iPhone browser. If you can, then it’s something on iPhone side, otherwise it’s something with the game.

The internet shortcut approach should work so long as the user has an internet browser assigned in system settings. If the user cannot fix this on their end, you could offer an alternative approach that copies the url using clipboard_set_text.

The issue seems to only happen for some people, I can only assume that this has something to do with brew install updating other packages in process.

If you can reliably reproduce this (as this has something to do with brew install rather than GMLive), you could perhaps file a GameMaker bug about it.

Is that using the “Create an internet shortcut and open it in default browser” code example, or just execute_shell_simple(url)? And is there a reason why you aren’t using url_open?

If you mean that you tried to do live_constant_add("name", TEXT_FOREST_VESTIGES), GM won’t let you do that as it’s not an expression.

TEXT_FOREST_VESTIGES should be usable without any additional effort in “live” code though - so long as it’s defined in a script in the project somewhere.

Multi-line macros should be supported so I could use an example that causes an error

The stable version has the previous build, otherwise you would want to pick a commit and build it from source, or at least report the exact error.

Huh! Well that’s unusual - a window acting like it has a frame (that explains the offset when dragging) when there’s no frame in sight. Not sure who I would have to thank for this one

It’s this GM bug

Does this happen with the extension’s example project? I imported it into 2024.13 and the only issue I’m seeing is that the bug with game window disappearing if you call gameframe_set_shadow right on game start has returned.

Around half of my extensions do not work on 2024.13 due to this bug

https://github.com/YoYoGames/GameMaker-Bugs/issues/10141

You can fix it by hand by moving every macro out of every extension, but I recommend rolling back to 2024.11 until it gets patched.

Without knowing your project specifics, I’m willing to guess that it’s not screen capture that’s slow, but rather writing a large PNG file - you can test this by loading the file back as a sprite, drawing it on a surface, and calling surface_save.

GML has a buffer_compress function that you can use to make your own PNG encoder, but it does not expose the underlying zlib functions for compressing a portion of data at the time, so whatever you make won’t be any better than existing surface_save - has to be a native extension doing either this or saving on a separate thread in general.

Or maybe you can write 32-bit BMP files instead - these have a basic header followed by RGBA bytes that are stored upside-down (bottom row first).

You’ll want a ; after a variable declaration, like this

var lengthOfTerrain = array_length(terrainPoints);

Eventually I’d like to rewrite the project indexer to be smarter, but that’s no small task.

That should be fixed in the latest version of GMLive, but if you’re still getting the error, that’d be a little weird as I have switched to using asset_get_ids specifically to avoid this issue.

There are examples in the documentation for 4 different extensions

Variable definitions may contain arbitrary code so you’ll have to specify what do you want to do with that.

(1 edit)

If you run the game in debug mode and check variables in the Local panel when an error pops up, what animation curve is that? Doesn’t sound very normal for these to not have a name

For ascent/descent quick reference, check out to the tooltip that displays when you hold your mouse over “Highlight glyphs under the mouse”. Then check how it goes for the example font.

For 6x12 you could likely use default ascent/descent with pixel size of 64. Then the optimal size will usually be either 12 or 16, depending on how software counts font sizes.

And some libraries just like to aggressively apply anti-aliasing when rasterizing glyphs for rendering so you may not always get what you want with a TTF/OTF font.

You can do that - I think I suggested that on Apollo updates at some point because I couldn’t have multiple versions on GM Marketplace.

Fixed this in 1.0.78

Fixed this in 1.0.78

1.0.78 integrates a fix not unlike the snippet I posted.

Surfaces are usually destroyed when renderer state changes - like switching between exclusive fullscreen and windowed mode on multi-monitor systems, minimizing the window, or if the display/GPU get unplugged.

Using borderless/non-exclusive fullscreen with or without Gameframe helps avoid some of these scenarios, but ultimately you should use surface_exists and re-create the surfaces before using them if they’re gone.

There is no such thing as #liveignore, where’d you get that from?

More or less!

You can check the shuffle in HTML5 runtime source as a point of reference - it’s not unlike yours, but swaps elements instead of using array_push+delete and traverses back to front so that it can’t swap the same thing multiple times.