I started off this week by working on the logic gate puzzle. The main problem I was dealing with was the fact that there were a lot of ways to solve the puzzle, usually approaching around 10% of possible solutions. This number was around 25-50% typically before I added some code which recast everything if that number was too big.

I got 9 problems, but a switch ain't one.
You can imagine the puzzle as a combination lock with 9 binary digits. The problem here lies in the fact that only 3 of the digits are relevant, and they are only partially related to the other digits. The goal is to make every single digit relevant.
So, as I typically do, I radically redesigned the puzzle. Rather than controlling gates, the player controls switches. I decided on only six switches, or 64 combinations. The logic gates are static and hidden from the player, and now draw from a pool of every possible binary logic gate. Unlike before, there is only one possible solution (approximately 20% of generated puzzles result in one solution, which is an acceptable rate for regeneration).

This took about a minute for me to solve, which is an good amount of time for the complexity.
Now the puzzle is at least fair and challenging, and it requires a good amount of experimentation. It doesn't require knowing what a logic gate is or how they work, but can be figured out just with a bit of trial and error. That said, knowing how logic gates work and having a bit of pen and paper could allow you to solve the puzzle more quickly.
For you speedrunners or perfectionists out there (but I repeat myself), the puzzle is scrambled so that either two, three, or four switches need to be flipped to solve the puzzle. Later on when I finalize this puzzle, I will incorporate some sort of "bleed valve" which can summon a monster if the player is flipping too many switches. This will encourage thinking rather than brute force.
I then began working on my planned "hotwiring" puzzle. Much like the name suggests, this puzzle will look like a breaker box or a phone switchboard, with wires going everywhere. The goal is to make the proper connections to open the door. Making the wrong connections will do things like set off alarms, release monsters, or shock the player.

An early render, showing the wire colors and textures.
I was pretty happy with how the early render turned out. I made the wires distinct looking, with the color enhancing the experience, rather than defining it.

Now that's more like it.
As I played through this puzzle, I realized it could be treated as a sorting puzzle, which tickled the small part of me that had fun in Data Structures I class. It's a solid puzzle though, and I like how it turned out.
I do plan on making more puzzles, perhaps more mathematical in nature, but I have at least enough to make a proof of concept within the towers. Besides, the 0.0.30a release is getting a bit stale and you good people deserve an update.
To round out the week and prepare for release, I then set to the task of integrating the puzzles with objectives and including other stuff in the mad scientist towers, such as monsters and loot.

The new look of mad scientist towers. I might make them a little more interesting in the future, but for now it does well.
I have the day off tomorrow, so expect the update sometime then! Remember to email any questions, comments, and prayer requests you have to [email protected].
