- Aug 30, 2024
- 9
- 8
Hello everyone!
It's been a long time since I wrote a detailed devlog for the game. Let's just say university doesn't leave me with much free time... Nevertheless, I'd like to publish a second devlog to talk about the new features I've added, how I implemented them, and what I have planned for the future of the game. Once again, this post is aimed at developers and players who are curious about these topics, so I'll divide it into sections.
What is BeastBound?
BeastBound is a simple game where you capture monsters on commission through mini-games for the agency, earning money in the process. There are also unique monsters you can interact with on a much deeper level... The game includes a shop where you can buy mini-game upgrades, new outfits, collectibles, and more.
What has been updated?
Since the last devlog, there have been three updates and one bugfix. These updates added five new creatures to capture on commission, several main story events, a new creature for experimentation, a clothing system for the characters, an event calendar, a revamped shop and affection system with monsters, cheats available in the shop (for those without the patience to unlock everything), and a Halloween event, among many other improvements and fixes.
Milestone 1: Wardrobe System
I want to inaugurate the first milestone with the wardrobe system. I'm sure many people who have used Ren'Py have wanted to create one at some point, so I'll explain in detail how I made mine. Don't worry—there’s no complex math involved here. Let’s start from the beginning by defining the image:
This is one of the images you might find in the game. Everything looks normal until you see the square brackets []. Why are they there? Simple, it's a variable. The variable ai_clothes in this case changes whenever we want to swap the protagonist’s outfit. Naturally, this variable must be defined beforehand. Internally, in the "characters" folder, there are subfolders named after each outfit (these correspond to the outfit names). Inside these subfolders are images corresponding to each pose with its respective outfit. The images have identical names, as you can see in the file path. This means that whenever the game needs to display an "ai_serious" image, it will look for an image named "ai_serious" inside the folder matching the value assigned to the variable ai_clothes. Thus, all that’s left is to add folders named after the outfits—let’s call them "outfit_1" and "outfit_2", for example. Now, we’ll create a button that sets the ai_clothes variable to "outfit_1" or "outfit_2" like this:
I hope this explanation of how I implemented the wardrobe system is clear and helps you if you’re planning something similar for your game.
Mini-game 7: Finding the Perverted Kitsune
This mini-game is simple: find the perverted kitsune. Internally, it’s also straightforward. There’s a background, two images of kitsunes in their normal state, and several images for the perverted kitsunes. Each round randomizes a number to determine which perverted kitsune image to use, making the opposite kitsune appear normal. Initially, the game was too short and easy, so I added one additional round.
Mini-game 8: Clicking Quickly
As you might have noticed, this is the third iteration of a recycled mini-game with slight variations. Now, there’s a counter that adds health to the incubus every 0.1 seconds.
Mini-game 9: Finding the Squirrel Woman
This mini-game involves finding the squirrel woman within a 10-second time limit. Once again, a number is randomized to determine which squirrel image to use and, consequently, its position. The main challenge wasn’t the script but the images. I had to separate the background and all its components into two distinct images to place the character between them. However, this caused significant layering issues, forcing me to eliminate many problematic images. Interestingly, these unused images still remain in the game’s files.
Mini-game 10: Clicking on Dry Branches
This particular mini-game caused me quite a headache but ultimately became simplified. The goal is to click on dry branches because branches with leaves restore the Dryad’s health. There are four variables, one for each branch (left, right, top, and bottom), dictating the type of branch displayed. Every four seconds, the game checks the leafy branches and replaces them with other types. Here’s something peculiar: while all mini-games consist of loops separated by short pauses, in this case, clicking causes the images to update (switching leafy branches with others). This behavior isn’t intentional; it stems from how Ren'Py handles pauses—clicks can skip them. Ironically, this quirk works as a hidden mechanic, so I didn’t make much effort to change it. A fun fact: Koikatsu doesn’t include branch models by default, so what you see in the game are cropped parts of entire trees.
Mini-game 11: Clicking on Fairies
At first glance, this mini-game seems simple: click on moving fairies. However, I couldn’t implement it as I wanted. The game merely randomizes variables every few seconds to dictate the fairies' positions. Initially, having so many fairy images was confusing, so I added colored outlines to differentiate them. While I wanted smoother movements, I couldn’t achieve this despite repeated attempts.
Resolved Issue 1: Translation
After a bit of research (I just searched my question on the Lemma Soft forums), I discovered a way to simplify my life. While Ren'Py doesn’t automatically detect text within screens, you can make it recognize the text by adding an underscore before the parentheses, like this:
_("reference text")
This saves me a lot of time as I no longer have to manually review all the screens to translate them. Ren'Py will subsequently provide the lines that need translation.
Issue 1: User Interface
Yes, I know it’s been a long time, but I’m still struggling with the same problem. I want to dedicate time to researching and redesigning the game’s user interface for the next update, though this depends on my schedule. Based on current plans, the new UI will likely be more colorful and lively. I hope to share progress on this in the next devlog.
Fun Fact 1: Cheats
The cheat system was initially something I used to test the game without having to start over repeatedly. In a rush to release a quick update to fix a game-breaking bug, I accidentally left the cheat screen enabled. Ironically, instead of removing it in the next update, I polished it so everyone could use it. I believe cheats are something most games should include. They allow players with limited time to experience all the content or experiment with absurdities. However, personally, I dislike when someone using cheats reaches the same point as I did through effort—it feels like my hard work was for nothing. For this reason, I plan to add a small penalty for using cheats (similar to how some games disable achievements when cheats are enabled). This way, if you choose to play the intended way, you’ll feel rewarded for your effort.
Future Plans for BeastBound
I plan to keep updating BeastBound for a long time. This project is a beautiful experiment for me, where I’m learning to use Ren’Py and Koikatsu to create games. My goal is to deliver a polished game over time, which means improving what I have and adding more content. The Christmas update is coming soon and will bring plenty of new features. I hope you’ll enjoy it. And yes, I know I haven’t released part two of the Halloween update yet, but releasing it during Christmas would be odd, so I’ll postpone it a bit. I won’t spoil too much because I love surprises, especially during this season. I’ll just tease that a new mini-game based on one of my previous SFW games is on its way. I hope you like it!
I hope I didn’t forget to mention anything. A lot has happened these past months, and there’s more to come. If you have any comments about the game, feel free to share them—I’d love to hear your thoughts. By the way, I’m thinking of creating a Discord group to share updates more frequently and let people report bugs they find. What do you think?
Enjoy the upcoming holiday season and have fun with the game. Thank you so much to everyone who read this—I appreciate you all!
It's been a long time since I wrote a detailed devlog for the game. Let's just say university doesn't leave me with much free time... Nevertheless, I'd like to publish a second devlog to talk about the new features I've added, how I implemented them, and what I have planned for the future of the game. Once again, this post is aimed at developers and players who are curious about these topics, so I'll divide it into sections.
What is BeastBound?
BeastBound is a simple game where you capture monsters on commission through mini-games for the agency, earning money in the process. There are also unique monsters you can interact with on a much deeper level... The game includes a shop where you can buy mini-game upgrades, new outfits, collectibles, and more.
What has been updated?
Since the last devlog, there have been three updates and one bugfix. These updates added five new creatures to capture on commission, several main story events, a new creature for experimentation, a clothing system for the characters, an event calendar, a revamped shop and affection system with monsters, cheats available in the shop (for those without the patience to unlock everything), and a Halloween event, among many other improvements and fixes.
Milestone 1: Wardrobe System
I want to inaugurate the first milestone with the wardrobe system. I'm sure many people who have used Ren'Py have wanted to create one at some point, so I'll explain in detail how I made mine. Don't worry—there’s no complex math involved here. Let’s start from the beginning by defining the image:
Code:
image ai_serious = ("images/characters/[ai_clothes]/ai_serious.png")
Code:
textbutton ("Wear outfit 1") action SetVariable("ai_clothes", "outfit_1")
Mini-game 7: Finding the Perverted Kitsune
This mini-game is simple: find the perverted kitsune. Internally, it’s also straightforward. There’s a background, two images of kitsunes in their normal state, and several images for the perverted kitsunes. Each round randomizes a number to determine which perverted kitsune image to use, making the opposite kitsune appear normal. Initially, the game was too short and easy, so I added one additional round.
Mini-game 8: Clicking Quickly
As you might have noticed, this is the third iteration of a recycled mini-game with slight variations. Now, there’s a counter that adds health to the incubus every 0.1 seconds.
Mini-game 9: Finding the Squirrel Woman
This mini-game involves finding the squirrel woman within a 10-second time limit. Once again, a number is randomized to determine which squirrel image to use and, consequently, its position. The main challenge wasn’t the script but the images. I had to separate the background and all its components into two distinct images to place the character between them. However, this caused significant layering issues, forcing me to eliminate many problematic images. Interestingly, these unused images still remain in the game’s files.
Mini-game 10: Clicking on Dry Branches
This particular mini-game caused me quite a headache but ultimately became simplified. The goal is to click on dry branches because branches with leaves restore the Dryad’s health. There are four variables, one for each branch (left, right, top, and bottom), dictating the type of branch displayed. Every four seconds, the game checks the leafy branches and replaces them with other types. Here’s something peculiar: while all mini-games consist of loops separated by short pauses, in this case, clicking causes the images to update (switching leafy branches with others). This behavior isn’t intentional; it stems from how Ren'Py handles pauses—clicks can skip them. Ironically, this quirk works as a hidden mechanic, so I didn’t make much effort to change it. A fun fact: Koikatsu doesn’t include branch models by default, so what you see in the game are cropped parts of entire trees.
Mini-game 11: Clicking on Fairies
At first glance, this mini-game seems simple: click on moving fairies. However, I couldn’t implement it as I wanted. The game merely randomizes variables every few seconds to dictate the fairies' positions. Initially, having so many fairy images was confusing, so I added colored outlines to differentiate them. While I wanted smoother movements, I couldn’t achieve this despite repeated attempts.
Resolved Issue 1: Translation
After a bit of research (I just searched my question on the Lemma Soft forums), I discovered a way to simplify my life. While Ren'Py doesn’t automatically detect text within screens, you can make it recognize the text by adding an underscore before the parentheses, like this:
_("reference text")
This saves me a lot of time as I no longer have to manually review all the screens to translate them. Ren'Py will subsequently provide the lines that need translation.
Issue 1: User Interface
Yes, I know it’s been a long time, but I’m still struggling with the same problem. I want to dedicate time to researching and redesigning the game’s user interface for the next update, though this depends on my schedule. Based on current plans, the new UI will likely be more colorful and lively. I hope to share progress on this in the next devlog.
Fun Fact 1: Cheats
The cheat system was initially something I used to test the game without having to start over repeatedly. In a rush to release a quick update to fix a game-breaking bug, I accidentally left the cheat screen enabled. Ironically, instead of removing it in the next update, I polished it so everyone could use it. I believe cheats are something most games should include. They allow players with limited time to experience all the content or experiment with absurdities. However, personally, I dislike when someone using cheats reaches the same point as I did through effort—it feels like my hard work was for nothing. For this reason, I plan to add a small penalty for using cheats (similar to how some games disable achievements when cheats are enabled). This way, if you choose to play the intended way, you’ll feel rewarded for your effort.
Future Plans for BeastBound
I plan to keep updating BeastBound for a long time. This project is a beautiful experiment for me, where I’m learning to use Ren’Py and Koikatsu to create games. My goal is to deliver a polished game over time, which means improving what I have and adding more content. The Christmas update is coming soon and will bring plenty of new features. I hope you’ll enjoy it. And yes, I know I haven’t released part two of the Halloween update yet, but releasing it during Christmas would be odd, so I’ll postpone it a bit. I won’t spoil too much because I love surprises, especially during this season. I’ll just tease that a new mini-game based on one of my previous SFW games is on its way. I hope you like it!
I hope I didn’t forget to mention anything. A lot has happened these past months, and there’s more to come. If you have any comments about the game, feel free to share them—I’d love to hear your thoughts. By the way, I’m thinking of creating a Discord group to share updates more frequently and let people report bugs they find. What do you think?
Enjoy the upcoming holiday season and have fun with the game. Thank you so much to everyone who read this—I appreciate you all!