ConConnected Games Blog – Week 1: Prototyping Dual-Perspective Gameplay

Exploring Game Concepts

This week, with our designers unavailable, I collaborated closely with the second programmer to brainstorm possible directions for our group project. We wanted to create a unique cooperative experience, so we explored the idea of combining 2D and 3D gameplay. Our concept involves two players: one controls a character in a 2D world, while the other navigates a 3D environment. The core mechanic centers on collaboration-players must work together across dimensions to solve puzzles and progress.

My Contribution: Player Spawner System

To support this concept, I began developing the foundational code for our player spawning system. Drawing from the Photon Fusion 2 documentation, I implemented a script that dynamically assigns players to either the 2D or 3D character based on their join order. This ensures that the first player to join becomes the 2D character, while the next becomes the 3D character. I also expanded the code to support multiple spawn positions, allowing for flexible level design in the future.

Above is the core implementation of the PlayerSpawner script:

Expanding Player Movement

After setting up the player spawner, I wanted to understand how Fusion 2 handles networked movement. I followed the official documentation to create a basic character controller, then expanded it to support both 2D and 3D perspectives. The camera’s behavior is determined by the player’s role: if the player is in 2D mode, the camera switches to a top-down view; if in 3D, the camera follows behind the player in third-person.

Above is the core implementation of the playerMovement script:

Top-Down Camera Implementation

To achieve the desired top-down effect for the 2D player, I created a custom camera script. I manually adjusted the camera’s position and rotation in the Unity editor, then translated those settings into code so the camera would always follow the player from above.

Above is the core implementation of the TopDownCamera script:

Player Color and Networked Interactivity

Finally, to test networked interactions, I implemented a simple color-changing system for the player character. Following the Fusion 2 documentation, I created a script that allows the player to change their color by pressing the “E” key. This not only demonstrated networked variable synchronization but also laid the groundwork for future interactable objects.

Above is the core implementation of the PlayerColor script:

Design Thinking

Although my primary role is programming, these early technical decisions are deeply intertwined with the game’s design. The player spawner system ensures that each player has a unique perspective and role, directly supporting our cooperative gameplay vision. The dual-perspective camera system not only enhances immersion but also clearly differentiates player experiences, which is central to our design concept. Implementing networked color changes gave me valuable insight into how Fusion 2 handles state synchronization, which will be essential as we introduce more complex interactions.

By keeping the code modular and adaptable, I am ensuring that our systems can evolve as the design matures and as new gameplay mechanics are introduced. This iterative approach allows us to quickly prototype, test, and refine ideas, which is especially important given the collaborative and experimental nature of our project.

Reflection and Next Steps

This week’s work established the technical foundation for our unique dual-perspective cooperative gameplay. The player spawner, movement, camera, and networked interaction systems are all in place and ready for further iteration. Moving forward, I plan to:

  • Refine the movement scripts for both player types to improve responsiveness and feel.
  • Expand the camera systems for smoother transitions and better player feedback.
  • Begin developing the first cooperative mechanics that require players to interact across dimensions.
  • Work closely with the designers (when available) to ensure our technical solutions align with the evolving game vision.

I will continue to document my contributions and design decisions in upcoming posts, providing code snippets, screenshots, and reflections on the development process.

References

Stay tuned for more updates as we bring this innovative cooperative concept to life!

Above is the Unity Version Control Change

Leave a comment

Design a site like this with WordPress.com
Get started