PolyTeam - 3D Co-op Platformer

Solo Developer • 1 Week (Brackeys Game Jam 2021.1) • Theme: "Stronger Together"

PolyTeam Cover

This project represents my foundational step into software architecture and 3D environment design, developed independently during a rigid one-week game jam. Built from scratch, PolyTeam is a two-player 3D platformer focused on cooperative physical puzzle-solving. The core gameplay loop requires players to navigate parkour elements and collaboratively stack physics-based objects, like barrels, to progress through levels.

Brackeys Game Jam Entry Game Jam Theme: Stronger Together

Technical Stack

  • Game Engine: Unity
  • Programming: C# via Visual Studio
  • 3D Modeling & Rendering: Blender
  • Texturing & 2D Assets: GIMP

C# Scripting & Physics Logic

I architected custom scripts to handle player controllers, user interfaces, dynamic game objects, and camera tracking.

  • Input & State Management: Implemented frame-rate dependent input polling within the Update() method to ensure highly responsive player controls. To prevent infinite jumping, I utilized Physics.CheckSphere to cast a detection radius at the player's base, accurately verifying ground contact before allowing subsequent jumps.
  • Physics Application: Separated physics calculations into the FixedUpdate() method to ensure consistent behavior regardless of frame rate drops. Movement was applied using Rigidbody velocity adjustments, and jumping utilized AddForce with ForceMode.VelocityChange for snappy, predictable platforming.
  • Dynamic Camera System: Engineered a custom camera tracking script that calculates the midpoint between Player 1 and Player 2 in real-time, averaging their X and Y coordinates to keep both characters cleanly in the frame.

Engine Architecture (Unity)

  • Scene Management: Structured a multi-level progression system with dedicated UI screens, integrating level transitions and audio management.
  • Component Assembly: Assigned precise physics materials to control friction and bounciness, ensuring the barrel-stacking mechanics felt weighty and deliberate.
  • Object Hierarchy: Leveraged parent-child transformations within the Unity hierarchy to handle the "pick up" mechanic, allowing players to attach colliders and objects to their character models dynamically.
First configurations in Unity Engine In-Game Action

3D Asset Pipeline

  • Low-Poly Modeling: Designed and modeled original, low-poly character assets and environment props using Blender. The workflow involved extruding, subdividing, and manipulating vertices from primitive shapes while strictly maintaining a triangulated mesh for engine performance.
  • Texturing Workflow: Executed complete UV unwrapping and texture baking processes in Blender, utilizing GIMP to create the color palettes and apply custom text decals to the models.
UV Unwrapping in Blender UV Mapping Execution
Texturing Layout Final Character Texturing

Key Takeaways

Developing PolyTeam under a strict one-week deadline served as a crash course in project scoping, debugging, and cross-application workflows. It laid the groundwork for my understanding of object-oriented programming in a visual environment, system hierarchies, and the physics simulations that I now apply to more complex electronic and computer systems engineering.

Final PolyTeam Render
← Back to Projects