Merry Christmas + New Build + Progress Report

Merry Christmas! Let’s celebrate with a yandere Christmas carol!

Speaking of Christmas carols, Sakura Media re-created “It’s Beginning To Look A Lot Like Murder” in 3D! I think she did an absolutely amazing job, so check it out!

And if you’re looking for something comical, check out this Christmas Special by Victoria Walton:

In addition to Christmas cheer, I also have a new build and a progress report! Click “Continue Reading” to see the details!

Progress Report

First, I’d like to describe what I’ve been working on for the past few weeks.

In my last progress report video, I put this image onscreen, and said that the items on that checklist would be my next priorities. However, I completely forgot about some other things that I also really wanted to implement; for example, End-of-Day Visuals and greater face variety. Actually, there are a dozen little things I want to fix about Yandere Simulator; everything from background details (the sky didn’t have a sun until a couple of weeks ago) to important new features (like making students go to the nurse when sick).

For a very long time, I’ve wanted to implement a new inventory system. This is one of the things that I worked on over the past few weeks. However, while working on it, I was plagued with self-doubt. I constantly asked myself questions like, “What if nobody likes this feature?” “What if I’m working on a feature that nobody wants?” “What if everyone wants me to change it back?” “What if this breaks the game’s design?” “What if this turns out to be a giant waste of time?”

In the end, I decided that the new inventory system was a bad idea. It would change the flow of gameplay drastically, require significant alterations to the game’s design, and would probably be perceived as a hindrance rather than an improvement. Because I had sunk multiple days into it, I didn’t want to stop; stopping would mean that my time had been a waste. But, continuing to spend more time on it would be an even BIGGER waste, so I stopped working on the new inventory system.

I decided to work on one of the pre-Osana checklist items, instead. I chose to work on the Saving/Loading system. When I first started developing Yandere Simulator, I imagined the most simple saving/loading system possible: when you’re in your room, you can save. That’s it. I wasn’t planning on letting the player save in the middle of school gameplay. However, over the past few years, I’ve come to reconsider that plan. I’ll explain why:

Yandere Sim’s game design is heavily influenced by the Hitman series. During a Hitman mission, the player is frequently put into situations where a single mistake could jeopardize the entire mission. When I play a Hitman game, I am constantly saving the game before taking risks, and reloading my saves whenever something unfortunate happens. Being able to save and load at any point in time is crucial to my enjoyment of the game; if I wasn’t able to save and load at any arbitrary time, I would probably be far less interested in playing Hitman.

On a side note, being able to save and reload allows me to experiment in all sorts of ways, and experience every outcome of every scripted event. Eventually, through repetition, I can develop complete knowledge of a mission and every NPC in it, and become a flawless master assassin. There’s an excellent video about this exact topic that you can check out, if you feel like it:

Anyway – because Yandere Simulator’s game design is closely related to Hitman’s game design, I decided that it’s absolutely mandatory for Yandere Sim to have an “anywhere, anytime” save system, exactly like Hitman. Anything less would probably result in a lot of frustration for the player, whenever you screw up and want to turn back time. And so, I decided to make it my mission this month.

Although I have over 6 years of programming experience, I’ve never actually worked on a project that required a save/load system before, so this was entirely new territory for me. You might think that, “Take a snapshot of the current state of the game, and let me return here anytime I want,” sounds like a basic necessity for a video game, right? Well, unfortunately, it’s easier said than done.

If you’ve ever used an emulator, you’re probably familiar with the concept of save states. When you create a save state, you’re dumping everything in the emulator’s memory. Old video game systems only had a few megabytes of memory space, so most save states are really small in size. However, most modern-day games are using several gigabytes of memory at any given time – at least, Yandere Simulator certainly is – so “dump everything that is currently in the computer’s memory” isn’t feasible. You don’t want your Yandere Sim save files to be 4 GB each, do you? Yeah, me neither.

I checked the Unity Asset Store to see if there were any pre-made save/load systems that I could simply purchase and drop into the game. However, there are absolutely NO plugins which take a snapshot of the current scene and allow you to return to it anytime you want. I spoke to multiple Unity developers about this, and they all told me the same thing; the type of functionality I’m asking for is impossible. You simply can’t build a “save everything about the game in its current state” plugin that will work universally for all Unity games.

I spent multiple days researching and investigating how other Unity developers were handling their saving/loading operations, and I gained a lot of knowledge about the topic. I don’t think you want to hear me ramble about reflection, serialization, singleton patterns, et cetera, so I’ll give you a brief summary: There is no easy way to create a “snapshot” of the current gameplay state at any given point in time. In order to achieve an “anywhere, anytime” save system like Hitman, I’ll need to explicitly tell the game absolutely everything it needs to remember when the players wants to save their game, and I’ll also need to provide the game with thorough instructions for precisely how to “re-create” the state that the game was in when the player saved.

