Senior Production Week 6 - Polishing the gift shop and starting a new room.
In my last blog post, for senior production, I talked about implementing the gift shop puzzle. Man that was a pain in the ass. The programming was easy, getting the physics to behave was the hard part. Then to top it off, after I got it all working, the artists merged in their art branch, so now I had to implement the final art into the scene, which broke all my physics. So now I had to redo pretty much all my little tweaks to get the physics to behave. Invisible walls had to move, positions and rotations, of objects' spawn points had to move, etc. But now after 2 weeks of polish, it finally looks good and works consistently!
This week, I started work on a new room, "The Restaurant". This time, I am working on it with another programmer. We basically split the room down the middle. He is working on the more physics heavy side (thank god), and I am working on a sliding puzzle on the other side. The goal in this room is for the player to shoot things up out of the fish tank on the left, into a pipe that then comes out on the other side. (That part is the the other programmer's job). After it leaves the pipe, is where my side of the puzzle comes in. I had to make a 3x3 sliding block puzzle where each "block" was a table. Each table has a picture of an item they want. So when an item comes out of the pipe, the player has to slide around the tables, until the table that desires the item is in the top left of the 3x3 grid. Then the item drops onto it.
This was all very simple, and I managed to finish my entire side of the puzzle in just under 2 hours. The rest of my time this week was spent on general bug fixing and polishing up other rooms and systems. I wrote a script that would be able to notify objects in the room, when the room is changing, about to change, and finished changing. This ended up being useful for the giftshop, since there was a lot of physics interactions that needed to be disabled, when the room changed, and this provided a very simple solution.