K-ON! Clubroom – Parts 14, 15 & 16


It’s been about a month since the last update. Lots of things were going on, such as PAX Australia (!), so I took a bit of a break from writing here.

Without further ado, let’s continue looking at the old K-ON! builds (and resist the urge to skip ahead to the VR builds I’ve got).

K-ON! - 33 - Folders

In this update, I added a whole lot of folders to the bookshelf. They weren’t too hard to make, and I think the worn edges look quite good.

Something important to remember when modelling scenes like this: add a bit of disorder. All the folders are shuffled around to make the shelf look more realistic.

K-ON! - 34 - New Lensflare

In the next build, I couldn’t help but mess around with the lens flare again, even though I knew it wouldn’t make it into the VR version.

But the most important change in this build is the new music feature! ♪♫

There’s two types of music in the game: background music and cassette music. The background music plays automatically when the game starts and at equal volume throughout the room. The cassette music must be switched on, and uses 3D positioning to sound like it’s coming from a cassette player in the room.

Players must put their own music in a folder next to the executable. They can add as many tracks as they like, and the game will loop through them all.

K-ON! - 35 - Loading Screen

Loading external music files was necessary, since I can’t use copyrighted music in the game without a license, but it introduced some nasty loading times.

There was a bug in Unity at the time (it’s been fixed) that prevented me from being able to read the length of a streamed music file, and I need the length so I know when to play the next track. The entire music folder had to be loaded into memory at runtime.

To cover the load, I built a title screen based on the title cards from the anime. This one was quite a bit of work because I had to make an accurate 3D model of a cassette tape (probably the most complicated model in the whole game), but I think the end result was worth it.


Let’s meet again soon, on the comet 67P/Churyumov–Gerasimenko.