changed to a Sonic-style ball jump. makes it easier to add all kinds of mechanics. βšͺπŸ’¨

it looks better too in my opinion. what do you think?

#GameBoy #GameDev #PixelArt #RetroGaming #Nintendo #ProjectWhiskers

new map screen. gives a good sense of what the size of the world will be. πŸ—ΊοΈ

the unvisited tile looks a bit like Tetris blocks. may change it later...

#GameBoy #GameDev #PixelArt #RetroGaming #Nintendo #ProjectWhiskers

the minimap now shows room exits. so you can see the path you've traced. only for visited rooms, so it doesn't give away any secret exits. :)

this was a lot of work... the room exit directions are generated into some spare bits of the world data at compile time.

it's still very slow, but haven't looked at optimisations yet. maybe I'll keep it this way and create a scroll unroll effect instead? πŸ“œ

#GameBoy #GameDev #PixelArt #RetroGaming #Nintendo #ProjectWhiskers

got a bit carried away with this one... πŸƒπŸ±βœ¨πŸ“œ

toggling the leaves at certain y-values makes it seem like they go behind the popup. the animation adds to the effect. :)

#GameBoy #GameDev #IndieDev #PixelArt #8Bit #Retro #RetroComputing #RetroGaming #Gaming #Nintendo #ProjectWhiskers

I want to improve the room draw time.

because of the limited ROM size only the bump map is stored and the room is decorated when switching rooms.

however this has a noticable delay (~20 frames). found this interrupt snippet so I can print how many frames were dropped and I can measure progress. πŸ‘

#GameBoy #GameDev #IndieDev #PixelArt #8Bit #Retro #RetroComputing #RetroGaming #Gaming #Nintendo #ProjectWhiskers

also... did you know that the #GameBoyColor has a CPU that's twice as fast? ⚑

you can make use of it like this:

#GameBoy #GameDev #IndieDev #PixelArt #8Bit #Retro #RetroComputing #RetroGaming #Gaming #Nintendo #ProjectWhiskers

@hbons I really, really need and want to take time to play around developing for actual GB hardware... it's always so fun to hear about the architecture and tidbits about it!
the tools are pretty good these days! documenting all my pitfalls for others in this thread. :P
@hbons It's actually highly inadvisable to do this: this introduces extra differences between DMG and CGB (anything timing-related will behave differently) which make them extra hard to test for;
and usually that ends up with highly unoptimised code that barely passes on CGB but lags af on DMG.
@hbons the custom camera ROM β€œPhoto!” makes uses of this and the faster Color crystal to allow it to allow the viewfinder frame rate to run at double speed! 🀯

alright! got about 25% speed improvement! πŸ’ͺ

there's a small bug, but too tired to fix that now...

the screen transition already feels better. need to iterate over 360 tiles, so I would be happy to get it close to 10 frames...

then I might load the next room in chunks in the leftover processing time as you're walking towards it and make it feel instant. 🀯

#GameBoy #GameDev #IndieDev #PixelArt #8Bit #Retro #RetroComputing #RetroGaming #Gaming #Nintendo #ProjectWhiskers

11! πŸ₯³

it's very smooth now, will post a before/after recording later. :)

lessons: was using a modulo-% somewhere. removed many function calls inline and simplified the calculations. moved stuff out of loops that didn't have to be recalculated.

#GameBoy #GameDev #IndieDev #PixelArt #8Bit #Retro #RetroComputing #RetroGaming #Gaming #Nintendo #ProjectWhiskers

7! πŸ™ƒ

had some redundant index/row/col calculations, and removed their reliance on non-powers-of-2 multiplications.

didn't think I could get it below 10. :D

#GameBoy #GameDev #IndieDev #PixelArt #8Bit #Retro #RetroComputing #RetroGaming #Gaming #Nintendo #ProjectWhiskers

I can't decide which map style to use. which do you prefer? πŸ—ΊοΈ (poll in the reply)

#ProjectWhiskers #GameBoy #GameDev #IndieDev #PixelArt #8Bit #Retro #RetroComputing #RetroGaming #Gaming #Nintendo

which πŸ—ΊοΈ ?
Modern (Left)
13%
Paper (Right)
87%
Poll ended at .
@hbons for GameBoy, the one on the right. For all other systems: left :)
@hbons The left is easier on the eyes.

@mos_8502 @hbons Hm... but when I expand the picture the right one reads better.

I think display properties matter here, which makes this hard to answer, unfortunately.

@mos_8502 @hbons
To make that answer more useful: excessive customization can be annoying and part of a bad UX... but when you have a situation where you don't control a part of the hardware chain and you get two different answers based on things like these... well, yeah, this seems like a good example of when providing a user setting for a UI component makes sense.
@MudMan I'm conflicted because in the game you do pick up the map item as piece of paper, and there are other items that are just as "phycically" represented. but I do like the minimal approach of the left one...

@hbons You can always swap the item to be a GPS display or something, if the setting allows it :)

Ultimately I'd prioritize readability over skeuomorphism every time... but also, I still think different ways to play a GB game will interact differently with either option, so if you don't want to do both you may as well pick the one you like.

@MudMan @hbons Also if you look at other games - especially when talking about maps - it’s quite unusual to go with a skeuomorphistic approach. For example, the map in Links Awakening is clearly depicted as a physical paper map. Yet the UI is minimalistic and has readability in mind, focusing on where the doors of the rooms are.
@sushilibre @MudMan great feedback! I think I'll do another iteration that is somewhere in the middle of the 2.
@hbons I usually go for β€œdark mode” but the right one looks better to me.
@hbons The paper one has less noise so it works better.

@hbons While I totally can understand why the majority voted for the right design I think the left one suits the other screenshot you’ve posted here much better.

It might be on purpose but I would be irritated by the notable difference in brightness compared to the stage design

@sushilibre also, on a real GameBoy the the device border might not be black. need to test.
@hbons I don’t understand much of game dev but would this game theoretically run on a physical game boy? And which programming language are/were used to develop game boy games back then?

@lontrachen yes, already got it running on real hardware. :)

back then it was done in assembly, but I think they also used C at the end.

I'm using C, but you need to be really careful about how it translates to assembly to not make it too slow. it's kind of fun!

https://mastodon.social/@hbons/110730683061192892

@hbons Ah, ok. Very nice! I was reading a bit about ROMs and emulation and started wondering about it.
@lontrachen I'm using the SameBoy emulator for development. it's super accurate. only pop it into the real GB sometimes to check the colours.
@hbons I'll take a look on that. I'm more interested in decompiling a game and seeing how it works on the inside. But I assume it would be more assembly?