March 15th Update

Hello! I’ve got a looooong blog post for you today, but I’d like to start off by showing you the star feature of the latest build. Check it out:

Every Sunday, Info-chan tells Ayano about her next rival. When I first released Amai, I recycled a lot of content from Osana’s week, including the “introducing the next rival” cutscene. However, as part of my effort to make Amai’s week feel less “cheap,” I’ve updated her week with a completely unique “introducing the next rival” cutscene.

At this point in time, I have not yet cast a voice actress for the role of Ayano. Several actresses have auditioned, but I have not yet decided who will get the role.

The animator who animated Ayano in this cutscene needed a voice recording in order to determine the correct timing for the animation, so I asked one of the actresses who auditioned for Ayano to record some lines for this cutscene. The voice you’re hearing in this cutscene isn’t necessarily guaranteed to be Ayano’s official voice moving forward, nor is this take guaranteed to be the final take.

It can sometimes be difficult to determine the correct way to characterize Ayano. Over the past 10 years (in two weeks, it’ll be 11 years…) we have not had many opportunities to learn what type of personality she would demonstrate outside of gameplay scenarios. Whenever she is not pretending to be a normal girl, is she just an apathetic, cold, empty, emotionless, soulless robot who sits in darkness and stares at a wall while thinking about Senpai? There have been times in the past when she might have given you that impression, but I’d like to believe that there is a little bit more to her than that.

The reason why Ayano is cooking in this scene is because she is trying to embody the traits of the last rival who she eliminated. Amai was a cook, and would have cooked delicious meals for Senpai – so Ayano is improving her own cooking ability in order to “replace” what she has taken away from Senpai. Because the only motivation for this action is Senpai, I believe it’s consistent with her past characterization.

Ideally, each week’s “Introducing the next rival” cutscene will feature Ayano attempting to emulate her most recently eliminated rival. After eliminating Asu, we’ll see Ayano exercising – etc.

I’ve got a lot more to say about the latest build, including an update about the Android port. To learn everything I have to say, click Continue Reading!

Android Port Progress

The last time I mentioned the Android build, I described file size limitations as my biggest obstacle. It turns out that I was actually completely wrong about that. I’ll explain.

Using Unity 2020, I tried to export an Android build. I kept getting error messages that I could not understand or interpret. (I did the obvious thing and Googled the error messages, but there was no helpful information about these errors online.)

While searching for a solution, I tried every option available to me. Eeventually, I tried “splitting the application binary.” Instead of exporting the game as one massive APK file, I exported an APK file + an OBB file. When I did this, I stopped getting the errors, and I was able to load into the first scene of the game.

Because the errors ceased once I exported the game using the APK+OBB method, I presumed that the errors I had encountered were due to APK file size. I presumed that my only option was to use the APK+OBB method going forward. So, when I upgraded to Unity 6, I continued to use the APK+OBB method, because I thought it was mandatory. I thought that I didn’t have a choice.

However, I was wrong! It wasn’t mandatory! I’ve discovered that, when using Unity 6, I can simply make an APK without getting any errors. I don’t have to rely on the APK+OBB method while using Unity 6. (In case you’re curious, the Yandere Simulator APK is currently 3.5 gigabytes.)

As a result of this breakthrough, I was able to resume making progress on the Android build! The first problem I encountered was that the controls were scrambled; up was down, left was right, A was B, X was Y. Human sacrifice, dogs and cats living together, mass hysteria.

Troubleshooting that type of problem isn’t difficult, it’s just time-consuming. You see, it takes 18 minutes to make an Android build, which means that every time I want to test out a potential fix for a bug, I have to wait 18 minutes for Unity to spit out a build. Those kind of looooong wait times are pretty discouraging and demotivating…

“Why don’t you just export builds that only contain only 1 or 2 small scenes? Then you can test Android builds faster.”

Yeah, I came to that conclusion pretty much immediately. By exporting just a couple of small scenes for testing purposes, I was able to shave the compile time down to only 6 minutes! And, after a lot of troubleshooting, I was finally able to fix the scrambled controls (and some bugs related to shaders that are incompatible with Android)! But, the next thing I have to test and troubleshoot are more important aspects of the game, like the Calendar>Home>School>Home loop…so, the 18-minute compile times are no longer avoidable.

With that said, the process of porting the game to Android is actually going much smoother than I expected it to! I am able to reach the title screen, make a new save file, customize Senpai, watch the whole intro cutscene, talk with Info-chan, run around Ayano’s home, run around the street, go to school, and even play Magical Girl Pretty Miyuki in Ayano’s bedroom!

At this point in time, there is only one significant problem that I need to solve: Yandere Simulator spawns students by reading a “JSON” file in the StreamingAssets directory. On Android, the game’s files are contained within an APK, so when the game tries to look for the StreamingAssets directory, it fails. Obviously, there are solutions for that – but I’m not sure how time-consuming it’ll be to re-configure the StreamingAssets system to become compatible with Android. It’ll be new territory for me…but, I’ll manage.