Yandere Simulator’s school scene contains hundreds of objects that can be in numerous different states; a door can be open, closed, locked, etc – and there are dozens of doors in the school. Yandere Sim’s characters can be in numerous states, as well; dead, alive, fleeing, fighting, investigating…there are so many different states that if I wrote them out here, this blog post would be twice as long!

In short: There are hundreds – actually, thousands – of different things that the game needs to remember in order to perfectly re-create the school as it was when the player saved the game. And, in order to implement a save/load system, I’ll have to manually tell the game each thing that it needs to remember!

Not only that, but every time I add a new feature to the game, I’ll have to update the save/load system to be aware of the latest feature I’ve added, and implement protocol for how the game should re-create every state that the feature can be in. Because of this, it would probably be wise to implement a save/load system last; otherwise, I’ll constantly be updating the save/load system every time I add a new feature or tweak an aspect of the game.

So, let’s recap: I spent multiple days developing an inventory system, only to realize that it was a bad idea. Then I spent multiple days researching different methods of saving/loading the game, only to realize that I should postpone it until the game is further in development. Even though I’ve been hard at work since my last blog post, I don’t have a huge new feature worthy of a video. I feel as though I’ve made important progress, but at the same time, I feel like I’m returning to you empty-handed. There is good news, though…

The more I researched saving and loading, the more intimidated I felt. I began to worry that I was committing to something I wouldn’t be able to accomplish. Could I really build a save system like that? Would my skills be adequate? Would I only waste my time if I tried? I needed to prove to myself that it was within my ability to build a save/load system. At the very least, I wanted to confirm that it would be possible to serialize and de-serialize student data; to log everything that students were doing (Are they late for class? Do they hold a grudge with Yandere-chan? Have they witnessed a murder?) and restore them to that state on demand. So, I began working on a save/load system – a simple one – to prove my own ability to myself…

…and I’m pleased to say that I was able to achieve my goals!

It is now possible to “save” the game – but I’m putting “save” in quotation marks because I’m currently being very selective about which data is being saved. As of now, when you’re loading a save, the game will only remember:

  • Time of Day
  • Student Locations
  • Yandere-chan’s Location
  • Student Data (Dead? Alive? Late? Alarmed? Holding Grudge? Etc.)

Everything else (item positions, blood stains, unlocked doors, etc) is not being saved at this point in time; I simply wanted to prove to myself that I can build the proper foundation of a save/load system, and I succeeded at my objective.

You can also create “Save Files” at the game’s title screen now:

Your save file displays information such as how many people you’ve killed, the current level of school atmosphere (“Mood”), how many times you’ve alarmed other students (“Alerts”), etc. Maybe Save File #1 will be your pacifist file, and Save File #2 will be your “kill everyone” file? (As you can see, I’ve added a little detail: the more people you kill, the more bloody your save file will get on the title screen!)

The save/load system is extremely incomplete at this point in time; there are no warning boxes when you’re deleting your data, for example. Don’t get attached to any of your current save files, either, since they may be completely incompatible with future versions of the save/load system.

The save/load system is probably very buggy in its current state, since there are doubtlessly some things I forgot to tell the game to remember when re-creating the state of the school scene. You probably shouldn’t bother to report bugs related to saving/loading; at this point in time, it’s more of a “proof-of-concept” than anything else. You can play with it for pure novelty value, but you probably shouldn’t expect the game to run smoothly after reloading a save.

Wow! I really rambled for a long time in this blog post, huh? I guess I wanted to describe what I’ve been doing to reassure you that I’m still dedicating every day to working on the game, even if you don’t see a huge impressive new feature in the latest build. One of my worst fears is that everyone will assume I’ve stopped working on the game because I haven’t updated in X days, or added a new feature in X days. I wish that every two-week period could result in a new feature…but sometimes, it’s necessary to spend time on prototyping and research, instead of developing new content.

Speaking of new builds, I’m releasing a new build today, with numerous bug fixes and minor improvements – as well as the save/load system described above. Here’s a list of everything that changed between the previous build and the current one:

