January 2024 Devlog


Hello Groundskeepers! Welcome to the Groundskeep devlog. I hope to put out one of these at the beginning of every month as I work on developing this game. For this first post, I'd like to introduce myself, my background, and my early development process.

My name is Tyler Ryan Schlossman. I'm a Chicago born artist with a background in music and animation. Since moving to Los Angeles, I've worked in production on a few television shows, including Duncanville and Grimsburg on Fox. For my own work, I've produced a few indie animations such as "Internet Outrage" (https://tyryanart.itch.io/internetoutrage) and "The Sunshine Movement" (https://tyryanart.itch.io/thesunshinemovement) as well as drawn comics like "Autumn Means" (https://tyryanart.itch.io/autumnmeans) and my periodic series "Carl Carly Horse".

I was sitting in bed one night in March 2023, playing "The Legend of Zelda: The Minish Cap" and I was cutting grass in the game, attempting to find the game's "Kinstones" among the weeds. Cutting grass in Zelda games has always, for some reason, been insanely satisfying. Going all the way back in particular to this screen in "The Legend of Zelda: Link's Awakening" on the original Gameboy


Of course, you could cut the grass in prior Zelda games (Link to the Past at least, I still haven't delved deep into the original Legend of Zelda). But this screen just chock full of grass seems to invite you to cut it. It's as if the developers at Nintendo were saying "Look how much grass we fit on the screen!" I've probably  spent most of my time in Link's Awakening cutting grass on this screen.

So while playing Minish Cap, I had the thought: I wish there was a game where all I had to do was cut grass. Especially before bed, it seemed like a nice way to wind down. I searched around and hadn't found any games that quite achieved this idea. Being inspired by a good friend of mine who was working on their own game at the time, I decided to look around at GB Studio.

GB Studio and a Mockup Jam

If you're reading a devlog on Itchio for a gameboy game, you most certainly have heard of GB Studio. The easy to use, visual program opened up the opportunity for someone like me (who is certainly more visually minded than knowledgeable in code) to develop a game. In the spirit of Link's Awakening, it felt right for this to be a Gameboy game. I was also enticed by the idea of working within limitations. This wish was quick to challenge me to be stuck for about 9 months.

In addition to GB Studio, I got ahold of Aseprite to create art and Tiled, to put together maps. In April of 2023, I started working on a concept to submit for Hairic Lilred's 2023 #MockupJam (You can see that original post here https://tyryanart.itch.io/groundskeep-gb-game-concept). The idea at that time was a little more ambitious involving multiple towns on an island surrounding a giant field. Since then I've trimmed down to just one town and less traversal upgrades (like swimming and climbing) though they're not necessarily off the table.

The Jam immediately introduced me to the limitations of working within a tiny computer from the late 80's. In my head, you would have a huge sprawling map just loaded with grass. However, "Scenes" in GB Studio only allow for a certain number of sprites to be in a scene at one time (96). But even aside from that, I assumed grass would be treated essentially like an enemy (or in GB Studio, an "Actor). But even worse, you can only have 10 actors on screen at a time. My sights of an island full of grass were (appropriately) cut short imagining just 10 pieces of grass.

Tileswapping and 9 months of issues follow

The solution came in the form of tile swapping. I could swap out pieces of the Background with art of grass and then swap them with cut grass when the player swings their machete over them. But even with this method, I could only get 40 or so pieces of grass on screen. Since the GB screen was about 10x8 (with a HUD on the 9th row) this was half the amount of grass I wanted to fill. At some point it occurred to me if I simplified the grass tiles to be repeating instances of 8x8 instead of 16x16, I could fit 4 times as much grass on screen.

This is all well and good, I've got a field full of grass, but I was very set on you not being able to walk through the grass. If you could walk through the grass, it would first off not seem as urgent for you to cut it, and you wouldn't get the tactile feeling of removing a blockade. I had to add "collision" to the grass and remove it when it was cut. GB Studio however, does not let you edit collision during the game. So I began month and months of attempting workarounds. I posted about these on the GB Studio discord, which I've screenshotted and will share here.



Custom Collision Arrays

I put Groundskeep on the backburner during the holiday season. When the new year started I decided to pick up the game again and finally solve this issue. I did some searching on the GB Studio Discord and found some talk about creating "Custom Collision Arrays". This would involve editing C based code in the actual engine. I did a small study of C++ in high school but I by no means know coding as a language. I reached out to NalaFala on the discord who had been suggesting the idea and they helped point me in the right direction of what I needed to edit. I don't think I would've figure this out without them, so my appreciation cannot be stated enough. This is a rundown of what I ended up doing and how to do it.


By being able to edit collision during the game, I was able to place collisions on any area where I had a piece of grass marked. I won't go into all the details of what I added into the engine code, but the short version is when you press the B button, it checks the players position. Then depending on their direction, it moves these coordinates over so it's in front of them (this is the Machete position). It then checks the location it's on and compares it to a variable in GB studio that has a box checked if there is grass there. If it's checked, it removes the collision on that position in the array. Within the GB Studio GUI, it tileswaps the grass with cut grass and unchecks the box.

With that, the main mechanic of the game was done. I wanted to make a game where you cut grass and in this prototype, you could do just that. From there, this month has been nonstop expanding the game outwards.

What else has been done?

The rest of the things I completed are mostly less interesting on a technical level. So here's a rundown of other things I have completed since the beginning of January:

  • Made a HUD for the Cutting area and added Machete Stamina
  • Added two more grass screens (Right now we have 3 total. If things work right, we should eventually have up to 40+)
  • Designed a town map with uniquely designed buildings
  • Added animated water to the bottom of the town
  • Drew 4 more NPCs
  • Began writing character scenes (dialogue)
  • Created a new Logo for the start screen
  • Animated a few character portraits for dialogue portions
  • Composed one short piece of music that plays in the field and title screen
  • Drew interiors for the Mayor's Office, the General Store, and the Hardware Store
  • Created a map (Select Button) that shows you where in the field you are and whether it's uncut, started cutting, or fully cut

What's next?

Off the top of my head, here are some things I intend on working on in the coming weeks:

  • Draw more (all?) NPCs
  • Create more Town interiors
  • Begin testing upgrades (Roll, Stronger Machete)
  • Compose some more music
  • Add sound effects
  • Continue writing scenes

Any issues forseen?

A lot of these to dos right now are just time based. I don't imagine issues actually drawing the characters, just imagining them and being happy with their designs. The roll upgrade may be a challenge, but I think it's just a matter of temporarily speeding up the player and changing their sprite animation. The biggest challenges on the horizon I think are designing and implementing town quests, making more grass areas with concise and effective code, and hopefully avoiding sprite limitations in various scenes.


If you've read this far, thank you for taking an interest in my game! This so far has been incredibly satisfying to work on and I hope I'll be able to share it with people and they will enjoy relaxing and cutting some grass. See you next month!

-Tyler

Comments

Log in with itch.io to leave a comment.

I like this, I look forward

Good Luck!!

(+1)

Thank you!

YEAAAAAAAAAH IM SO EXCITED FOR THIS

WOO I'm excited that you're excited!!