Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

grimmrobegames

43
Posts
3
Topics
81
Followers
105
Following
A member registered Jan 28, 2021 · View creator page →

Creator of

Recent community posts

Glad to hear it! That bug actually gave me a pretty big jolt in understanding the Game Boy Color, so double kudos to you for pointing it out and giving me the opportunity to learn some stuff :)

I appreciate the support and if you notice anything else that isn’t working as expected please let me know.

No worries :)

It's fixed now! There's an additional step for color only mode: You must set the Common Tileset for the scene to a tileset that matches the Legend. I've updated the docs with this step and included the tileset and the updated starter project file to the plugin download.

You can download the plugin, swap in your background graphic, turn on color only mode, and give it a go.

(1 edit)

Still working on this! But I did delete your post because it included the source for the plugin, which is the thing I sell :)

I did download the project just so I could replicate exactly what you demonstrated, just in case my guess is not correct. Thanks again for bringing this up!

The text is here for reference:

Hi Grimmro!
Thankyou so much for this, it seems the background are working perfectly! But I think there might be a new bug introduced. I can't pass through doorways, and every interactable item seems to be treated as a doorway except for NPCs.
I download a fresh copy of the plugin, and only changed the background image to my new one, and the color mode to Color Only. Nothing else has changed

Ouch! I think I know what’s happening. I’ll take a look very soon and release a fix

Okay, monochrome + color and color only support added! Let me know if you experience any bugs :)

(1 edit)

Thanks for your kind words! I’ve been doing some code reviewing recently and I have some colour-only ideas percolating. Let me get back to this thread soon with on what that might look like

Edit: Also I love that scary ass tunnel!

I have 2 suggestions, one that can be done as the plugin exists now and one that would require some rewriting.

The rewriting of the code would require making some changes to the following methods to point them to where the random dungeon data is:

  • get_bkg_tile - this method currently uses ReadBankedUBYTE, which gets the a tile from the  banked background data. If you had your random dungeon data in the SRAM, for example, you would need to point this method to that address (using the appropriate offset from the player's coordinates).
  • draw_minimap - this method calls another method in the plugin, set_bkg_chunk, which is basically a submapping method. Part of draw_minimap copies over the border art, but the parts in the middle copies from the background map data. This would need to be changed to get the data from where the random dungeon is stored.

Generating a random dungeon, as I mentioned previously, is another thing altogether. It would also require some significant engine rewrites if you wanted to have random actors, triggers, etc. That goes well outside the scope if this plugin though.

The other suggestion I have is something that could be done without modifying the plugin or the engine, and would be something you could built within GB Studio, for the most part. The idea goes something like this:

  • In the map space, create a bunch of small "pieces" of a dungeon that are not connected, but that have hallways leading out of them
  • 2 tiles from the end of each of the hallways, place a trigger that, when stepped on, moves the player to the end of a different hallway. The destination can be randomly set when the scene inits. The 2 tiles of space lets the minimap be used without showing the dead end, giving the illusion of fluid movement through the dungeon.

Obviously, this would require significant planning when creating a scene, but technically no coding. So there's trade-offs to either approach.

Good luck!

(1 edit)

At this time, no. Because the map is based on the background image, which is saved in ROM, it’s not able to be random.

A random dungeon/maze generator is also a whole other thing that would probably be best tackled in another project.

Over the next few days, I will try to grab some time to read the code and possibly make some suggestions for how you could do it yourself though.

I’m happy to hear it! If you do run into any bugs or if the docs are confusing, please let me know and I’d be happy to help

Okay, I've tested it and reviewed the code and there's nothing stopping you from using it with v4 versions above 4.0.2. You will see the following warning, but it won't stop the plugin or the engine from compiling and it works as expected:

Plugin "crawler" was created for an older version of GB Studio and may not work correctly.
Plugin uses engine "4.0.2-e0" but GB Studio is using engine ...

Once the new version finally comes out, I'll probably have to do some refactoring, but for now it's compatible :D

Thanks for the kind words!

If I’m not mistaken, the plugin works without issue with 4.1, it’s just that the engine.json file needs updating so you get a warning in the app.

I’ll take a look this evening to make sure though :)

Thanks for the kind words and the support!

Feel free to share anything you make using the plugin :)

Thanks for playing! I also enjoy getting away from combat heavy crawls.

The dogs, when they spot you, act as if you’re making a noise and will attract baddies within earshot. The cats do nothing, they are just a randomly occurring tribute to my recently passed best pal.

The blue guys have the same sight range as the white ones but can hear super far (a nod to the cyber ninja Grey Fox from MGS)

Love this! How did you do the outlines? Some kind of reverse normals thing?

Makes me think I have to clean my own microwave...

Is this a gluten free crust? :D

Amazing! So many tiny details <3

Thanks! Your work is amazing :D

Just fixed the bug. You can redownload the plugin now. Thanks for bringing it to my attention!

Hi Dwelly! I’m happy you’re enjoying it.

I think I know what’s going on and you’re NOT doing anything wrong (“it’s not you, it’s me”).  I’ll take a look at it tomorrow and get back to you here with an update.

Thanks for bringing this to my attention! :)

The area it comes with is only an example to show you how to use the plugin. You have to make more.

The documentation goes into how to draw your own backgrounds and design level maps. 

Thanks for the support! Good luck :)

Seeing objects farther than the space in front of you was not a rendering quirk or limitation but rather a design choice. When I was originally making it for the jam, having to draw multiple sized sprites was not something I had time for so I didn’t implement it, and in the classic games that inspired the plugin (specifically Wizardry and the original SMT) you can’t see chests, etc, until they are in front of you anyway so it worked.

