Limited Time Baldi Plushie Available Now PLUS Version 0.4 Status Update!
Hello everyone, I'm here with a status update to discuss some cool stuff that's been going on!
First, Baldi's Basics turned five years old a week ago! To celebrate, I'm happy to announce that I have teamed up with Makeship to create a new Baldi Plushie! Click here to check it out!
This plushie will only be available to purchase until April 28, so don't wait too long! If at least 200 units are sold, the campaign will be successful and the plushie will be produced shortly after! If not, all orders will be refunded, so there's no risk in placing an order early. I worked with the team at Makeship to make sure this plushie was just right, and I'm super happy with how it turned out!
But that's not all I want to talk about! As some of you might know, one of the reasons Baldi's Basics Plus has received so few updates as of late was because I realized I was totally unorganized and needed to finish the game's design document. Well, the core of that document is finished and so I've recently begun active development on the game again! Let's go over what I've been working on over the past month.
Level Control Improvements
Mainly, I've been reworking some old systems that were in dire need of improvements, and cleaning up parts of the project that have become obsolete or messy to manage. With the game design document's core finished, I've gained a much better understanding of what the game needs to be capable of, and one big thing that needed changed was the way tiles - the individual cubes that levels are built out of - are controlled. In current versions of Baldi's Basics Plus, all the data for tiles is stored with the tile game objects themselves. This causes some issues, especially with level generation since large numbers of these tile objects need to be created and destroyed during that process, which is very slow.
What I've done is switched over to a more data-oriented system, where tile data such as navigation and shape info, position, the presence of objects and posters, etc. is now stored separately in a "cell" variable. Tiles are now just the objects that you see in the game, and they are linked to their corresponding cells, but don't actually hold the data anymore. This means that I can now do stuff like generate levels without having to create and destroy stuff until the process is finished, which means the level generator can do a lot more per-frame. The level generator should be lot faster when Plus version 0.4 launches! With these changes, the level control systems are also a lot more flexible than before which should open up some cool possibilities!
Map Improvements
Something a bit smaller, but cool, is that I've made some tweaks to the map. Map tiles are now filled in with a matching transparent background color, making it easier to read. Doors and windows now have unique tiles on the map. Icons for things like items and notebooks now remain upright when viewed through the quick map, and additional icons have been added to elevators to show where they are and their current status. I've tweaked the map colors to make more sense (Class rooms are now green, faculty rooms are now red, principal's offices are now yellow, and hallways are now white). Lastly, I've added a subtle background affect to certain rooms when viewing the advanced map which makes it easier to identify them. I have more plans for map improvements, but this is what I've done so far!
Level Generation Improvements
The other big thing I have to talk about in this status update is that I'm making a big change to the level generator! In the current version of Baldi's Basics Plus, almost everything is procedurally generated. Too much, I've come to realize. So the way level layouts are generated is great, there are no issues there, the problem is with how the contents of individual rooms are procedurally generated.
I think when I started this project my mindset was "the more stuff that's procedurally generated, the better!", but I've since come to realize that isn't necessarily the case. Currently, rooms in Baldi's Basics Plus are really boring. There are a few different types which place furniture and decorations in certain ways, but they all feel stale. My plan for a long time was to eventually take some time to improve the process for room generation to add more variety, but I realized that in order to add enough variety to make rooms that really feel interesting, it would take a lot of additional programming. Too much, in fact. It would basically be like programming a unique level generator for every type of room. Even sharing as much code as possible, it would still be a lot of work, and I haven't even mentioned how prone to bugs and bad layouts such systems would be (I'm sure many of you have seen quite a few desks sticking through windows by now!).
So, I'm switching to a different approach. In Plus version 0.4, all rooms will be premade. Levels will be generated as before, and when it comes time to place rooms, the generator will randomly select from a list of potential rooms, find a position and rotation that the room fits in, and then load it and its contents into the level. This not only makes it easier to make a wide variety of interesting rooms, but it has other big benefits. It improves level generation speed, it helps avoid potential softlocks (Like teleporting only to get trapped behind a desk), and is much easier to maintain, among other things!
Now, initially this might seem a bit less interesting, but I'm confident that this will result in levels that are much more interesting to explore, especially as I add more rooms to the game. I'll be able to add rooms with furniture layouts that have interesting affects on gameplay, rooms with weird shapes (Like the smiley face used in the map you can see above!), even rooms with unique gimmicks! I'll try my best to find the right balance between common, simple rooms and rarer, weirder rooms to keep exploration fresh for a long time!
Oh, once I got this system up and running I also adapted it so that hallways can generate with custom made areas as well, like this open area with a pillar in the middle!
Spring Cleaning
With these big changes almost finished, the next thing I'll be doing is some spring cleaning! There are lots of outdated and obsolete assets and scripts in the project, so I'll be cutting out all the stuff I don't need and making sure the project is easy to work on before I start working on the stuff you all are waiting for- New content!
Work on the next character has begun. I've drawn some (bad, but effective) concept art to figure out what colors he'll be using. Once I pin that down, I'll have to order some art supplies...
Anyways, that's all I have for this status update. 0.4 is on its way, and remember, once 0.4 releases, that will be the beginning of a new update schedule: Major updates every two months! Thanks all for your patience and support!
Version 0.3.8 is now available!
Hello!
Baldi's Basics Plus version 0.3.8 is now available! This version has more improvements and adjustments that I made since 0.3.7 while wrapping up Baldi's Basics Classic Remastered (Which released a couple weeks ago if you didn't hear!). This update is pretty significant because it is the final 0.3 minor update (Assuming no major issues show up)! The next update should be version 0.4.
With Baldi's Basics Classic Remastered complete (Which admittedly sidetracked me more than I intended) I can now put my full focus back on developing Baldi's Basics Plus. While working on Classic Remastered I was also working on the Plus framework, but now I'll be able to get back to making brand new content for Plus, not just improvements and polish. The first step of this will be finishing my Baldi's Basics Plus design document. Then, I'll be back to active development again.
Once I release version 0.4, I will start releasing new major updates approximately every two months. As I work on the game, I'll basically just include whatever features are ready to go when it's time to release each major update, with minor updates mostly being for bug fixes and very minor adjustments.
With all that said though, here's the changelog for 0.3.8!
Additions
Added new sounds for
Doors locking and unlocking
Trying to open a locked door
Using a water fountain
Inserting a coin into a vending machine or coin door
Buttons
Created a new texture for buttons.
Added the ability for certain parts of textures to glow in the dark. This has been applied to buttons, vending machines, and math machines.
After starting the game, if you press and hold "alt" until the Basically Games logo disappears, all your settings (Except for controls) will be reset. This is useful if you've messed up your settings and somehow are unable to change them back.
Adjustments
Downgraded It's a Bully's audio clips to match the rest of the game's audio.
Principal's keys no longer instantly open a door when used. Instead, you will now hear a sound signifying the door has been unlocked. Then the door can be opened freely.
Made it so you can now look backwards while jumping rope.
You can now move a little bit during a jump while playing jump rope! Now when you get caught by Playtime in a bad spot, you might still be able to get where you need just in time!
Alarm clocks can now be set to go off after 15, 30, 45, or 60 seconds. Once dropped, just click on it to change it! It will be set to 30 seconds by default.
Arts and Crafters' teleportation destination is now determined the moment you are teleported, rather than the moment the attack starts. The behavior now works a bit more like you'd expect as you won't get teleported to exits you close after the attack sequence starts.
The game will no longer load at a resolution smaller than 480x360. The options menu will no longer show options smaller than 480x360. If the config file is manually changed to a resolution lower than 480x360, the resolution will reset to the default setting.
Bug Fixes
Fixed an issue where the player would get sent out of bounds if they were teleported while being pushed by First Prize.
Fixed issues with color glitch shaders (As seen in the ending sequence) flickering.
Fixed blurry skyboxes in the Linux version.
Fixed an issue that caused the lighting of certain objects to change depending on how close you are to them.
Restored whirlpool audio, which was missing in some of the previous versions.
Fixed door audio coming from a location next to the door, not on the door itself.
Fixed an incorrect caption for one of Baldi's voice clips.
Fixed a bug that would cause the player to interact with an object they were facing when clicking the "resume" button on the pause menu.
Fixed a bug that caused 1st Prize to make a slam noise when cutting his wires while moving at a high speed.
Fixed WD-NoSquee uses being used up when clicking on a door that is locked or open.
Fixed cafeteria ambience not being assigned to the sound effects audio channel, meaning it wasn't affected by any audio settings.
Fixed a bug that caused players to become vulnerable when teleporting out of a locker.
Fixed a bug in the Grapple Challenge that allowed players with a full inventory to replace items with their grappling hook and have the item they picked up get immediately replaced with another grappling hook.
Fixed a room in the Stealthy Challenge that was walled off.
Fixed the way the game detects what the default resolution should be. It will now use your primary monitor's current resolution (As set in system settings, not its native resolution).
On top of all that, version 2020.3.38 of Unity was released a couple of months ago which fixed the MacOS freezing issue from before, so the MacOS version is now exactly the same as the others and the Vsync setting has been restored!
And with that, I've got a game design document to finish! See you all when 0.4 releases!
MacOS version of 0.3.7 is now available!
Hello MacOS players!
I'm happy to let you all know that Baldi's Basics Plus version 0.3.7 is finally getting released on MacOS! There is one small change I had to make to get the MacOS version working however, which unfortunately has the side effect of increasing load times, particularly for randomly generated levels. Here are the details:
The reason I didn't initially release the MacOS version is because of a bug I discovered that caused the MacOS build to freeze very frequently. After doing some digging I isolated the issue and discovered that the freeze only occurred when changing the game's Vsync mode. As it turns out, the issue isn't on me, it's an issue with the current version of Unity 2020, which is what Baldi's Basics Plus is currently built with. This means that I can't fix it, I have to wait for Unity to push a fix. The issue is in their bug tracker, and currently a fix is "in review" for Unity 2020, but I'm not sure how long I'll have to wait for it to be pushed out as I reported the bug nearly two months ago. A new version of 2020 released yesterday which did not come with the fix, so I decided the best thing to do would be to work around the issue for now, rather than to keep MacOS players waiting any longer.
I made two changes to the MacOS build to work around this issue. The first is that I removed the Vsync option from the options menu. Vsync will be on by default. The second is that I removed pieces of code that disable Vsync while levels load. The reason for disabling Vsync during loading is to reduce load times as much as possible, as the level generator/loader does each step one-at-a-time each frame. By unlocking the frame rate during loading, it can complete in one or two seconds on fast PCs (I realize now that there are more efficient ways to generate a level than the current methods used by the game, but I probably won't revisit the level generator code for a while). Since I can't currently do this on MacOS, Vsync stays on and load times will probably be noticeably longer than they were on faster Macs (On slower Macs, you probably won't notice much if any difference).
Of course, this isn't a permanent solution. Once Unity resolves the issue (Which hopefully won't take much longer...) all versions I release after that should be the same on MacOS as on all other platforms, and load times should return to normal. Until then, this seemed like the best solution. Thanks for your patience everyone!
0.3.7 is out now with fixes for control issues!
Baldi's Basics Plus version 0.3.7 has just released! It's a small patch to address some issues many players were reporting with the in-game cursor movement being treated as a joystick input. While there were ways to fix it when it happened, this patch will hopefully prevent it from happening anymore. Note, that due to the changes made, this update will reset your current control maps!
The MacOS version is still on hold until further notice, sorry about the wait! I've figured out what's causing the issue and it actually seems to be a problem on Unity's end, not mine, so I'm waiting to hear back from them regarding a bug report I sent. Fingers crossed the issue gets worked out soon!
Here's the full changelog:
Adjustments
Made menu controls visible in the Rewired control mapper. You can now change controls for mouse cursor movement, clicking, map zoom, etc.
Adjusted default control map settings. By default, the arrow keys can be used to control the in-game cursor, and enter to click.
Holding the control key when the Basically Games logo disappears will reset the controls to the defaults.
If the game detects a bad mouse mapping, it will reset the mouse control map to the defaults (A bad mouse map would be assigning mouse movement to a few Joystick inputs or removing the cursor maps, among other things). This is to prevent a scenario where the in-game cursor becomes impossible to move.
The "check for updates" button on the main menu now leads to the game's Steam news page.
Bugfixes
Fixed several issues with the way Rewired was setup. This will hopefully prevent the weirdness that was occurring in 0.3.6 (If not, the bad mouse map detection should act as a failsafe).
Fixed glitched invert axis icons.
0.3.6 is out now with tons of bug fixes! MacOS version still on hold.
Baldi's Basics Plus version 0.3.6 has just released, and with it comes a lot of bug fixes! Thanks to everyone who reported bugs, that was a huge help.
The MacOS version is still on hold unfortunately, as I still haven't figured out what's causing it to freeze. With these bug fixes out of the way though I'll be able to spend some more time digging into the issue.
Here's the full changelog, as well as some known issues I haven't taken the time to fix yet. You don't have to worry about reporting those!
Adjustments
Renamed "subtitles" to "captions".
The player can now move around a little bit while being hugged by 1st Prize.
When being pushed by 1st Prize or Gotta Sweep, the player will automatically open any doors they collide with.
Updated copyright.
Added the ability to past seeds into the new seed entry system. Just press Control/Command + V when a valid seed is saved to the clipboard!
Placed the Hide-and-Seek button in a more prominent spot to make it clearer that it's the main mode.
If a file's resolution is manually set by modifying the config file, that resolution will be added to the list of available resolutions in the options screen until the setting is changed and the game is closed.
Camera no longer renders while pause screens and field trips are open. This should allow for smoother performance on low end hardware while on these screens.
Added transitions when loading and leaving field trips and when entering and leaving Johnny's store.
Adjusted the value of the minimum mouse camera sensitivity setting.
Bug Fixes
Fixed windows not having the correct broken glass texture (Not sure how that one slipped by, whoops!).
Fixed Rewired control mapper maps being reset every time the game is started.
Fixed Steam Input not working during in-game field trips.
Fixed the "NO" button on the quit confirm screen not having a transition.
Fixed the player being able to click through windows.
Fixed gum passing through windows.
Fixed the grappling hook not latching onto windows.
Fixed apple trees not having apples.
Fixed the water fountain spout and grappling hook cracks rendering over other sprites.
Fixed the water fountain spout sprite billboarding. It is now static.
Fixed captions being stuck reversed when losing, quitting, or beating a level while upside down.
Fixed being able to pause during in-game field trips by opening the Steam Overlay.
Fixed 1st being able to pass through players under certain conditions.
Fixed sometimes being left behind by 1st Prize when passing through doors.
Fixed display issues on resolutions thinner then 4:3.
Fixed hud elements overlapping or going off screen.
Fixed menu screens being too small and low res.
Fixed multi-part posters not loading into levels properly.
Fixed being able to press the pause button and unpausing the game while using the Rewired control mapper.
Improved the appearance of the dither transition on non-integer scale resolutions with the pixel filter on.
Fixed party music playing from 0,0,0 instead of the Principal's Office.
Fixed window breaking missing a caption.
Fixed many dither transitions playing way too fast.
Fixed visual issues when quickly opening and closing the map.
Fixed the jump rope rendering on top of pause screens.
Fixed objects close to the camera near clip plane rendering on pause screens.
Known Issues
The principal's office tape player desk sometimes sticks out a window.
Arts and Crafter's clones during the teleport animation don't always match his orientation during Gravity Chaos.
Holding the quick map open when opening the advanced map causes a bit of visual weirdness.
Pressing opposite directional buttons to move the quick map can cause it to move at slow speeds.
Version 0.3.5 is out now on Windows and Linux! MacOS version should be soon.
0.3.5 is out now on Windows and Linux! Before updating, note that, due to changes made since 0.3.4, settings and control maps will be reset. If you have a complex control map setup, please make sure you know what it is so you can recreate it after updating!
MacOS users, unfortunately I'm encountering a pretty bad freezing issue with the MacOS build. I haven't been able to fix it or even diagnose it. It's... Weird, to say the least. I'll try to get to the bottom of it soon, but for now I've decided to delay it until I find a fix.
Here is the changelog for most of the changes found in 0.3.5. Additions from the changelog in the previous post are in bold. Also, one bug fix which I thought was fixed (The blurry skyboxes on Linux) actually isn't fixed. Not sure why I thought it was but hey, I'll do what I can to get crisp skybox pixels on Linux!
Additions
Added support for the Steamworks API. When played on Steam, the following features are enabled:
Full Steam Input support.
The game automatically pauses when the Steam overlay is opened.
An achievement system has been implemented, but the game will not receive any achievements until the 1.0 update.
A new file button appears if the game is being played on Steam Deck or in Big Picture mode. This will open an on-screen keyboard allowing you to enter your name with a controller.
Clicking on the seed button to enable a custom seed will open an on-screen keyboard on Steam Deck or while the game is running in Steam Big Picture mode.
Rumble support. If enabled, the controller will rumble when Baldi is nearby and when being caught by Baldi. If the controller being used has two individually controlled rumble motors, the side of the controller that corresponds with the direction Baldi is in relative to the player will rumble more than the other.
Added a visual effect when getting caught by Baldi, similar to the one in Baldi's Basics Classic.
Added a slam effect for when 1st Prize is stopped while traveling at high speeds. This sound will get Baldi's attention.
Once all notebooks have been collected, Math Machines re-light for bonus questions! Answering bonus questions will reward the player with YTPs.
Added screen transition effects. When moving between menus, a dithering transition is used. <*> Added instructions and a jump rope counter that appears on screen when playing jump rope.
Adjustments
All menu screens now use the in-game cursor. The OS cursor of your computer is no longer used for anything in the game, except for the control mapper.
All menu screens (And other UI based screens, such as the field trips) now render to a 480x360 render texture, which is then displayed on screen. This ensures all GUI elements remain pixel perfect.
This screen uses a shader that can filter the pixels so that they appear square, even on non-integer scaled resolutions, with minimal blurring. This eliminates some strange effects where pixels may appear to be different sizes on some displays. This filter is optional, but it's recommended to leave it on for the best appearance.
Created a brand new options menu that is compatible with the in-game mouse and features more settings. Changes/additions include:
Divided settings into multiple pages.
Settings now have tooltips with more info on what each setting is for.
Added a rumble toggle.
Added a reduce flashing toggle (Currently doesn't do much as Baldi's Basics Plus doesn't have much flashing at the moment).
Added a vsync toggle.
Added a pixel filtering toggle for the improved GUI rendering.
Separate sensitivity settings for mouse and controller sensitivity, and for the in-game cursor and turning speeds.
Added buttons to delete a file (The erase toggle on the name select screen has been removed), to reset endless mode high scores, and to reset field trip high scores.
Replaced all sliders with segmented adjustment bar thingies (I don't know what they're called).
Improved the design of the Rewired control mapper.
I plan on eventually adding a fully custom control mapper that uses the in-game cursor and allows for control maps to be saved per-file, rather than being shared across all files. As it turns out though, creating a custom control mapper is complicated! For now, the one included with Rewired (Which is what Baldi's Basics uses to handle input) should be good enough.
Added a button to access the Steam Input control mapper if Steam Input is active.
Cleaned up the pause menu and added a quit confirmation screen.
Updated most menu text to use text from the localization file.
All tiles (The wall, floor, and ceiling cubes that levels are made out of) now use a single mesh, instead of a bunch of quads as before. These meshes are textured with texture atlases generated at runtime. The reduced mesh count, along with some other adjustments, has drastically reduced the number of draw calls per-frame (I'm talking dropping from a few thousand to a few hundred!) and improved performance quite a bit.
This new tile setup required a new system for windows. Windows are now generated similarly to doors, with their own quad and game object, rather than simply being a transparent poster for a wall.
Sprite billboarding is now handled via shaders instead of a script (With a few exceptions). This has also improved performance a little bit.
Moved credits to the about screen. The game now closes after clicking the exit button without any further player input.
Volume settings now use Unity's Audio Mixer system to control the volume of different types of sound effects.
Some sounds now have custom volume multipliers. This is used to make several sounds that were too loud before quieter.
Improved randomness of color glitching shader effects (Currently only used in the current end sequence, but will see more use later).
Adjusted TextMeshPro assets so that the fonts are spaced better.
Gameplay HUD elements will now scale such that they remain pixel-perfect no matter the resolution.
Gave the stamina meter (Staminometer) a proper design.
Created a custom dithering effect for shaders that isn't bad like Unity's built in one is. This new method seems to be compatible on everything, including Mac OS (Which the old one didn't play nice with), so now the same shader is used on all platforms and fog dithering is available on Mac OS.
NPCs now exist in their own layer in order to improve collision. Mainly, NPCs should no longer get in the way of the player trying to click on objects.
Posters with text now generate text at runtime, rather than having text baked into the texture. Poster text is now controlled by the currently loaded localization file. This change was made to make localizing the game into other languages easier.
As a result of this change, some posters have had their designs tweaked.
Game save data and most options are now stored in separate files. This is in order to prepare for Steam Cloud save support, which will be implemented at a later date. Some settings, such as resolution settings, will not be synced on the cloud since they will probably not be the same across different devices.
Removed Baldi's Basics Classic Remastered exclusive code that was left in the previous version.
Optimized the class NPCs use to "see" the player so that it no longer generates garbage.
Made it possible for sounds to contain multiple subtitles. This is used to prevent longer audio clips from having too much text for one subtitle being displayed at once.
Reworked how NPCs detect being looked at by the player. It is now much more consistent than it used to be.
Reworked Arts and Crafter's behavior to be more manageable, and more similar to how it was in Baldi's Basics Classic. He will now run away if he sees the player for a short amount of time, whether the player is looking at him or not.
What counts as looking at Arts and Crafters is now a bit more generous.
Arts and Crafters is now hidden when he spawns so that he cannot be found in strange locations before being triggered to appear somewhere.
WD-NoSquee has always worked such that, once used on a door, that door can be opened four times before the effect wears off, whether it is opened by the player or by an NPC. Now, NoSquee is only used up when the player opens the door, not when NPCs open it.
Textures and sprites now have their contrast slightly increased as lights get darker.
Mrs. Pomp now pauses the environment and NPCs when grabbing the player to tell them about her class.
Mrs. Pomp now drags the player further into her class room before letting go and locking the doors.
Reduced the possible time range for the Gravity Chaos event.
Implemented a new detour system for NPCs when they target the player. During Gravity Chaos, this system is used to direct most NPCs to gravity flippers if their current orientation is opposite the player's. This prevents NPCs from annoyingly trying, but failing, to collide with the player over and over again during the event.
Reworked The Test's speed increase method. It now will increase to a new pre-determined value each time the player looks away from The Test while in his sight. After a certain number of times doing this, The Test will instantly travel to the player's position when looked away from. Be careful!
Level loading will now only begin when the elevator screen door is closed. With this change, you can no longer see the level begin to load when starting a new game or beating/losing a level.
The name entry screen has been moved to the same scene as the main menu, allowing for a smoother transition between the two. <*> First Prize now has an improved method of grabbing the player. Should be a bit smoother than before! <*> Removed the jump button. Jump rope now uses the action button for jumping. <*> Tweaks to the default control map. <*> Updated info on the about page. <*> Principal of the Thing will now only spawn in his office.
Bug Fixes
Fixed a minor error in Playtime's animation.
Set sprite shaders to the Unlit Sprite material setting. This has fixed some odd issues with certain sprites.
Fixed the game loading incorrect window and resolution settings on startup.
Fixed issues with the skybox rendering weird from certain angles.
Fixed skyboxes being blurry on Linux.
Fog now properly renders on the skybox.
Fixed a bug that caused deleted files to not actually be deleted (They would only be removed from the in-game list of names, but the actual file would remain).
Fixed a lighting calculation issue.
Fixed flipping upside down not also flipping audio and subtitles.
Fixed an issue where the dangerous teleporter and whirlpools could spawn the player in game breaking positions.
Fixed an issue where Arts and Crafters would try to run from the player while chasing them or trying to teleport them.
Fixed an issue where Arts and Crafters could collide with the player during Gravity Chaos while oriented opposite the player.
Fixed a bug that would softlock the game if Mrs. Pomp caught the player to tell them to be at her class while in her class room. <*> Fixed whirlpool triggers being able to interfere with clicking on objects. <*> Fixed grappling hook being able to pass through roto halls. <*> Made the frequency at which the funny sound in Johnny's store plays framerate independent. <*> Fixed NPCs, whirlpools, and gravity flippers being able to spawn in off-limits areas like elevators <*> Fixed for being visible on the map screen (Was this a thing in version 0.3.4? I'm thinking I may have accidentally re-introduced it and then fixed it again since that update lol). <*> Fixed elevator screen sometimes being visible for a frame at its normal scale before playing the zoom animation. <*> Fixed a bug that would cause the level generator to crash if it couldn't find a valid place to put an elevator on the side of the level it initially chose to put it on. Now, if no valid location is found, it will try other sides until a valid location is found.
0.3.5 releases later this week! + 25% off for Going Rogue Sale!
Yes, I'm still alive.
First off, 0.3.5 will be released this week! It's just about ready to go, I just want to spend some time playtesting it before shipping it. Second off, I'm sorry about the lack of communication over the past year. I'll be talking about what's been going on more in depth in the near future, and returning to posting more regular status updates, but for now just know that Baldi's Basics Classic Remastered's release is just around the corner and that regular Baldi's Basics Plus' development is getting back on track!
Thirdly, Baldi's Basics Plus is 25% off for Steam's Going Rogue Sale! If you've been thinking about picking up the game now's a great time!
This update is pretty major for a minor one. I've been working on Classic Remastered over the past year, but a lot of that time was spent working on fixes and improvements to the Baldi's Basics Plus framework, benefitting both projects. Lots of polish, lots of optimizations, lots of internal changes that will make development smoother going forward.
Here is the changelog for most of the changes found in 0.3.5:
Additions
Added support for the Steamworks API. When played on Steam, the following features are enabled:
Full Steam Input support.
The game automatically pauses when the Steam overlay is opened.
An achievement system has been implemented, but the game will not receive any achievements until the 1.0 update.
A new file button appears if the game is being played on Steam Deck or in Big Picture mode. This will open an on-screen keyboard allowing you to enter your name with a controller.
Clicking on the seed button to enable a custom seed will open an on-screen keyboard on Steam Deck or while the game is running in Steam Big Picture mode.
Rumble support. If enabled, the controller will rumble when Baldi is nearby and when being caught by Baldi. If the controller being used has two individually controlled rumble motors, the side of the controller that corresponds with the direction Baldi is in relative to the player will rumble more than the other.
Added a visual effect when getting caught by Baldi, similar to the one in Baldi's Basics Classic.
Added a slam effect for when 1st Prize is stopped while traveling at high speeds. This sound will get Baldi's attention.
Once all notebooks have been collected, Math Machines re-light for bonus questions! Answering bonus questions will reward the player with YTPs.
Added screen transition effects. When moving between menus, a dithering transition is used.
Adjustments
All menu screens now use the in-game cursor. The OS cursor of your computer is no longer used for anything in the game, except for the control mapper.
All menu screens (And other UI based screens, such as the field trips) now render to a 480x360 render texture, which is then displayed on screen. This ensures all GUI elements remain pixel perfect.
This screen uses a shader that can filter the pixels so that they appear square, even on non-integer scaled resolutions, with minimal blurring. This eliminates some strange effects where pixels may appear to be different sizes on some displays. This filter is optional, but it's recommended to leave it on for the best appearance.
Created a brand new options menu that is compatible with the in-game mouse and features more settings. Changes/additions include:
Divided settings into multiple pages.
Settings now have tooltips with more info on what each setting is for.
Added a rumble toggle.
Added a reduce flashing toggle (Currently doesn't do much as Baldi's Basics Plus doesn't have much flashing at the moment).
Added a vsync toggle.
Added a pixel filtering toggle for the improved GUI rendering.
Separate sensitivity settings for mouse and controller sensitivity, and for the in-game cursor and turning speeds.
Added buttons to delete a file (The erase toggle on the name select screen has been removed), to reset endless mode high scores, and to reset field trip high scores.
Replaced all sliders with segmented adjustment bar thingies (I don't know what they're called).
Improved the design of the Rewired control mapper.
I plan on eventually adding a fully custom control mapper that uses the in-game cursor and allows for control maps to be saved per-file, rather than being shared across all files. As it turns out though, creating a custom control mapper is complicated! For now, the one included with Rewired (Which is what Baldi's Basics uses to handle input) should be good enough.
Added a button to access the Steam Input control mapper if Steam Input is active.
Cleaned up the pause menu and added a quit confirmation screen.
Updated most menu text to use text from the localization file.
All tiles (The wall, floor, and ceiling cubes that levels are made out of) now use a single mesh, instead of a bunch of quads as before. These meshes are textured with texture atlases generated at runtime. The reduced mesh count, along with some other adjustments, has drastically reduced the number of draw calls per-frame (I'm talking dropping from a few thousand to a few hundred!) and improved performance quite a bit.
This new tile setup required a new system for windows. Windows are now generated similarly to doors, with their own quad and game object, rather than simply being a transparent poster for a wall.
Sprite billboarding is now handled via shaders instead of a script (With a few exceptions). This has also improved performance a little bit.
Moved credits to the about screen. The game now closes after clicking the exit button without any further player input.
Volume settings now use Unity's Audio Mixer system to control the volume of different types of sound effects.
Some sounds now have custom volume multipliers. This is used to make several sounds that were too loud before quieter.
Improved randomness of color glitching shader effects (Currently only used in the current end sequence, but will see more use later).
Adjusted TextMeshPro assets so that the fonts are spaced better.
Gameplay HUD elements will now scale such that they remain pixel-perfect no matter the resolution.
Gave the stamina meter (Staminometer) a proper design.
Created a custom dithering effect for shaders that isn't bad like Unity's built in one is. This new method seems to be compatible on everything, including Mac OS (Which the old one didn't play nice with), so now the same shader is used on all platforms and fog dithering is available on Mac OS.
NPCs now exist in their own layer in order to improve collision. Mainly, NPCs should no longer get in the way of the player trying to click on objects.
Posters with text now generate text at runtime, rather than having text baked into the texture. Poster text is now controlled by the currently loaded localization file. This change was made to make localizing the game into other languages easier.
As a result of this change, some posters have had their designs tweaked.
Game save data and most options are now stored in separate files. This is in order to prepare for Steam Cloud save support, which will be implemented at a later date. Some settings, such as resolution settings, will not be synced on the cloud since they will probably not be the same across different devices.
Removed Baldi's Basics Classic Remastered exclusive code that was left in the previous version.
Optimized the class NPCs use to "see" the player so that it no longer generates garbage.
Made it possible for sounds to contain multiple subtitles. This is used to prevent longer audio clips from having too much text for one subtitle being displayed at once.
Reworked how NPCs detect being looked at by the player. It is now much more consistent than it used to be.
Reworked Arts and Crafter's behavior to be more manageable, and more similar to how it was in Baldi's Basics Classic. He will now run away if he sees the player for a short amount of time, whether the player is looking at him or not.
What counts as looking at Arts and Crafters is now a bit more generous.
Arts and Crafters is now hidden when he spawns so that he cannot be found in strange locations before being triggered to appear somewhere.
WD-NoSquee has always worked such that, once used on a door, that door can be opened four times before the effect wears off, whether it is opened by the player or by an NPC. Now, NoSquee is only used up when the player opens the door, not when NPCs open it.
Textures and sprites now have their contrast slightly increased as lights get darker.
Mrs. Pomp now pauses the environment and NPCs when grabbing the player to tell them about her class.
Mrs. Pomp now drags the player further into her class room before letting go and locking the doors.
Reduced the possible time range for the Gravity Chaos event.
Implemented a new detour system for NPCs when they target the player. During Gravity Chaos, this system is used to direct most NPCs to gravity flippers if their current orientation is opposite the player's. This prevents NPCs from annoyingly trying, but failing, to collide with the player over and over again during the event.
Reworked The Test's speed increase method. It now will increase to a new pre-determined value each time the player looks away from The Test while in his sight. After a certain number of times doing this, The Test will instantly travel to the player's position when looked away from. Be careful!
Level loading will now only begin when the elevator screen door is closed. With this change, you can no longer see the level begin to load when starting a new game or beating/losing a level.
The name entry screen has been moved to the same scene as the main menu, allowing for a smoother transition between the two.
Bug Fixes
Fixed a minor error in Playtime's animation.
Set sprite shaders to the Unlit Sprite material setting. This has fixed some odd issues with certain sprites.
Fixed the game loading incorrect window and resolution settings on startup.
Fixed issues with the skybox rendering weird from certain angles.
Fixed skyboxes being blurry on Linux.
Fog now properly renders on the skybox.
Fixed a bug that caused deleted files to not actually be deleted (They would only be removed from the in-game list of names, but the actual file would remain).
Fixed a lighting calculation issue.
Fixed flipping upside down not also flipping audio and subtitles.
Fixed an issue where the dangerous teleporter and whirlpools could spawn the player in game breaking positions.
Fixed an issue where Arts and Crafters would try to run from the player while chasing them or trying to teleport them.
Fixed an issue where Arts and Crafters could collide with the player during Gravity Chaos while oriented opposite the player.
Fixed a bug that would softlock the game if Mrs. Pomp caught the player to tell them to be at her class while in her class room.
Some more changes may be made between now and release, and if so I'll highlight them in a new post when the update releases.
Thank you all for your patience as I figure all this game dev stuff out!
0.3.4 is out now! Here's the changelog!
Baldi's Basics Plus version 0.3.4 has just released! This update was mostly focused on fixing bugs introduced in 0.3.3, but it also contains a few other changes as well. Here's the full changelog:
Adjustments
Made changes to Mrs. Pomp's behavior
After telling the player to come to her class, she will now run back to her class room instead of walking back.
The way she drags the player to her class has been overhauled. Before this worked by freezing the player's movement and pulling them along a path towards the targeted class room, and Mrs. Pomp would follow the player. Now, the player is pulled towards Mrs. Pomp as she runs to her class room. The player's movement during this is slowed, but not frozen. If the player manages to be separated from Mrs. Pomp, they will gain full movement again and stop being pulled towards her, until she realizes she lost the player, at which point she will return to grab the player again. This continues until she gets the player in her class room.
This change was actually introduced in 0.3.3 - Instead of freezing the player in place when she pulls the player into her class room, she now shuts and locks all the doors. With this change you can now move around the room as she teaches, and even escape with keys.
Once Mrs. Pomp finishes teaching, she will now reset after a few minutes, at which point she can invite the player to another class.
Mrs. Pomp can now open any locked doors (Not swinging doors) that she comes into contact with.
Balloons now spawn in random positions in their designated rooms, instead of in the center.
Bug Fixes
Fixed the missing closet door in the grapple challenge.
Fixed Gotta Sweep not spawning in the closet in the grapple challenge.
Fixed endless medium high scores being saved to the endless random leaderboards.
Fixed the custom seed field not unlocking when beating the game.
Fixed the missing tape player in the endless medium map.
Fixed the incorrect subtitle colors for the many of the voice lines for Baldi and Principal.
Fixed missing subtitles for a couple of the Principal's lines.
Fixed being able to get scolded for breaking rules in the principal's office in the stealthy challenge.
Fixed the alarm clock sprite not being affected by fog.
Fixed the balloons being stuck in one corner of the room in the Hide & Seek ending.
Fixed the detention time text being misaligned with the detention description text.
Fixed a bug that caused the elevator doors in the grapple challenge to close even before the player left the elevator.
0.3.3 Releases June 25! Important note about your saves!
Baldi's Basics Plus version 0.3.3 is finally ready, and will release this Friday, June 25. As I mentioned in the previous devlog discussing the game's development roadmap, this update is mostly revamped internal stuff, so while there isn't much in the way of new content, this update is very important in fixing up some bugs and making sure development moving forward goes smoothly. You can read that devlog here if you haven't: https://store.steampowered.com/news/app/1275890/view/3053982465480232793 The normal development cycle will begin as soon as the game design document is finished, and I'll be sure to let everyone know when that happens!
One of the most important pieces of information about this update is that some changes to saving were made. Due to these changes, any saved games of Hide-and-Seek will be erased, so be sure to play any games you have in progress before updating! High scores will also be reset, so if you'd like to keep those around to share your best pre-0.3.3 scores, you'll want to take a screenshot of them! Save files, settings, and the seed unlock for Hide-and-Seek will not be lost or reset upon updating.
Below I've included a changelog for the update. Due to how long this update has been in the works, I'll probably miss a few things, but this should cover most notable changes.
Adjustments and Additions:
Updated Unity to 2020 LTS. This may bring some improvements along with it, such as an improved Time.deltaTime which may make the game run a bit more smoothly.
I have implemented a new system for loading pre-made levels. This system works by loading in prefabs at runtime similarly to the random level generator, but unlike the level generator, the levels are loaded from data files storing which elements go where, instead of created by making random decisions based on the seed. All pre-made maps have been converted to this new format, which fixes a slew of issues they previously had due to the old, poor loading system. The levels using the new system are
Endless medium
Speedy Challenge
Stealthy Challenge
Grapple Challenge
This new system also makes it easier for me to make levels by hand, something I'll start doing for many future challenge maps.
All levels now use one single Unity scene. When new levels are loaded, this scene is loaded and the desired level is then generated/loaded. This, among other changes, has drastically reduced the size of the game.
Save system now uses encrypted Json files instead of BinaryFormatter for security purposes. The file extensions for save files have also been changed.
As part of this update, old saves will be converted to the new format. The old format save files will be deleted as part of this process, so if you'd like to keep your old format save files for any reason, you should back them up.
Reworked Arts and Crafters teleportation again, hopefully for the last time! It now teleports both the player and Baldi again, but now Baldi will always be a set distance away from the player, with the player always spawning near an elevator. The player should always be placed between Baldi and the elevator. The way teleportation locations are now selected should prevent both entities from spawning somewhere where they would be trapped.
All items now have large and small sprites. Small sprites (32x32) are used in UI elements, and large sprites (64x64) are used for the pickup sprites.
Added ambient noises.
Adjusted pause screen button positions so that quit isn't so easy to accidentally click on.
Added the boots and apple items, and the fog event, to the possible things which can appear in randomly generated endless mode maps.
Made some improvements to subtitles
Text will now adjust in size in order to fit lengthier subtitles inside the box.
Added subtitles to both field trips and Johnny's store.
The maze in the farm field trip is now shuffled after every five rounds.
Added a buffer to Math Machines that should prevent balloons from getting too close to them. This should help prevent players from accidentally clicking on balloons when trying to submit an answer.
NPCs can now travel through portal posters.
Notebook colors are now randomized.
Many Baldi and Principal of the Thing lines have been re-recorded so that they all sound consistent.
Bug Fixes
With the new level loading system in placed, many bugs that existed in premade maps were fixed, including
Math Machines using outdated textures and sounds
Elevators using outdated textures and sounds
Snack and soda machines not getting the "Out of goodness" sign when used up
Fixed a few bugs with subtitles
Subtitles no longer appear when pausing the game.
Subtitles will now be visible for sounds that started playing before subtitles were turned on.
I probably missed a few things, but that about covers the most important stuff. Again, remember to play out any saved games of Hide & Seek before updating!
Finally, I just wanted to mention that with 0.3.3 complete, I'm going to get back to work on finishing Baldi's Basics Classic Remastered. Look forward to news regarding that game's release date soon!
Development Update - Roadmap for the rest of development!
Hey everyone, Micah here! I'm posting another update to let you all know what's going on with development, as well as what to expect going forward.
First off, at the end of March I uploaded a video for the original game's three-year anniversary. In it I discussed how development has been going and why the next update has taken as long as it has, among other things. You can check it out below if you haven't seen it yet:
[previewyoutube="GUNA7YiOXWc;full"]
To summarize, I discussed
My move in January, which kept me pretty busy.
I've been working on a level editing and loading system for premade maps. This will replace the old awful method used to save and load premade levels as found in the challenge maps and endless mode in the current version.
Version 0.3.3 will release soon with the premade maps completely remade in this new system in order to fix all the bugs caused by the old system, as well as a handful of other tweaks and improvements.
Baldi's Basics Classic Remastered, which is a remake of Classic built in the Plus framework, will also be released soon, and is being used as a development testing ground for the new premade maps system, mobile support, and VR support.
Since then I've been working on finishing Baldi's Basics Plus version 0.3.3 and Baldi's Basics Classic Remastered, and wow, I can't believe it's already almost been two months since the video released! Time is flying by. I was hoping to have both of those things released by now, but as I mentioned before I no longer want to rush things out and sacrifice quality. I am sorry about the wait though. Baldi's Basics Plus 0.3.3 will likely release first, and won't take much longer. Classic Remastered will follow shortly after that, so keep your eyes open for those announcements!
With that update out of the way, I'd like to talk about the rest of the game's development. I talked about this nearly a year ago shortly after the launch of Baldi's Basics Plus, and some of my plans have since changed as I've learned a lot from this first year of post-release development. I want you all to know that this current update hiatus was not at all what I wanted or planned for the first year of the early access, and I'm sorry for how long you've had to wait for updates. I want to make sure this doesn't happen again, so I'm taking the time to properly plan out the rest of development before I get started on game updates again. I know this may seem counterintuitive, but once I have the game design document finished and an update schedule made (A schedule of features and their respective updates to be added in, not deadlines) I feel confident that I'll be able to release updates at a consistent pace for the rest of development.
To give an idea of what you can expect the rest of development to be like, I've put together a roadmap which summarizes my plans:
Currently on the timeline, I'm right before the release of 0.3.3. Once that and Classic Remastered are released, I'll be finishing up the game design document and update schedule. Once that's finished, I will begin actively developing the game again and end the current update hiatus with the release of 0.4. At this point major updates should release consistently until the final early access major update. Once this releases, there will be a second update hiatus as I work on the release version of the game. The reason for the second update hiatus will not be due to poor planning like this first one, but rather due to the fact that the final update will be significantly larger than any of the previous updates, and so it will take a lot longer to finish. This is because there's a lot of content that I plan on saving for the release version of the game, rather than sprinkling in via the early access updates.
Along with this roadmap, I figured it would also be a good idea to mention what kind of content you can expect to see in the early access updates moving forward, and what you can expect to be saved for the release version.
Early access updates will largely be focused on self-contained content such as
New characters
New items
New level elements
New activities
New events
New field trips
New decorative elements
Things saved for the final release will largely be things that aren't part of the core gameplay or that rely on other aspects of the game being finished, such as:
New challenge maps
Better menus
Horror and story elements
Achievements
Polish and attention to detail
And stuff I don't want to spoil!
The reason for holding off on certain elements largely has to do with the fact that if I were to do a lot of work on them now, I'd have to re-do them later once more content is in the game and more stuff finalized. If I were to make more challenge maps during development for example, I'd probably eventually end up completely redoing them as I add more level elements to the game, which would effectively make the time spent developing the older versions a waste. The menus are another example. I could spend time now to make them look a lot nicer than they do, but then I'd just end up completely redoing them near the end of development which would make working on them now a waste of time and resources. I say this to remind everyone that the current lack of polish, horror elements, personality, and many other elements in the game largely has to do with the way development works, not that I've forgotten about those things or don't care about them!
And I think that's everything I wanted to say today! As always, thanks for your patience and the support while I get this crazy game sorted out, it means a lot. Know that I'm just as eager to get back to releasing updates as you all are to play them, so I'll try my best to finish the game design document soon and get back to active development!