Technical Design - spookyboy2000/SproutScape GitHub Wiki
GitHub Wiki: Technical Documentation
Project Overview
Project Type: Cooperative 2D and 3D Game
Engine: Unreal Engine 5.5.4
Target Platform: Windows PC (Steam and local multiplayer)
This project is a cooperative game that features both 2D and 3D gameplay mechanics, set in a stylized garden environment. Players work together to solve puzzles and complete tasks using character-specific abilities.
Project Structure
1. Folder Structure
|-- Content
|-- SproutScape
|-- Art
| |-- Industrial
| | |-- Ambient
| | |-- Machinery
| | |-- Pipes
| |-- Nature
| | |-- Ambient
| | |-- Foliage
| | |-- Rocks
| | |-- Trees
| |-- Office
|-- Characters
| |-- Bob
| |-- Common
| | |-- Animations
| | |-- Audio
|-- Core
| |-- Characters
| |-- Engine
| |-- GameModes
| |-- Interactables
| |-- Pickups
| |-- Weapons
|-- Effects
| |-- Electrical
| |-- Fire
| |-- Weather
|-- Maps
| |-- Campaign1
| |-- Campaign2
|-- MaterialLibrary
| |-- Debug
| |-- Metal
| |-- Paint
| |-- Utility
| |-- Weathering
|-- Placeables
| |-- Pickups
|-- Weapons
|-- Common
|-- Pistols
| |-- DesertEagle
| |-- RocketPistol
|-- Rifles
2. Main Components
- PlayerController_2D: Controls for 2D character
- PlayerController_3D: Controls for 3D character
- GameMode_Coop: Handles game flow and rules
- BP_GameInstance: Multiplayer session management
- BP_RoombaPuzzel: first puzzel 2D player activates the roomba so that the 3D player can move on
- BP_WashBot: Second puzzel 3d player makes a bridge with the washbot for the 2D Player
Multiplayer Setup
Network Type
- Local: Supports LAN using UE5 default networking
Blueprint Integration
BP_GameInstance
: Sets up and finds sessionsBP_PlayerController
: Spawns correct pawn based on player type (2D or 3D)
Session Flow
- 2 Players startup the game
- The players choose characters
- Gamestarts
- players spawn in assigned to the right controller
- Game gets played
Gameplay Mechanics
2D Player
- Sprite-based character
- Platformer movement
- Reach Places 3D can not
3D Player
- Full 3D character controller
- Can move in all directions and manipulate 3D physics objects
Cooperative Puzzles
- Require both players to complete
- Examples:
- 2D Player clears the way for 3D
- 3D player creates bridge for the 2D player
- 3D player rotates pipes so that the 2D player can move forward
Technical Details
Animation
- 2D: Flipbooks
- 3D: Skeleton animations using Animation Blueprints
Input Handling
- Uses Enhanced Input system
- Separate mappings for 2D and 3D players
- Controler Mapping for 2D
- Keyboad mapping for 3D
Troubleshooting
Common Issues
- Steam session not found: Ensure Steam is running, and Online Subsystem is enabled.
- Sprite not rendering: Check camera setup and sprite orientation.
- Network lag: Minimize Tick usage and use RPCs wisely.