It’s not something I’ll be building into the plugin (it’s finished besides possible bug fixes with newer versions of GBS) but if you decide to use it, you’re more than welcome to build that out. 

Hi! The plugin is simply a type of Scene in GB Studio and is based on those limits, which you can read about in the GB Studio docs.

In the example scene that comes with the plugin, the background uses the maximum number of tiles (192), but that is only one area type. If you take a look at my (very unfinished) jam game, Abducted, there’s forests, caves, and a more plain warehouse style areas, each using different tilesets.

I don’t know how many full backgrounds you could fit into a GB Studio game, but there are projects with literally hundreds of them out there so just play around.

Thanks! Glad you like it :)

I don’t know how the GB Studio engine (or the Game Boy Color itself for that matter) handles colour so I can’t make any guarantees that it will work as expected with that mode, and updating it to support that is definitely out of scope.

If you have the plugin, you’re more than welcome to dig into it and make changes!

If you do, the plugin copies tiles from the background to an area just off the screen to build the view (ROM to VRAM) and then does a big copy of that constructed view to the screen (VRAM to VRAM). See the docs. It does this using “set_bkg_submap” and “vmemcopy” (in v4) respectively. After a quick look at gbdk (which the GB Studio engine is programmed with) it looks like there’s also a separate flag to set if you want to copy the tiles OR the colour data (attributes), the VBK_REG flag.

I don’t know if this means that each function in the plugin would have to be run twice to get the tile data and the colour data, or what the actual address in VRAM the colour info is supposed to be written (or even if that gets handled automatically by gbdk). Additionally, some of the underlying engine code uses 8 bit integers for tiles, meaning 0-255, so I don’t know if my plugin could reach the tiles above 255.

These are the things that first come to mind. Good luck!

As I mentioned in a previous comment, changing the dimensions of the viewport is not trivial and not something I’ll be supporting officially.

The goal of the plugin is to be a very niche thing: a “letterbox” first person view for classic grid-based dungeon crawl games like Wizardry or SMT. The most those very visually limited games have on the screen other than the view is usually text representing characters or player stats and other simplified things, which you can do using dialog boxes. That I managed to get a minimap in there is more than those classics usually offer. Doing more than that goes outside the scope (and spirit) of the plugin. 

If you have the plugin, you’re more than welcome to change the code yourself!

If you do, keep in mind that reducing the size of the view does not necessarily free up many background tiles for other things. The example background uses the maximum amount of tiles for a GB Studio background already and it’s not very complex art. You’ll have to determine which tiles are not going to be used after the changes and remove them from the image to calculate the new tile count. The number of tiles you can reclaim may or may not be worth rewriting the plugin.

Inventory screens and whatnot are no small task in GB Studio and definitely goes outside the scope of what I can provide here.

As a suggestion, in Abducted I simply used a dialog box with inline variables for items. For a new project I’m replacing unused characters from the font file with item icons and using those for key items.

Just note that the graphics for rendering the view uses most of the tiles allocated in GB Studio so you’ll need to account for that if you plan on incorporating such a thing into the background tiles.


Also to answer an earlier question, GB Color mode is not supported by the plugin. You could maybe use a single palette for the view without trouble but that’s only a guess and not tested. 

You can see the details of setting up the plugin and how the pieces work in the docs which are free to access. That will give you a better understanding of how it works and can help you decide if you want to purchase :)


Besides not distributing the source code, you can use the plugin for any project, commercial or otherwise. Credit is appreciated but also not required.

Thanks for your comment!

Drawing the minimap does NOT edit the 3D view. The 3D view and the minimap are both created from scene data in the ROM and are rendered separately.

There is currently no way to edit the map data, which is a limitation of GB Studio, and would require some extra tricks to achieve, including keeping track of the tiles that were changed so they don’t just change back.

There are two ways I can think of for doing a one-way door though:

1. You can make a door “lock” when you step through using a trigger by activating an actor over the door tile to block the player. I did this after the tutorial section of Abducted. Turning back and trying to step through the door activates the actor instead saying “it’s locked”.

2. You can place wall in the space after the door and a trigger on the door tile. When the player steps on the door tile, the trigger changes the player’s position to the other side of the wall. Kind of like a teleporter but only one extra tile ahead. If the player turns around they see a wall instead of the door they passed through.

Yes! (Sorry for the very late reply!)

Oh, very cool idea!

Here is just fine :)

Express yourself!

Thanks so much! Credit is not required but appreciated. I’d love to see what you make :)

Hello team! It's 2024 now. Should the jam be updated?

Thanks for playing!

Thanks for your comment!

Yeah, I have the plugin open sourced as well but it does take a bit of messing around to get it working. My plan is to tidy up the plugin (and also make it a real plugin since right now it just overwrites the point and click scene) to make it more user friendly. I tried to do that as I went but I ended up hacking things up trying to get the game finished.

The smoothness comes from building the background/view from all the pieces off-screen and then doing a big copy from that "buffer" into the VRAM's on-screen space. An even better way would be to draw off-screen and then move the whole background like a swap for an instant update, but I didn't manage to get that working in the GB Studio context during the jam.

Good enough for me! Thanks for the insight

While I know these are different jams, it seems kinda weird to see even the exact same wording as a big jam that recently ended. Was this intentional? Or a case of random being too random?

Ahh, brilliant! Thanks for the reply, Shallan! I'm familiar with 6502 from working on NES where the code is in unwritable ROM so self modifying code still catches me off guard  :)