Animal Well Day of the Devs Puzzle Solutions and Some Thoughts

They say never to challenge the Internet since you’ll always lose. I like to think that by challenging the Internet at Day of the Devs, we all won. For anyone reading this who has no idea what I’m talking about, please check out this blog post about some secrets I embedded in my Day of the Devs video. If you’re interested in taking a crack at it, please read no further as there be spoilers below.

I am shamelessly and lazily borrowing liberally (i.e., plagiarizing) the solutions write-up written by Discord user @Gami#0826 who pulled all of the puzzles together and credited each person who came up with key components to the solution as well as the exact timing of when each piece was solved. Thank you so much Gami#0826 for crediting everyone for their contribution to the solution!

Before I get into the actual solutions, I want to take a moment to say that whenever you put a piece of creative work out in the world, you always wonder if anyone will notice or care. I can’t put into words how exciting it was to watch the Animal Well Discord community absolutely devour these puzzles. I resisted the temptation to jump in and nudge people in the right direction to the solution (or steer them away from false leads) but only barely.

Here are the solutions after which I have some reflections on the experience below.

Puzzle 1: Vigenere ciphertext with key

Solved in about 1 hour

In the background of my video, I included a URL which was intended to be an obvious starting point: animalwell.net/fountain.




Anyone who visited that site was presented with some encrypted text: amtmc xumuacm fcze mtnd ysi wehlnd vtgowqkw oqsaa diqgewa hhrpsi cq pf pftqd uh gijdugr


I wanted to give people a real challenge so rather than have each letter represent another letter in the alphabet, I used an encryption technique created in the 1500s. But how could I expect anyone to realize what encryption mechanism I was using? Well, I made sure to put its creator’s picture in the background!



Blaise de Vigenère (1523–1596) obviously

