Posted December 21, 2024 by JohnsterSpaceGames
#progress update
Hello, and welcome to the 16th progress update of Baldi's Fun New School Ultimate! In this update, I'll be sharing progress on some planned or under development features for the upcoming Beta 1 update of BFNSU. I hope you'll enjoy hearing what I have to say, and now it's progress update time!
So, one of the additions to the overhauled Floor Builder for Beta 1 that I have been working on is an audio catalog where you'll be able to select audio clips that you want to use for your custom floor's school music, escape music, sounds for windows & doors, etc.
You can also preview what each audio file sounds like in the entries in the sound list by pressing the play button in an entry (or stop button to stop playing the previewed audio), and any audio files containing OST, Loop, or Music in their name automatically loop while being played.
Not only that, but you'll also be able to add your own audio clips in .mp3 or .ogg format via a file selector that can be accessed by pressing the button in the catalog that shows a blue arrow on top of a file.
As for custom audio file recommendations, I would suggest using audio files 2 MB or smaller in size, and 1-2 minutes or less in length. Also, depending on your device's specs, you'll be able to have between 30-60 custom audio files loaded at once on PC and 10-20 on mobile, although these amounts could end up changing in later versions.
Being able to use custom audio files for floors will be great, but you know what might be just as nice, if not even better? Being able to use custom scripts! Which leads into...
This is something I've teased previously as an experimental feature, and now it's complete enough for me to share more details about it!
This experimental feature, if it works the way it is intended to, should allow you to select up to 10 unique custom scripts per floor via a script selection window, and when playing a custom floor, the selected scripts would be loaded and executed once you begin playing the floor.
Similar to the custom asset importing support planned to be included in other catalogs (such as the texture catalog) in the Floor Builder, from the script selection window, you'll be able to choose .cs files (and .dll files as well for scripts that use DLLs not included with BFNSU, such as custom made ones) on your device to add to the game's custom assets folder, and after doing that, they should appear in the script catalog as selectable scripts to put into one of your custom floor's 10 available script slots.
Also, since custom scripts take up less data than custom textures or audio, you'll be able to load between 60-115 custom script files on PC and 25-50 on mobile at once depending on your device's specs.
Another part of this feature that I've also been working on is an in-game script creator, which would let you initially create a custom script from within the Floor Builder, save it, and then open it up in Visual Studio (VS) to finish working on the script such as adding advanced code and functions to it if a copy of the IDE between the 2015 and 2022 versions exists on your device via a blue VS style button next to the script creator window, which would only appear on the Windows version of the game.
If it works as intended, it would make creating custom scripts easier for beginners as there would be a way within the game to get started with making one, and for advanced players, the ability to open up VS automatically when creating new scripts will be another nice feature as well.
Now, let's change things up a bit and move from talking about the Floor Builder's improvements to something else that's getting improved, chunks!
One of the most important things I've discovered in my efforts throughout Beta 1's development to improve performance is reducing the number of batches created by objects. Essentially, lower batch numbers for objects in floors is equivalent to better performance.
And what I found was that out of all of the objects, chunks took up the majority of the batch numbers (up to 6 batches per chunk with the old chunk system), since floors are primarily composed of them, and they make up the largest amount of objects in a floor.
The way my old chunk system worked is that each chunk was made of up to 6 separate objects. 1 for the floor, up to 4 for the walls, with each wall being a separate object, and 1 for the ceiling, and each of those objects making up a chunk using it's own separate renderer and material for each side of the chunk.
This worked fine for smaller custom floors, though I discovered in testing and also from taking a look again at Alpha 6 recently that when loading large levels with thousands of chunks, batch numbers would be high (around 6K batches for an 1000 chunk floor), which led to noticeably lower performance in the Floor Builder and when playing custom floors, especially on less powerful devices.
Thankfully, I was able to find a way recently to significantly reduce the batch numbers of large chunk amounts in floors from around 6K as stated before to now only around 1.1K batches for the same 1000 chunk floor.
How? Well, with my new chunk system, each chunk is made up of only a single object now with a single renderer and material. That means, each chunk object only takes up 1 batch now, instead of up to 6 batches.
Also, chunks in Beta 1 are planned to use something called a texture atlas, which is essentially a single texture that is created from selected floor, wall (up to 2 separate ones), and ceiling textures, and is then applied to the chunk's single material to achieve the same effect the multi-material chunks in the old system had with the separate floor, wall, and ceiling textures. It is planned to work like this.
This should also mean that when there are a lot of chunks placed in the Floor Builder and when playing custom floors, performance should be better, and in my testing I found I was getting a 2.5x performance increase compared to the old chunk system, as you can see in the comparison below.
It's time to briefly talk about something else as well, characters!
One other thing that I've added to the Floor Builder is that when a character is placed, after a few seconds, if the selected mod pack skin for that character was found, their appearance will change to a texture from the mod pack to show that it has been applied to that character.
Another feature added to the Floor Builder relating to characters is that when trying to place a character outside of where a chunk is located, the character will be removed automatically, including when chunks that characters have been placed on are deleted, which should make sure characters always start on a chunk in a custom floor, and never outside of one.
These previews will make it easy to see which characters have what skins applied (like a Foxo skin for Baldi as an example), and you might even recognize some in the example below showing the feature in action.
With the default mod packs that are planned to be included with BFNSU, I also plan on including a text file with some information about getting started with them, so here's a look at a WIP version of that text document as well!
Before ending this progress update off, there's one more thing I would like to mention...
With the Beta 1 preview version for development testers nearing completion, and I'm expecting to release it sometime within the next few months, followed by the final Beta 1 version 1-2 months after that, I've decided to open up the development tester signup forms once again, this time with a total of 50 keys that can claimed (25 below, and 25 at the end of the signup form).
Each key grants access to the BFNS Developer Tester Builds page, which you'll be able to access here after claiming a key. I also plan on using the page in the future to release development tester exclusive versions of any BFNS projects I decide to create after BFNSU has been completed.
You can fill out the signup form at the link below, but please remember these keys are on a first come first serve basis, and once all 50 are claimed, the form will be closed and the key links on this page will be removed (which has already happened). So if you want to claim a development tester spot, you should do it quickly!
Development Tester Signup Form (All keys claimed, and the form has been closed and is not accepting any more responses)
Key 1 / Key 2 / Key 3 / Key 4 / Key 5 / Key 6 / Key 7 / Key 8 / Key 9 / Key 10 / Key 11 / Key 12 / Key 13 / Key 14 / Key 15 / Key 16 / Key 17 / Key 18 / Key 19 / Key 20 / Key 21 / Key 22 / Key 23 / Key 24 / Key 25 (All 50 keys have already been claimed! Wow, that was fast!)
With all of that out of the way, I'm going to take the next 2 weeks off to enjoy Christmas and New Years which are coming up very soon, and also so I don't get burned out with working on the project continuously, and by early January of next year, I should be back to working on Baldi's Fun New School Ultimate.
Have a Merry Christmas and a Happy New Year, and I hope you are looking forward to what's coming in 2025 for the Baldi's Fun New School series! Which might even include a potential sequel to something...
Well, I hope you enjoyed this progress update, and thanks to everyone who has contributed, given suggestions, and has helped me out with the development of Baldi's Fun New School Ultimate. See you in the next one, which I'll be posting on May 24th, 2025 at approximately 2:15 PM EST!