There is also one potential future problem: If I play the game with maximum quality textures, it crashes when loading into the school. However, if I play the game at “1/8th resolution textures”, I can enter the school environment just fine. This leads me to the conclusion that it’s impossible to load into the school environment on an Android device with less than 8GB of RAM. It’s possible that the Android build will only be playable on devices with at least 8 GB of RAM.

With that said…I’m aware that there’s a very long list of famous games that used extremely clever data compression techniques to shrink an insane amount of data down to a very small file size. (Ocarina of Time was only 32 megabytes! Super Mario 64 was only 8 megabytes!! DOOM was only 2 megabytes!!!) So, it might be possible for me to reduce RAM by using some compression sorcery…but, I don’t want to make any promises before I’ve had time to fully investigate the process.

So, in case you’re curious what the current state of the Android port is, the answer is that I’ve successfully exported a playable build, but I have to solve a couple of technical issues before it’s ready for release. When I do finally make a Yandere Simulator APK that is on par with the PC version, I’ll record a video of it and upload it to my Yandere Archive channel.

QWERTY and AZERTY

Some keyboards use a different letter layout than others. Some keyboards use the QWERTY layout, while others use the AZERTY layout – that layout is optimized for other languages, such as French.

If you’re playing Yandere Simulator with a keyboard and a mouse (as opposed to using a controller) you move with the WASD keys. On a AZERTY keyboard, some of those keys are in a completely different place than they are on a QWERTY keyboard.

The previous version of Unity that I was using – Unity 2020 – didn’t care if the player was using a QWERTY or AZERTY keyboard; for example, Unity always interpreted the key to the right of the Tab key as “Q”, regardless of whether the player was using QWERTY or AZERTY.

However, when players with AZERTY keyboards tested out the latest Yandere Simulator build, they discovered that the game was now interpreting all of their keyboard input by the letter they were pressing, rather than the physical location that the key would be positioned at on a QWERTY keyboard.

I went looking through Unity for a setting / toggle / option that would let me to force Unity to interpret keyboard input by physical key location rather than by letter. I believe I found the necessary checkbox and ticked it. This new build might cooperate with AZERTY keyboards, but I don’t have a way of testing or confirming this, since I don’t own such a keyboard.

If you test the current build and you discover that it’s not compatible with AZERTY keyboards, let me know and I’ll continue troubleshooting the issue. But, in the meantime…

I’m sure that a lot of gamers have run into this problem with other games in the past, and that workarounds exist to force your computer to interpret your AZERTY keyboard as a QWERTY keyboard, etc. If you use a AZERTY keyboard, I recommend going to Google and looking for a way to instruct your computer to interpret your keyboard differently when you’re playing Yandere Sim.

Improvements

  • I looked at a list of the largest files in the game, and realized that a lot of them weren’t being properly compressed / had not been optimized by the artist who created them. Many of these assets have now been compressed / optimized, resulting in a noticeably smaller file size for the game. (You’ll notice that the zip file has gone from 3.27 GB down to just 2.76 GB! And, when unzipped, the full game has gone from being 6 gigabytes down to just 5! Wow!)
  • If you repeatedly pester a student about their Task but reject it every time, the Task option will become dim and the student won’t re-offer you their Task until after enough time has passed. Many players thought that this was a bug, since it prevented them from doing Chigusa’s Task. So, from now on, Chigusa’s Task option will never dim if the two of you are both wearing bikinis.
  • The Art Club now has a new benefit: If you are a member of the Art Club, nobody will be suspicious if they see you carrying cleaning supplies (such as a bucket or a mop). They’ll simply assume that you’re on your way to clean up spilled paint, or something harmless like that.
  • In the “Sakyu and Inkyu reveal their true nature” visual novel cutscene, one part of Inkyu’s outfit was not skinned to her skeleton, causing it to float static in midair while the rest of her body animated. This bug has been fixed.
  • On the street where you can buy things from shops, the girls who are engaging in “Enjo Kosai” are now wearing different outfits in 1989 and 202X, instead of coincidentally wearing the exact same outfit 30 years apart.
  • Replaced Ryoba’s casual clothing (the dress she wears in town) with a new and improved model. (She also wears a ribbon in her hair now, because the official artwork of her casual attire includes a ribbon.)
  • Puddles of water, gasoline, and brown paint now use the same shader as puddles of blood (but a different color, obviously) which makes them look way higher-quality than they did before.
  • From now on, if you repair the Martial Arts Club’s broken dummy, it will remain repaired on subsequent days.
  • Killing a student by freezing them to death will now lower the protagonist’s sanity to 0%.
  • The movement of 3D objects on the Week Select screen is now smoother and more responsive.
  • Adjusted Beruma’s reputation, since it seemed way too low for no meaningful reason.
  • Adjusted Unagi’s reputation to be more consistent with his profile text.
  • Updated Kuroko’s portrait.

