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 sessions
  • BP_PlayerController: Spawns correct pawn based on player type (2D or 3D)

Session Flow

  1. 2 Players startup the game
  2. The players choose characters
  3. Gamestarts
  4. players spawn in assigned to the right controller
  5. 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.