Day 0: I started at 7 am by importing Snidr's ColMesh system which we would use for the collisions/physics. I've never used it before so I didn't touch it much. Instead, I got right to implementing a deferred renderer into the demo. Since our target platform is exclusively Windows, I used HLSL 11 for all shaders. That way I can take advantage of multiple surface outputs (MRTs) and had consistent code for all shaders. It didn't take me long to set up (~30 minutes) and then I got right to implementing the SSAO. I was able to get a quick and dirty implementation up within 1.5 hours and it looked something like this. Bart made a bunch of building piece models while I focused on improving the graphics. 5 hours in, I had hard shadows, rough AO, and Bart's models, which looked like this:
For the next 3.5 hours, I worked on an AO/shadow softening filter. Ended up with this:
I tried adding vertex shader point lighting but wasn't happy with the implementation. Instead, I went for post-process point lighting that takes advantage of the deferred renderer.
Wrapped up by midnight.
Day 1:
When I woke up, Snidr had swooped in and made a mouse model, textured it, and animated it. Then he set up the mouse movement and trailing system. So I worked on translating his animation system (SMF) into my deferred renderer.
By 11:30, we had an animated mouse character and trail of mice behind him. I added shadow support to animated models and improved my soften filter. It looked something like at this point, it looked like this:
Unlimited mice! Bart made the tunnels, ramps, and ladders. Snidr made Owl and Pug character models, while I adjust lighting and fixed bugs. I started work on a basic enemy movement and sight system. I had no idea how Snidr's ColMesh system worked at this point, so it had no collisions. The owls had a wide view angle and a sight range value so you could sneak behind them, but if you go too far to the side, they'd see you. I made them jump around when they saw you so that I can see the exact moment easier.
Then I added the pug, that used the same system, but with a different view angle, sight radius, attention span, and speed. At this point, there was an artifact with the SSAO shader that caused flat surfaces to be shaded and edges to be lighter (it can be seen in the images above). I knew it had to do with correcting it for the FOV, but I could for the life of me figure out the formula. I think it's 1/darctan(fov_y/2), but couldn't make it work (hit me up if you know). So I just plugged in a magic number (9/16 or 0.5625) which mostly fixed it and I'm still using it. Finally, I set up a basic main menu and called it a night at 1:40.
Day 2: Snidr finished the Pug/owl guard models and added the pug king. I experimented with different z-clipping techniques but didn't end up using them. Added some graphics settings for lower-end PCs. Snidr added a pushable in-game button that would be used for activating doors and traps. Bart added walls and tunnel blocks as shifted over to using a grid system for levels. Snidr made a level generation system that allowed us to place building pieces with the room editor. He used 3 layers + a floor layer which allowed us to build multi-floor levels. At this point, we started debating whether or not we could finish with our original idea. We still needed to implement the ending, add an item collection system, add an objective system to tell you what to do, add some interactive level objects and make all the levels. On top of that Snidr was unavailable for the last day, but we decided to push on anyway and see how far we could take it. I implemented collisions for the enemies and worked on their behavior. Then I implemented trapdoors, pick-up items, and an exit/entrance system. Also made a basic lose screen and implemented Spud's music before calling it a night at about 1:20 AM.
Day 3: Snidr improved the level editor, adding more block types, while Bart made models for ladders, barrels, spikes, and more. Then Snidr made functional exit/entrance ladders for passing through levels. I added a sort of fog fade effect for the blocks extending downward. Snidr made a death screen with 45-degree pixel art and text, while I worked on an enemy path-follow system. It stumped me for quite a while, but turns out, I forgot one simple line. Lack of sleep probably didn't help. Spud made a bunch of sound effects for enemies and game objects, which I worked on implementing. Snidr added dancing owls and pugs for the party room. After fixing some things, Snidr finished up.
I fixed a bunch of issues with the enemy AI, added more item objects. For 4 hours, Spud helped me make levels, with only about and a half left. This part was kind of a blur. It was 5:30 am and I had been working on this since 9 am. I focused on fixing all the bugs I could and adding the final king fight mechanics. I pushed my last change at 6:55, 5 minutes before the deadline where Bart compiled it and uploaded it.
Honestly, I was kind of disappointed. I worked almost non-stop for around 22 hours, but the game still felt quite unfinished. I wasn't able to add a dialogue system that would tell you how to play or what to do and there were many assets we weren't able to use (hand-drawn pug picture for instance). The project time logged over 3 days, 3 hours:
Went to bed at 7:30.
Day 4, Post-jam: Woke up at 11 and played the game again. I discovered that in my rush of last-minute testing, I had moved the party room behind the final level (I did this to skip playing through the whole thing), effectively removing the "party" part from the game. I was pretty upset. I didn't want all that hard work to go to waste, so I decided to make a post-jam version to wrap it all up. I'll spare you the details, but I ended up pulling another all-nighter to wrap it up in one extra day, post-jam. I've since updated some small things and fixed some small issues, but haven't changed anything major yet. All in all, I probably logged about 90 hours of work in 5 and half days.
Here's a quick montage of successes and failures, during the development: