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!
[ 2023-04-07 21:06:52 CET ] [ Original post ]