I’ve always loved Doom. Like, really love it. So much so I thought it would be fun for me to have a go myself! Its still work in progress (in particular the HUD is messy but I plan on tidying that up later).
The first thing I did was make the camera. You simply rotate and clamp the camera to get you that nice FPS feel, but the have another object which rotates on the y axis with the camera, but only the y axis, and then the camera is translated along that objects local axes.
The enemies are either patrolling or attacking, and when patrolling so far I sample a nav point for them to move to. Obviously you have to swap out sprite sheets according to the orientation they are facing: I currently use dot products with the player’s local axes to decide which sprite sheet to swap to.
Weapons are based on a weapon entities within the Unity editor, and the animation you can see (taken straight from Doom!) uses my Animation Manager that I developed in the Porridge game. It uses a simple Lerp, and on a callback I do another lerp with the new weapon but with the origin and destination from the previous lerp swapped.
I’m looking forward to working on this more!