Fixes

  • Normally, the headmaster can be found in his office in the morning, is absent at lunchtime, and returns after lunchtime. However, if the player used a stink bomb to make the Headmaster vacate his office in the morning, then he would re-appear in his office at lunchtime and then disappear after lunchtime. I didn’t really consider this to be a “bug,” but some people did, so now the headmaster’s behavior is consistent regardless of whether or not he has been spooked out of his office by a stink bomb.
  • The player is unable to save the game when a mind-broken slave or robot is about to commit murder. If the player sent a robot to commit murder and then tried to save the game afterwards, the game would refuse to let the player save, stating that “a student is about to be murdered.” This bug has been fixed.
  • When Moeko went to light a fire, the fire would never actually be lit until the player got within (X) meters of Moeko. This would prevent Moeko from going through the entire “light fire, watch fire, put fire out” cycle until the player approached her. This bug has been fixed.
  • Sleeping students don’t notice it if you smother someone nearby them. However, if you smothered a student while other students were sleeping nearby, saved, and loaded the save, the other students would immediately react to the dead student. This bug has been fixed.
  • If the player buried a character in the gardening club, saved the game, and then loaded the game, the vegetables buried in that plot of land in the gardening club would re-appear, and that plot would be ready for another corpse. This bug has been fixed.
  • If the player attacked a student and then got apprehended by Raibaru, the player would be teleported to a black void where the protagonist would perform the “being apprehended” animation, but Raibaru would not be visible. This bug has been fixed.
  • If the player sedated various students, saved the game after those students were sleeping inside of the school infirmary, and then loaded that save, those students would not resume sleeping in the infirmary. This bug has been fixed.
  • If the player saved the game while a student was burning to death and then loaded that save, the student would stop burning to death and would return to their regular routine. It is no longer possible for this bug to occur.
  • In Custom Mode, if the player wrote custom dialogue for an event that was shorter than the original event (for example, 9 lines of dialogue instead of 10) the game would not play the event. This bug has been fixed.
  • In Custom Mode, the “Your rival meets with their suitor under the cherry tree…” subtitles did not use the correct pronouns for the characters meeting under the tree. The subtitles have been re-worded to fix this.
  • In Custom Mode, if the player gave any student the “Invincible” strength and then attacked them, the attack animation would use the 10th student instead of the student who was attacked. This bug has been fixed.
  • If the player pushed a girl into a dumpster, filled the dumpster with garbage, saved, and loaded, the garbage would disappear from the dumpster and the garbage bag would re-appear. This bug has been fixed.
  • In Custom Mode, if a sunbathing student was fed by a cooking club member, the sunbathing student would walk to the shower building and attempt to sunbathe inside of that building. This bug has been fixed.
  • If the player froze a student to death, saved their game, and then loaded their game, the student’s corpse would not be frozen, and would start bleeding. This bug has been fixed.
  • If the player smothered a student, saved, and loaded the save, the smothered student would bleed, even though their death did not involve a wound. This bug has been fixed.
  • In Custom Mode, if the player designed a male student with non-default skin, he would use the wrong skin color both in the basement and in school. This bug has been fixed.
  • If the player enabled the “Censor Blood” option, Osana’s blood would still appear on the title screen in her “killed by fan blades” elimination. This bug has been fixed.
  • Because Moeko wants her pyromania to be a secret, she will now put out the fire if she is approached by a member of the Cooking Club while she is watching a fire.
  • In Custom Mode, if the player matchmade a female rival with a female suitor, their kiss animation would not be properly synchronized. This bug has been fixed.
  • If the player framed another student for murder, Ayano would be invisible during the end-of-day police investigation cutscene. This bug has been fixed.
  • If the player removed a flag from the Foreign Studies room, saved the game, and then loaded that save, the flag would return. This bug has been fixed.
  • In Custom Mode, if the player designed a female club leader for the Gardening Club, the character would not spawn at school. This bug has been fixed.
  • If the player splashed a bully with water and the bully changed into their gym attire, their tanned skin would turn pale. This bug has been fixed.
  • In Custom Mode, when the game was generating portraits, it would not invert any hairstyles that the player had inverted. This bug has been fixed.
  • In Custom Mode, when a female suitor and female rival cuddled, the suitor’s skirt would clip through their legs. This bug has been fixed.
  • If the player sent a robot to kill someone and then went to class, the robot would never complete its mission. This bug has been fixed.
  • If a Heroic student ran to apprehend the player after the player set someone on fire, the game would softlock. This bug has been fixed.
  • If the player saved and loaded before Amai’s events took place, sometimes her events would not activate. This bug has been fixed.
  • In 1980s Mode, the “disable mirrors” option would not disable the mirror inside of the Light Music Club. This bug has been fixed.
  • If the player disabled toon outlines around characters, the Journalist would retain his outlines. This bug has been fixed.
  • Sometimes, characters walking in the Light Music Club room could get stuck on the amplifiers. This bug has been fixed.
  • In Custom Mode, custom voice lines didn’t work for the Thursday-after-school cutscene. This bug has been fixed.
  • Fixed typos in Info-chan’s text messages and the 1980s Ryoba monologues.