Skip to content

Aleks334/Wolfenstein3D

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wolfenstein 3D Clone

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.


📥 Getting Started

Requirements

  • 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.

Initial Setup

  1. Clone the repository and open it in Unity.
  2. If you see the "Untitled" scene loaded by default, navigate to Assets/Scenes and open the Initialization scene manually.

🎮 Game Features

Core Mechanics

  • 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.
  • Universal Interaction:

    • Interactions with objects via Raycast and Trigger are interface-driven, making them flexible and extensible without requiring object-type checks.

User Interface

  • 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).

Combat System

  • 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.

🛠 Limitations and Areas for Improvement

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.

🤝‍ Contributors

  • @Szen400: Developed enemy mechanics and HUD.
  • @Aleks334: Player movement, interaction, weapon system, game manager, audio and menu system.

About

A project for programming subject

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published