A long-term Unity project created in 2023 for a programming subject in technical secondary school. This game is clone of Wolfenstein 3D released in 1992 by Id Software.
- Unity Version: at least 2021.3.12f1
- Resolution: For the best experience, set the Game Window resolution to Full HD (1920x1080) instead of Free Aspect when running the game in the editor.
- Clone the repository and open it in Unity.
- If you see the "Untitled" scene loaded by default, navigate to
Assets/Scenes
and open the Initialization scene manually.
-
Player Movement:
- Finite State Machine: Enables better maintainability, separation of concerns and easier implementation of new player movement types.
- Strafing Movement: Holding the ALT key allows strafing with the left/right arrow keys, rather than rotation.
-
Item System:
- Leveraged Scriptable Objects for a flexible, maintainable item system.
- Different types of items: Ammo, Health, PowerUp, Weapon.
-
Communication with Scriptable Objects:
- Centralized communication using Scriptable Objects to manage events raised by
MonoBehaviour
's. Other scripts can subscribe to these events, which is especially used for SFX and music handling.
- Centralized communication using Scriptable Objects to manage events raised by
-
Universal Interaction:
- Interactions with objects via Raycast and Trigger are interface-driven, making them flexible and extensible without requiring object-type checks.
- Menu System:
- Features splash screens, settings for adjusting resolution and sound volume, main menu with multiple pages, quotes on exit (from the original game), episode selection, and level difficulty selection (currently difficulty doesn't affect enemies behaviour).
-
Weapons:
- Four weapons are available: Pistol, Knife, Minigun, and Machine Gun.
- Weapons vary by type, supporting full-auto, melee, and semi-auto mechanics.
- New weapons can be added easily by creating new Scriptable Objects with weapon data, sprites, sounds, etc.
-
Enemy AI:
- Different types: Guard Dog, SS Guard, Guard and the level boss.
- A state pattern was applied to improve code cleanliness and flexibility in AI behavior.
While this project covers many core mechanics of the original Wolfenstein 3D, there are some features and refinements yet to be implemented:
-
Missing Features:
- Certain mechanics, such as secret rooms, different enemy behaviour based on difficulty level and multiple levels, are not yet included and might be added in the future.
-
Enemy System Refinements:
- The enemy AI system could benefit from further refactoring to improve efficiency and scalability, particularly as new enemy types are added.
-
Overall Code Improvements:
- Some areas of the project require refactoring to enhance maintainability.
- @Szen400: Developed enemy mechanics and HUD.
- @Aleks334: Player movement, interaction, weapon system, game manager, audio and menu system.