Grabbus [Indie Game]
banner
grabbus.bsky.social
Grabbus [Indie Game]
@grabbus.bsky.social
Explore, Battle, Loot, Build, Fuse, Grab, and Throw!
Do this and more by playing as Morris the rat, and Grabbus, his otherworldly parasite!

Discord: https://discord.gg/g5xUQDKmwA

Follow for development updates!

>--Foxoplasm LLC--<
I haven't played the original, but I have played the PS1 version with the 3d planet. Pretty strange game tbh, but I did get a taste for the "little planet" style.
October 7, 2025 at 6:26 PM
If you didn't understand the jargon, what I'm doing in layman's terms is using a mathematical formula to assign (X,Y) cell coordinates to a unique number that is used to look up that cell later. If the the formula is bad, then separate coordinates can lead to the same number, causing errors!
September 30, 2025 at 3:14 AM
Thank you!!
September 27, 2025 at 6:10 PM
One time at programming class in community college, there was this dude who kept bringing his knitting stuff to knit random stuff and everyone was into it
September 10, 2025 at 2:07 AM
I appreciate all the help! For now though, considering this problem solved on account of the fact the game is even more performant than before the lighting layer was even added.
September 6, 2025 at 6:06 PM
I'm not sure about any garbage collection either. As far as I can tell, I'm setting elements in the array, which doesn't change size, then reading them each frame. The array should only be getting gc'd when the game transitions away from the world map and deletes the shade layer instance.
September 6, 2025 at 9:15 AM
Do you mean I should create structs that contain the 7 sprite-drawing datapoints as members instead of it being a second array dimension?
September 6, 2025 at 9:12 AM
From what I understand a set is unordered and good for search, whereas I need the elements in order so they can be drawn back to front.
It's a 2d array where the first dimension is the draw order, and the second contains the necessary drawing data in 7 elements. Not even sure I have sets in GML...
September 6, 2025 at 8:44 AM
Currently the sprite data is conveyed using a queue datastructure, but since there's a set number of tiles at any given time, a simpler array solution should do the trick, and save frames!!
September 6, 2025 at 7:25 AM
The tile has to draw its graphics a second time onto the shading layer each frame. BUT switching drawing surfaces multiple times a frame is slow!!!! Sooo, I have to record the data for what sprites are drawn where for the shading, THEN blast them all in a row after switching to the shade layer ONCE
September 6, 2025 at 7:23 AM
You'd think just the buildings would need a mask, but every graphic on every tile has to be a part of the masking so that they can obscure lighting rendered behind them.
September 6, 2025 at 7:23 AM
The tricky thing about the new lighting layer is achieving the glow effect for individual building sprites. They each have a light-mask layer to achieve this, which is drawn onto the shading layer, which is in turn drawn on top of the worl map.
September 6, 2025 at 7:23 AM