First I would like to say that I had a lot of fun attempting this challenge. I never participated in anything like this before.
I voted for the Doom and the Dungeon Crawler choices in the challenge poll and was satisfied to see that they both came out on top.
What went wrong
I will start with what went wrong when I started this project, which uses the Unreal Engine. Probably the toughest thing I had to code, was the AI. It simply did not do what I wanted it to do at first and it took me several tries just to get it right. I had to turn on and look at the AI debug screen to see what was wrong. Turns out that my AI's cone of vision was completely disoriented due to a badly aligned capsule component. I simply rotated the capsule 90 degrees and the cone of vision was correct afterwards. But later on I got rid of the 45 degrees vision cone and replaced it with one with full circle so that the enemy could sense the player as if it had eyes all around its head. It was more adequate for the kind of AI that this game would require.
Another problem that I encountered was that sometimes the AI would stop moving after I had made some changes on the map. It took me several hours to realize that I had to rebuild the map navigation data because the AI simply did not move otherwise.
What went right
This project uses Blueprints for the most part, with some C++ for the basic player movement, setup and camera orientation. I found that Blueprints are extremely easy to use and let you iterate and prototype your game much much faster than pulling up Visual Studio, write some C++ code and wait a while for the code to compile after you make some changes. This is one of the problems with UE4 in my opinion since it takes much longer to compile your C++ code, than to compile your Blueprints. Unity has the upper hand in this as the C# compiles very quickly. This is probably why Epic Games are considering creating an intermediate scripting language between Blueprints and C++. https://www.reddit.com/r/unrealengine/comments/aezhdv/it_seems_people_at_epic_are_considering_adding/
So, it was a breeze to simply code game logic using these Blueprints and it did not take me long to adopt them. I am considering nativizing them so I can basically learn how they map to C++, and also to optimize the code. If I do, I will publish the source code on GitHub.
What I have learned
I learned how to use UE4, in my view the most versatile and powerful engine there is to make games right now. You can do so much with it, not just games but all kinds of things from movie content to architectural design.
I learned how to use Blueprints, which at first I thought they were kind of bad since the nodes take so much space and to perform common programming things like loops, branching, etc. it is not ideal.
I learned how to design an AI using UE4's behavior trees and AI perceptions. It was not easy at first, but it was satisfying to finally make it work.
Level design is another thing I had to improve, and this time it was a bit better than the usual basic things I have done in the past, mostly with Quake 3's level editor.
This challenge helped me learn a lot of things, and I am looking forward to see which challenges will be proposed in the future.
I will go back to focus on my own engine, which uses D3D11/12, and will use what I have learned with UE4 to improve my own code.