Fixes, Changes, and Additions

  • Began implementing a Saving/Loading system; it’s now possible to access the Save/Load menu options in Yandere-chan’s smartphone menu. Currently, saving/loading will only affect students, Yandere-chan, and the time of day. At this point of time, nothing else (such as weapons, items, doors, etc) will not be affected by saving.
  • Updated the “Characters” page on the official website with profiles for groups of people, in addition to specific individuals. There are now profiles for the Science Club, Bullies, and Student Council. (However, there is no profile text yet; only images.)
  • Added vegetables to the empty gardening plots in the Gardening Club, in preparation for improving the gardening club members’ routines by giving them more actions to perform aside from “watering flowers”.
  • Fixed bug that could cause Yandere-chan to perform strange animations inside of changing booths if she was performing an action like carrying a heavy weight when the player made her change clothing.
  • Fixed bug that caused a character’s handheld objects to disappear from their hands if Yandere-chan spoke to them twice while that character held a grudge against Yandere-chan.
  • Fixed Matchmaking minigame bug that would cause Kokona to say the wrong line of dialogue when telling a suitor to use the “Show Off” command without sufficient stat points.
  • Fixed bug that caused male students to die when Yandere-chan used psychokinesis on them, instead of being lifted up and moved around as intended.
  • Fixed bug that caused characters to hold their smartphones in their hands at inappropriate times, if a specific set of circumstances was met.
  • Updated the appearance of the TV + TV stand in the Gaming clubroom so it’s not a duplicate of the TV + TV stand from Yandere-chan’s home.
  • Fixed bug that would prevent anyone from being able to use the locker room to change clothing if Kokona changed her clothing in there.
  • Fixed bug that caused Yandere-chan to wear two pairs of panties simultaneously if the panty censor was enabled and then disabled.
  • Updated the artwork for the club recruitment posters near the school’s entrance. The new artwork was illustrated by Neronda!
  • Further improved the lifting-heavy-weight animation. (It’s not perfectly seamless, but it’s a lot less weird and janky now.)
  • Fixed bug that could cause Miyuki AR minigame models to appear when the player was editing a character’s face in Pose Mode.
  • Fixed bug that prevented the player from being able to talk to any students if a member of the Light Music Club was dead.
  • Fixed bug that prevented the loading screen from appearing when selecting “Load Checkpoint” at the Heartbroken screen.
  • Updated the “Characters” page on the official website with a new category – “Groups”. No text yet; only images for now.
  • Fixed bug that caused female students’ heads to disappear when using the yellow sweater school uniform (thanks AMZE)!
  • Yaku (Science Club boy with visor) will now have “sad eyes” on his visor when he has been targeted for bullying.
  • Fixed bug that made leaves clip into the woodchipper in the Gardening Club when opening the woodchipper’s lid.
  • Fixed bug that caused photographs to flicker or disappear when placed on Yandere-chan’s corkboard at home.
  • Fixed bug that prevented some characters’ hair models from turning to stone when Medusa Mode was active.
  • It is now possible to use the lockpick to open the safe or the display case in the Headmaster’s office.
  • Fixed bug that prevented the Music Club’s stockings from appearing as options in the Pose Mode menu.
  • Fixed bugs that prevented male students from being dismembered when attacked in Cyborg Mode.
  • Gita will no longer give her Task if the Light Music Club is closed, or if Miyuji is dead.
  • Changed the game’s post-processing bloom effect so that it’s not so harsh on the eyes.
  • Students will now refuse to follow Yandere-chan into the delinquent/incinerator area.
  • If the delinquents get expelled, School Atmosphere will now receive a small boost.
  • Changed the color of Fureddo’s ascot to distinguish him from his namesake.
  • Changed the appearance of the tranquilizer bottle in the infirmary.
  • Fixed discoloration problem with Homu Kurusu’s eye texture.
  • Changed all instances of “Yandere-chan” to “Ayano”.
  • Added three new hairstyles for Yandere-chan.
  • Added many new props to the Drama Club (Thanks, SizableMovie!)
  • Updated Fureddo Jonezu’s hair model (Thanks, SizableMovie!)

What’s next?

I worry that the YouTube audience will think I’ve stopped working on the game if I don’t release a progress video, so I intend to release a new video on January 1st. In that video, I’ll largely just be repeating everything I said in this video, but I’ll also have some questions for the fanbase, as well.

Thank you for following the development of Yandere Simulator!

