Single-Player 2D Games in Unity

## Project Description These projects involve designing procedurally generated levels, implementing various gameplay mechanics, and ensuring a compelling player experience. The games are characterized by permadeath, random level generation, and challenging gameplay, typical of the roguelike genre. ## Technologies Used - **Unity**: The primary game engine used for development. - **C#**: The programming language used for scripting in Unity. - **Unity Tilemap**: For creating and managing 2D game environments. - **Photoshop/GIMP**: For designing game textures and sprites. ## Challenges Faced ### 1. **Gameplay Balance** - **Issue**: Ensuring the game is challenging yet fair, with a well-balanced difficulty curve. - **Solution**: Iteratively testing and adjusting enemy AI, player abilities, and item distributions to maintain a balanced gameplay experience. ### 2. **Player Experience** - **Issue**: Keeping the gameplay experience engaging and immersive. - **Solution**: Implementing dynamic lighting, sound effects, and responsive controls to enhance the player’s immersion and enjoyment. ### 3. **Performance Optimization** - **Issue**: Maintaining high performance and smooth gameplay, even with procedurally generated content. - **Solution**: Optimizing scripts, managing memory efficiently, and using Unity’s profiling tools to identify and resolve performance bottlenecks. - **Procedural Level Generation**: Creating varied and dynamic dungeons for each playthrough. - **Permadeath Mechanics**: Introducing a high-stakes environment where players must restart upon death. - **Complex Enemy AI**: Implementing sophisticated enemy behaviors to challenge players. - **Item and Ability System**: Providing a wide range of items and abilities to enhance gameplay. ## Domain Knowledge Requirements In addition to game development expertise, the project required specialized knowledge in the following areas: - **Procedural Content Generation**: Understanding algorithms and techniques for creating dynamic and random game content. - **Game Design Principles**: Knowledge of designing engaging and balanced game mechanics and systems. - **AI Programming**: Skills in developing intelligent and challenging enemy behaviors. - **2D Art and Animation**: Proficiency in creating and animating 2D sprites and game assets. - **Performance Optimization**: Techniques for optimizing game performance and ensuring smooth gameplay.