Grabbus [Indie Game]
@grabbus.bsky.social
500 followers 12 following 370 posts
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--<
Posts Media Videos Starter Packs
Pinned
grabbus.bsky.social
www.Grabb.us

Patch v0.2.4, the World Map Overhaul, has been released to the public! If you want a chance to provide feedback as the game improves, head on over to...

store.steampowered.com/app/3516160/...
grabbus.bsky.social
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.
grabbus.bsky.social
Tonight's new plants!! 5 more to go!
grabbus.bsky.social
Got into college!
But don't worry, it's just a couple classes to start with.
I still have plenty of time for drawing plants, and adding other bits of content too!

I'm excited about the next few items on my to-do list after the plants are all drawn...

Just letting you know development is still on!
grabbus.bsky.social
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!
grabbus.bsky.social
Also just got around to properly testing the new spatial hash formula used by the infinite grid data, found plenty of collisions, so I'm switching to a better, maybe even faster formula! Now it has no hash collisions within a generous range around the origin! Bitwise operators can be useful...
grabbus.bsky.social
Tonight I'll be marathon-ing as many of these plants as I can!
Each one has five variations, so it takes a second.

I've also written down names and lore for each plant as I go, gonna organize that into a section of my design docs.
grabbus.bsky.social
I've been trying out Unicorn Overlord. I may have to steal some of this!
grabbus.bsky.social
New mushrooms!

Half of the biomes now have their "foliage" sprites done!
They aren't very hard to make, so it shouldn't be much longer that I can finish these and move on with the to-do list.
grabbus.bsky.social
Immediate to-do list:
-Finish drawing plantlife for all map biomes

-UI Backdrop for the build menu

-When looting "pickup" type items, condense them with larger versions that are worth more, so that huge loot rewards dont cause a flood of items that slow down the game

-First NPC, the Trader!
grabbus.bsky.social
We did it!

The angle vector lookup table for optimized map rotation WORKED!

This optimization will appear with the next update, whenever that's ready... along with the other optimizations I did a few weeks ago to the "infinite data" fetching.

Welcome us to the 60 FPS club! 🏅
grabbus.bsky.social
Today I'll be working on more plants!
A nice relaxing drawing session would be... nice right now...
grabbus.bsky.social
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
grabbus.bsky.social
Today, I'm adding support for font switching for other languages. Shouldn't take too much effort, in fact I'm already pretty much done adding it. It turned out to be a simpler thing than I assumed. Just need to source some good fonts.

But more exciting, a Russian translation file is now on the way!
grabbus.bsky.social
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.
grabbus.bsky.social
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.
grabbus.bsky.social
Do you mean I should create structs that contain the 7 sprite-drawing datapoints as members instead of it being a second array dimension?
grabbus.bsky.social
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...
grabbus.bsky.social
Great success! The profiler reveals that with the new array optimization, the game is 5-10% faster now than BEFORE the new lighting was even added.

Applause is most welcomed!
grabbus.bsky.social
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!!
grabbus.bsky.social
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
grabbus.bsky.social
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.
grabbus.bsky.social
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.
grabbus.bsky.social
I'll try switching from using a queue to an array for the lighting mask, it should eke out a good amount more performance.

Every drop of FPS I can get!
grabbus.bsky.social
I did it! A new selective lighting layer that allows buildings and other things to glow at night! And I got it running without *too much* of a performance hit. You may need to lower your map size by one or two notches, but it works!

This is gonna look so cool with more buildings...