This update either fixes the game getting stuck sometimes when meeting booty or introduces more bugs.
Enjoy!
Fixed some sonar issues
- Fixed a rare case where K-Lev's sonar fails to detect the Windows folder. - Literally exactly the same fix as the previous point except this time it was caused by something else
Look at this insane code with a billion fallbacks I had to write to deal with all the rare edge cases where K-Lev failed:
Ukrainian & Hebrew translations now available + new content
Do you like speaking Ukrainian or Hebrew and you're also unable to play games in English?
Well too bad because it means you can't understand these patch notes: - Ukrainian localization now available (provided by PrismaLoc) - Hebrew localization now available (provided by TeamKipod) - Emotional support provided by your mom
Have fun!!!
Ohhhhhh, yeah.... by the way. I'm working on a new content update. Remember that weird door in the school chapter? Well, keep remembering it.
Here's a sneak peek of a new character that lets me get away with not being able to translate the new content
Black screen fix
For a while many people who opened Outcore more than one time ended up not seeing their desktop (aka The Notorious Black Screen bug).
Solving it required asking users to navigate to Outcore.exe on their Windows filesystem, opening its properties, and disabling fullscreen optimizations in the compatibility tab. While this solution works, it is not ideal to ask users to go through all that. To make it worse, many users never even find out about this solution so they end up quitting.
This (I hope) changes today. I finally found the registry entry that remembers if fullscreen optimizations should be enabled/disabled, so I made the game force disable it when it launches. You may need to launch the game more than once to see it take effect.
The "I'm sick of players getting stuck in this puzzle" update
There's this one puzzle room in the school chapter where like half the players get stuck. I've tweaked this puzzle several times since the game was released and yet I've failed to make it intuitive.
Well I'm done tweaking this. From now on I'm going to assume you guys LOVE tutorials and just put a sign that disrespects you by telling you what to do
There, world peace has been restored.
.... By the way. You know the escape room puzzle? It has 3 colorful buttons that make stupid noises when you click them. Apparently this did not work for the last couple of months and I found out about it only now........................................................................ ops. Well, it's fixed.
The Lumi Plushie update V2.00000000
Remember the last time we had a Lumi Plushie update? Well, how about another one?
This update celebrates the plushie's design reveal + campaign kickoff. Before we talk about how you can buy the plushie, let's start with the patch notes:
Added a giant Lumi Plushie outside one of the windows in the school's chapter. This plushie will simply stand there, judging you.
It took months to develop this update. Every single hour poured into it was worth it for you, the players (btw it's getting reverted once the campaign ends).
The initial ref was designed by AlpacaCarlesi, who also drew Lumi in Ourcore's header artwork + (SPOILER)Big Lumi boss sprites
I sent these as refs to Makeship and they started working on the prototype of Lumi. After about 2-3 weeks I received photos of the first iteration:
First of all: CLOWN NOSE! I was planning to surprise everyone and asked Makeship to give Lumi a detachable clown nose. But more on that later.
I was excited to see Lumi, a character I designed, as a real life plushie. But my thoughts of the first iteration were... that it needed more work.
V1 was too off-model which made it feel like it was not really Lumi. A bunch of minor issues also made her look a bit awkward, such as:
A somewhat long distance between her eyes
Eyes looked a bit dead
That velcro in her nose that made it look like she had a Hitler mustache
Rabbit teeth
Her bangs were too round
Luckily, Makeship lets creator send change requests. After thinking about it for a couple of days, I sent them this:
I showed the initial design to alpaca + a couple of friends, got their feedback and combined it into the V2 ref above. One of the changes I asked them to do was to change Lumi's back hairstyle, as I felt it was too hidden when viewed from the front.
I also discussed the clown nose idea and decided to drop it, since Makeship couldn't implement it without using the hitler stash velcro.
A few weeks later, I got pictures of Lumi V2:
It was already MUCH better than V1. But I felt like there was still more work to be done. The things I disliked about V2 were:
Her front bangs curled too much. It kinda made it look like a helm
I wanted the eye highlight to have that orange/pinkish outline that Alpaca used in the ref she made
Her eye color was better than V1, but the dark and lighter shades were too similar
In V1 I asked Makeship to remove the teeth, but looking at the teethless mouth in V2 made me feel that it looked weird.
I didn't like the new shape of the back hair
Lumi looked great in Alpaca's ref without teeth, but something about it didn't translate well into plushie form. I realized the teeth in V1 were too narrow, which made it look like rabbit teeth, so I asked them to give her wider teeth.
I also didn't like the new back hair shape because it was too short, which made it look like Lumi had a completely different haircut. When i designed V2's ref I made it longer, but didn't take into account that it could be shortened so she could properly sit. Being able to sit was important as it's a signature pose for Makeship plushies. I ended up asking Makeship to revert the back hair to the same one in V1.
These were the change requests I sent:
Again, after a couple of weeks I received V3 pics:
This iteration was good. I still wasn't sure if it was better to have teeth or not, and thought it could still be better. I decided to not be a perfectionist and accepted that she can't look exactly like Alpaca's ref, so I approved it.
A couple days later I physically received V3's prototype via air mail. She's adorable!
BUT!
I noticed a minor issue that bothered me. The shape of V3's back hair was not exactly the same as V1. It was a bit more rectangular: It was a minor detail but it still bothered me. Lumi's hair as a prominent feature in her design and I wanted it to look like right.
The campaign's start date was fast approaching and I didn't know if Makeship would be willing to make changes. Luckily, they agreed to change her hair, so you're all getting V4, the better version of Lumi's plushie. Kinda funny but I'll be the only person in the world to hold a Lumi plushie with a slightly incorrect design.
Anyway we've talked enough about Lumi. Let's take a look at Jiji doing a poor job drinking water.
Forget about the previous post telling you to forget about the previous update
Reverted the reverted update since I fixed the issue that caused me to revert the update in the first place.
Actually forget about the last update
Reverted the previous update since it broke Lumi's speech bubble on some computers.
Update Notes for January 44th, 1927
Added Brazilian Portuguese translations
Fixed a rare case where the game gets stuck when it tries to open Paint
Modified dialogue/subtitles/text systems to support RTL languages in the future. Let me know if it broke anything.
PROGRAMMING
Hey NERDS. Do you like reading blog posts about programming and technical stuff? Don't lie to me, we both know you do. This is why today I'm gonna talk about some bug fixes I've made recently, including the juicy part where you get a sneak peek of Outcore's source code. Let's get down to business
The "let me try something" bug
Very early in the game, the player is tasked with drawing a key to open a safe by using MS Paint. Unfortunately, sometimes that's not possible due to the game not having permission to access Paint. Sometimes it also fails because some of you deranged lunatics decided to uninstall Paint from your copy of Windows. This causes Outcore to soft lock, preventing any further progress.
The reason I made a game revolve around using Paint was that I thought every Windows PC would have it. The fact it can't be used sometimes made it quite difficult to solve. I could make Lumi ask the player to use another image editing software, but then there would be no way for the game to react to the player opening that program. Also, what if the player doesn't even have any image editing software to begin with? Not only that, but I would also need to contact all the volunteer translators to translate the new lines.
Since this solution was not feasible, I had to go back to the drawing board. I considered creating a fake substitute for Paint, but that would be waaaaaaaay too much work for such a rare edge case.
I eventually realized that I could include another image editing software with Outcore, and use that instead. So I decided to include a portable version of Paint.net with Outcore's installation. Paint.net is free to use, and more importantly, free to distribute, can run without having to install it first and can open an image via command line parameters. The combination of these factors made it a great choice for a failsafe solution in cases where MS Paint can't be loaded.
Oh right, I promised you some code. Here are the instructions that launch the correct Paint program
We're entering spoiler territory here. During the first phase of the final boss, the player is tasked with helping Lumi gather energy while fighting a fake anti-virus and icons on their desktop. I knew there was a bug on rare occasions where the fight would get stuck as soon as the 1st icon mini game was supposed to run.
For a while I didn't know what was causing it, that is until Aya Shameimaru and Cirno from the Touhou series joined the game's discord and reported this issue. Turns out this happens when you have too many icons on your desktop.
Initially, I couldn't reproduce it since I didn't have many icons on my desktop. I decided it was time to change that for the purpose of fixing this bug.
There, much better. This allowed me to start debugging. My investigation led me to WindowsUtility, a side program I wrote that helps Outcore function (you can read more about it in the racism bug post).
I'm going to refer to WindowsUtility as WU in this post as well. (Programming talk in 3...2..1..) So WU establishes a communication line with Outcore which it uses to transfer data about your desktop between the two. Behind the scenes that communication line is really just a chunk of memory in your RAM that both programs read and write to. The size of that chunk was the maximum value of ushort, which is 65,535 bytes (or 65.5 megabytes).
When WU sends info about your icons to Outcore, it gathers their info (name, position) in an array, serializes it to JSON and then uses that communication line. While it's comfortable to use JSON for serialization, it's also not too efficient when it comes to the size of the packets you generate.
Did you figure out already what's the issue? When you have a lot of icons, that serialized message ends up being more than 65 MB in size. This meant Outcore couldn't receive the data about the icons, which broke the fight.
I could limit how many icons WU would collect when gathering data, but it could cause other issues later down the line. The next logical solution was to ditch JSON and use something more efficient, like ProtoBuffers. The problem with that is that it was quite a big change. It would require a lot of work to implement and test, and I just don't have the time to do it.
So what was the solution? I increased the size of the communication line from 65 to 130 MB. Why should I work hard when I can make YOU, my dear players, pay the price instead? So yeah, Outcore now requires a bit more RAM to run but at least this issue is solved. The game is so light that it really shouldn't affect any of the players.
Oh WOW, it's been quite a while since I posted a picture. I trust all of you prefer picture books more than plain text encyclopedias. So for the sake of pacing, here's a random screenshot from WU
Anyway, I uploaded this fix about a week ago and immediately regretted it. Turns out my change broke the communication between Outcore, the idle game, and other sub-programs such as the 1-week progress bar puzzle and Lumi Defender... Whoops. Since then I've fixed all of them, so the live version should be ok.
UPDATE: Steam user Wekker1 has brought to my attention that 65,535 bytes are 65 kilobytes, not megabytes. If I had any functioning brain cells left I would have realized that doubling the memory allocated is so negligible that it was definitely the right choice.
The idle game's stage editor is now available for everyone
Also for the sake of pacing, this is not a bug and not too technical. About a week ago some players decompiled the idle game and found out it has a stage editor. That's a tool I made so I could create the idle game stages, but locked it because I didn't want players to accidentally access it.
I changed my mind and decided that it's not harmful to let players use it to make their own stages
This is now available on the live version as well. It wasn't engineered to be used by players so it might be a bit clunky. Let me know if you find any major issues with it.
Lumi file doesn't exist in the Documents folder
This one is straightforward. Outcore doesn't always get the permissions it needs to create a file, which leaves that riddle broken.
For a while, I thought it was unsolvable, but realized it could be solved if I accept unelegant solutions. When the player opens the Documents folder after Lumi asks them to, the game now scans the folder and checks if the file exists. If it doesn't, Lumi will react as if the file was dropped into her.
As I said, not elegant, but it does fix this edge case.
That's it for now. I might make more posts like this in the future for other bugs that could be interesting to write about.