41 thoughts on “Merry Christmas + New Build + Progress Report

  1. Hey, really nice work! It’s nice that you’re doing a lot of research and asking around before trying to implement the save/load system. It never occurred to me that it’d be so difficult to make. And don’t worry, I never thought you stopped working on the game.
    Good luck with future updates! 🙂

  2. You work so hard on this game.You are a good example.I mean you’ve spend your life on this game.You are so awesome and talented! Keep it up,Devpai!❤❤❤

  3. Man not much developers wish their audience merry Christmas its nice to see your in the Christmas spirit! Merry Christmas

  4. Man not much developers wish their audience merry Christmas its nice to see your in the Christmas spirit! Merry Christmas

  5. Can you please change the eyes ore making better eyes of Yandere-chan? She looks to dark for me on normal days on the school, not innocent enought like Satou from the Anime ,,Happy Sugar Life”.

    • She is not Satou from Happy Sugar Life, but have you tried changing her personality in the light music club? She looks pretty innocent.

    • He already said he’s completely changing the models for all of the characters in game, so changing too much about eyes and hair and stuff would just go to waste. I dont know who Satou is, but if you watched/read the background about Ayano, shes not really the “cutesy innocent” type. Shes not trying to be cute or charming, just to appear normal.

      • Yeah i mean ,,normal” but for me she looks to dark for ,,normal” state. That what in was to try to say. Because before he changes the models (mostly face expressions) he musnt change Yandere-chans face, just leave the base modell i was totally fine with this.

  6. Have an Idea about saving, can you make a file that’s like a snapshot of how the school is with no changes and have it save everything that’s different? I don’t code so don’t know if it’s possible. But figured it wouldn’t hurt to toss the idea out there anyway. 🙂

  7. Oooooh, so that’s why demo games never have a save system no matter how long or complicated they are! Thanks for trying anyway, YanDev! Although it sounds like the proto save can be exploited to get rid of blood now… Guess I’ll finally get to complete my genocide run now ~

  8. Yandere-dev, please don’t worry about your progress on the game. The best comes last,no? And honestly, I really liked your idea for the inventory system the first time you spoke about it; it’s really a great concept that will benefint Yandere sim. and the overall gameplay and believability. Yandere’s mom would totally make her a skirt for easy murders and have it stored somewhere for when the ”big day” came. You are a great game developer that cares what goes in the game and how it fits in, given that there are bugs the game is still playeble, AND the sandbox IS testing grounds for features and how they work. I know you’re probably overworked and stressed,but keep in mind that you have fans who wouldn’t mind a game detail that you’d implement,it just takes some time to getting used to. Merry Christmas and have have a wonderfull holliday.

    p.s: i love your work on yandere-sim. So far what you’ve shown is incredible,and so full of hope for the final project.Get those awfull thoughts out of your mind and try to enjoy the fandom,the GOOD people,that has joined you on this journey.

  9. Failure happens. You can learn from it and move on, or you can get hung up on it. Don’t worry about your audience. A post once a month is probably enough to keep their attention. Not a video, just a blog post. Plenty of other games that don’t update often yet still retain a large audience.

  10. ‘Fixed bugs that prevented male students from being dismembered when attacked in Cyborg Mode.’ but you said not to report bugs that only can occur with Easter eggs?

  11. I think that an “anywhere, anytime” saving system works good for Hitman, but I’m not so sure about Yandere Simulator. If you screw up in Hitman, the mission fails and you have to restart all over. However, Yandere Sim is quite different. If you get caught holding a knife or covered in blood, Ayano gets sent to the Guidance Counselor. If you know how to handle things, you can get out of the GC without consequences several times. That is already a big advantage. If you keep with this type of saving system, then the player will feel like they have great power over the game’s obstacles. If Senpai or the police discover that Ayano killed someone, it should be an instant game over and the player shouldn’t be able to come back in time, only restart the day. This forces the player to at least feel like they need to be careful on what they do after killing someone until the end of the day. I don’t want to feel like “Oh, I got a game over, boo-hoo, let’s go back 5 minutes in time and try again”. Personally, I won’t feel the same emotion of getting away with a crime with this update in contrast with how I felt before, I feel like whatever challenge the game had just vanished. Again, if you decide to keep with this new system, I feel like the Guidance Counselor loses her purpose, along with other obstacles; the player will just go back to a few seconds before getting caught and then avoid the action. I think that your old idea, the one that allows you to save at Yandere-chain’s room only, is just better.

    One question, even if that new inventory system you described won’t be in the game, will you still implement another type of inventory system? Or at least upgrade the current one? Anyway, I still love to see more progress on the game.

  12. I think we will have to wait until 2100 for Osana`s route to be even considered completed… which is never going to happen. Face it, this game is never going to be finished.

    • Don’t be an arse. He’s doing the best he can. Are you familiar with his term “gremlin?” Because you are kinda being one of those.

  13. The choice of how saving works could be a difficulty system. For example, if the player chooses easy mode then they can save whenever, the normal mode would be saving everyday and hard mode would mean the player would save once a week and “Real-Life mode” would mean you could never save and have to have the burden of their actions.

    just a thought.

  14. If you use C# attributes you’ll need to tell the game once, which values to save and which not. Instead of saying
    ‘float DoorRotationState = 0f;’ you say
    ‘[SaveThis] public float DoorRotationState = 0f;’,
    then you make a save script that traverses the object tree of unity and packages all the values into little packets of bytes (you can use the System.BitConverter class)
    That way you don’t have to reimplement serialization and packaging of data every time you make a new update or everytime you add a simple value.
    You just need to come up with an idea on how to separate dynamically created and static (editor placed) objects and sustain the parent-child order of the objects.
    I think that learning how to make a save system is a good practice for optimization and a fun thing, once you get things running.
    Also you’ll benefit from that aswell because if you test a new feature or fix a bug, you can always load a save file to get the exact same situation as before.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s