Anyone familiar with the Vigenere cipher knows that you need a key to decrypt it. At 0:48 in the video, I included that hint. (Saint Alecz#5555 first in our Discord community to post an image with the waterfall key, and Wormy#0172 was the first to connect the dots. TheHenryGuy#1522 was the first to post an image with the cipher solution.)



There are probably many tools online for decrypting Vigenere ciphers, but I, along with most people, used https://www.dcode.fr/vigenere-cipher:



The resulting decrypted text reads:
email subject blue bird for reward cppjwfza oxojv dxfkedw qcrehm cx lo kfifh uo credjvv

“Email subject blue bird for reward” makes sense, but what about all of that cppjwfza oxojv dxfkedw qcrehm cx lo kfifh uo credjvv nonsense? That suggests a second puzzle!

Puzzle 2: Vigenere ciphertext without key

The challenge of the first puzzle was in figuring out that the text was encrypted with a Vigenere cipher. For the next step, the challenge would be to figure out the key for the remaining text.

The email subject line blue bird was intended as a hint to look closely at the blue bird at 1:38 in the Day of the Devs video. (X3SUCKS#4528 seems to have been the first person in the server to post/directly reference the blue bird in the trailer.)





I also included another hint in the background of the Day of the Devs video: a picture of the Picross DS. (LOLGuy213#7361 was the first to point out this connection.) GizmoArts#7188 then converted the image to the correct Picross nonogram format, and theEggfather#6076 made the nonogram image used below.



(SuperALA1217#9189 seems to have been the first to post/point out the 1->A 2->B pattern in the video at 0:48.)




The final step was to pull all of this together by first writing down all of the numbers in the columns and then all of the numbers in the rows and converting them to letters:

1 2 3 4 6 6 7 9 11 12 15 2 11 12 4 5 2 1 2 4 2 3 7 5 6 9 10 10 11 11 11 3 6 2 5 2 1 1 1 1 thus became ABCDFFGIKLOBKLDEBABDBCGEFIJJKKKCFBEBAAAA.

Using this key, one could finally decrypt the remaining text which read: congrats email subject palace to be added to credits. (Congrats to Bardiel#0243 for figuring this out!)




Credit Section: Though there were a few people who came up with the solution at key steps, many others were equally pivotal along the way. Gami#0826 did a wonderful job in identifying these key moments that helped the community move forward, rule out things, and just keep us on track.
  • HomemadeToast#0374 - He made a whole program! We were following some matrix leads on the nonagram part, and he wrote a program to help us convert stuff!
  • (Red) Mr.Redstone54#7069 - Generally a prominent person during the solving, active as we all helped each other move along during the solve.
  • superALA1217#9189 - first found the column number to letter conversion hint, and kept posting it until someone actually followed it finally.
  • Minoin#1775/BurningSpade#5989 - Both helped with the ‘fish’ lead at different times, Minion bringing it up first. Although it led to nothing, it helped us weed out stuff that wasn’t directly part of this puzzle!’
  • And many many many more, sorry if I didn’t specifically mention some of you all, I had a hard time deciding who to credit or not to list directly.


Puzzle 3: Inspect Element

Although this puzzle wasn’t created specifically for Day of the Devs, the act of throwing down the gauntlet to the Internet caused people to explore every nook and cranny and ultimately discover this. About 3 months ago, I included on the Animal Well website a little note to email me with the subject line DARK FOREST. The only way to notice this was to go to the website, inspect elements, and scroll to the bottom of the elements tab:


To any naysayers out there who feel that it will be impossible for me to create puzzles that will take literally years for people to solve, I will just point out that this one was just sitting around for people to discover for months. Who knows what other puzzles may be lying dormant, just waiting for the right person to happen upon it?

Reflections


1 - The beginnings of a real community

The word “community” is often tossed around like so many other marketing buzzwords. Discord is often seen as the place for communities to come together, but aside from a common interest in a certain game, a lot of Discord servers lack what really makes a community: people getting to know each other; people coming together for a common purpose; people actually enjoying one another’s company. As I watched the Discord server spring to life, I felt like I was seeing an actual community form in real time. Everyone was respectful of each other’s ideas and contributions, and everyone was having fun tackling the challenge together. It was as if I had inadvertently created something larger than a game, and I thank everyone on the Discord server for coming together the way they did.

2 - With great power comes great responsibility

When I put out the Day of the Devs video, I focused on the clues I was deliberately including but didn’t put enough thought into what people might mistake for clues. Watching the Discord community tear through the puzzles was like watching a feeding frenzy, and when people were on the right track it was shocking how fast people locked onto the solution. But when people started to fixate on a red herring, it was hard not to feel a little bad.

I want to continue putting out challenges to the community, but at the same time, I realize that I’m going to need to be more cognizant of what people might accidentally assume is a clue but isn’t. I’ll be honest that I haven’t figured out the right way to do this yet. I could jump in and tell people if they’re on the wrong track, but that seems too heavy handed. Likewise, a lack of any response from me could be misconstrued as tacit acknowledgement that there is a clue to be found. When puzzles could be anywhere, they could be everywhere. I want to make sure solving these challenges is fun and rewarding, not a series of frustrating dead ends.

3 - This is going to be a regular thing from now on

Notwithstanding my concerns of having people over-analyze every little thing I put out there, this was just too much fun to be a one-off. When I put together the Day of the Devs video I explicitly told everyone that there was a puzzle in it. From now on, there will be no such explicit notice. Puzzles may be lurking anywhere and everywhere. The gauntlet has been thrown.

Animal Well at Day of the Devs…And some secrets!

 When I first announced Animal Well on the PlayStation Blog, I described how I’m implementing puzzles in multiple layers. The first layer is what you’d typically see in a puzzle platforming game—some contrived obstacle that makes you think for a moment, solve the puzzle, and continue on your way.


The second layer is what one might normally expect to “100%” a game. These might include a few more deeply hidden optional items. Some completionists will explore every nook and cranny until they find them all, while others might look up online how to find what they’re looking for.


The third and fourth layers will be much more deeply hidden. Many won’t even present themselves as puzzles and some may not be solvable by any one person on their own. I expect many of these puzzles will go unrecognized and unsolved forever.


It’s tricky to talk too much about these puzzles since specific examples would spoil the fun of solving them. So I decided to take a different approach. I decided to structure the Animal Well Day of the Devs video along similar lines to the game. The first and second layer are the video itself. It introduces the core elements of the game—what it is, how you play, and why I think you’ll have a good time with it. Most people will stop there and move on with their lives, watching all of the other great videos devs have put together for the event.


But there’s another layer to the video. A puzzle hidden within. You may need to watch it a few times to gather all of the clues. You may need to do a bit of Internet sleuthing. But the first 10 people who solve it will win a free copy of the game when it launches in early 2023. Once it’s solved, I’ll write up a post about the solution for anyone who couldn’t work it out.


Happy sleuthing!



P.S. Be sure to add Animal Well to your Steam and/or PlayStation5 wishlists and tell your friends!




Coming out of Stealth Mode




I have been quiet about Animal Well recently, but the past year has been the most eventful yet. I began working with the illustrious Dan Adelman, who is now helping me with business and marketing. I quit my day job to focus on Animal Well full time. And then finally yesterday, during the PlayStation Indies event, we officially announced that it will be coming to PS5 and Steam! The response so far has been incredible. Also, you should Wishlist it -- because apparently it is very important to the Steam visibility algorithms.


Then there were other cool things that happened:

-  I wrote a post on the PlayStation Blog discussing the atmosphere and world design, and people seem to be resonating with it.

- The announcement is already getting some great coverage! In addition to a bunch of sites covering the press release and announcement trailer,  IGN did an amazing gameplay preview which I highly recommend watching if you want to actually understand how the game is played.

We just setup a Discord server. It is in it's infancy right now, but I expect it to grow over time. I will be sharing things during development, answering questions, and maybe even asking people to playtest at some point.

This is just the beginning! There are more exciting things in the works, that I can't talk about quite yet. But I will try to keep everyone updated, best I can. I have been working on this game for well over four years, and I can't wait for people to finally play it.



Running at 240p

https://www.youtube.com/watch?v=_mDxcDjg9P4

Earlier this year I felt compelled to make sure Animal Well was able to run on a CRT at a clean 240p resolution with no weird down sampling. I'm making a low resolution pixel art game, and it would be blasphemous if this were some how not true. It turns out this was even more annoying than I was expecting, so I figured I would document the experience.

Last summer I picked up a Sony PVM off eBay while I was visiting Los Angeles. I've been really enjoying playing older games on it and got really excited at the thought of seeing it display my own game. I just needed to figure out how to get it connected to my PC. PVMs typically have BNC connectors that can accept RGB or component yPbPr. My computer has a GTX 980 graphics card which happens to have an analog VGA port on it.

Not really having any idea what I was doing, my first thought was that I needed to somehow get the rgb pins of the vga output connected to the the rgb bnc inputs on the back of the PVM, and then maybe something might happen. One half assed google search later, I found some VGA to BNC cables on monoprice -- easy! 

It turns out this is absolutely not enough to get anything working, and I was eventually forced to develop a working understanding of sync signals and how they relate to VGA. If you look at the pinout of a VGA connectors you'll find two sync lines, one for horizontal and one for vertical. The inputs on the PVM only had one line for the sync signal, so I realized the sync signals need to be combined in some way.
https://www.youtube.com/watch?v=_mDxcDjg9P4

I wanted to see what would happen if I just spliced the horizontal and vertical sync lines together and plugged it into the sync input on my pvm. That's what combined sync is right? Also, this was probably a terrible idea, and could have damaged the tv, but I did it anyway đŸ˜…. As you might have guess, this also was definitely not going to work. It turns out combining sync signals is a pretty non-trivial process, and I was quickly discouraged from trying to rig together some type of homebrew solution myself.

After doing a bunch of research, I concluded that what I needed was an old Extron analog sync converter, which pretty much did exactly what I needed. This is a device that was popular in a lot of old schools and office buildings and allows you to hook up a PC to a projector. A lot of projectors use RGB and BNC connectors for input.

In this case, all it does is combine the H and V sync signals into on C-sync (combined sync) signal, leaving the rest of the video unaffected. I found this page on on RetroRGB to be pretty helpful when learning about these things.

The last and final thing I was wrestling with during this process, that I haven't mentioned yet, was getting my Nvidia graphics card to output 240p. Nvidia's control panel lets you define custom resolutions, but I found it to be an incredibly buggy and inconsistent experience. (Something tells me this is functionality that doesn't get a lot of QA attention each driver release.) Apparently if I had an AMD card, there are custom drivers I can install that add enhanced support for low res analog signals, But I really wanted to make it work with my existing Nvidia card/stock driver. With enough patience, and a couple reboots I eventually got some resolutions to work. I had to manually enter all the timing values. I found this site which has modelines for a bunch of different arcade/console setups. In my case I ended up using some timing values for one of the video modes of the NTSC Sega Genesis, to get a 320x240 resolution. Animal Well uses an internal resolution of 320x180 meant for 16:9 widescreen, so I was okay with a little letter boxing, and squashed aspect ratio. 



The final result
Close up of the scanlines

I was very excited to get this working. I took great care to make sure my DX11 renderer introduced no extra frames of input lag, but connecting it to a CRT lowered the lag even further.

This was a very fusty process and I had a lot of trouble finding info on the internet about doing this exact thing. If you have any questions or advice, feel free to reach out!