Why I chose Photon Unity Networking over Steamworks SDK for my multiplayer game

Image

When building the multiplayer infrastructure for Distopia, I had two strong contenders for managing player connectivity: Steamworks SDK and Photon Unity Networking (PUN) Realtime. Both have their merits, but after extensive research and consideration, I opted for PUN Realtime. Here's a breakdown of why PUN ended up being the best choice for my project.

Steamworks SDK

Steamworks is a well-known platform, particularly if you’re developing for Steam. Its SDK offers a robust solution for multiplayer games, with the following key benefits:

Pros

  1. Steam Integration: If you're planning to release on Steam, Steamworks offers a seamless way to integrate achievements, leaderboards, and matchmaking.
  2. Matchmaking and Lobby Features: Steamworks provides matchmaking and lobby services natively, making it easier to connect players.
  3. Anti-Cheat: Valve's Anti-Cheat (VAC) system is included, which adds security layers for multiplayer games.

Cons

  1. Steam Dependency: The biggest drawback is that Steamworks heavily ties your game to Steam. If you want your game to be cross-platform or release it elsewhere, this becomes a limiting factor.
  2. Complexity: Steamworks can be complex to integrate, particularly if your primary goal is simply enabling smooth multiplayer connections.
  3. Limited Free Features: While Steamworks has powerful tools, those are mainly accessible if you're selling your game on Steam. Otherwise, it can be restrictive.

Photon Unity Networking (PUN) Realtime

PUN Realtime, on the other hand, is a multiplayer framework that’s highly focused on real-time multiplayer games. Its focus on flexibility and platform independence gave it a strong edge for Distopia.

Pros

  1. Platform Independence: PUN Realtime works across multiple platforms, including mobile, console, and web, which is crucial if I want to expand Distopia beyond Steam in the future.
  2. Free Tier (20 CCU Plan): Photon offers a FREE 20 CCU plan, allowing up to 20 concurrent users without cost. This is ideal for testing and early development stages.
  3. 100 CCU Plan for One App: Photon also provides a FREE 100 CCU plan, but this is limited to one app only. You can activate this through the Photon dashboard, which allows adjustments using +/- CCU.
  4. Scalability and Pricing: Photon’s scalable infrastructure is a big plus. As the game grows, you can transition to higher CCU plans, ensuring you’re covered as your player base expands.
  5. Ease of Use: PUN’s setup is straightforward and integrates seamlessly with Unity. The configuration process is user-friendly, allowing developers to quickly get started. Photon provides extensive documentation, tutorials, and a supportive community, making it easier to implement and troubleshoot.
  6. Room-based Networking: PUN’s room-based system allows easy management of game sessions. Players can create or join rooms, and you can customize these sessions with flexible options (e.g., max player count, public or private rooms).

Cons

  1. Reliance on Photon’s Servers: While Photon’s cloud infrastructure is robust, you are dependent on their servers. For those wanting full control, this could be a downside.
  2. No Native Steam Features: PUN doesn’t natively support Steam-specific features like achievements or leaderboards, but these can be integrated separately if needed.

Photon’s Advanced Features

Photon offers additional tools that are worth considering:

Photon Quantum

For games requiring deterministic multiplayer (like strategy or physics-based games), Photon Quantum ensures all players stay synchronized with minimal latency issues. While I didn't need this level of synchronization for Distopia, it’s a great option for certain genres.

Photon Fusion

Photon Fusion supports both client-hosted and dedicated server models. This provides flexibility depending on your game’s needs, particularly for high-speed real-time multiplayer games. I plan to explore this further for future projects.

Photon Voice

Photon Voice adds real-time voice chat functionality, which integrates easily with PUN. This could be a valuable feature for games with team-based or high-interaction gameplay, though I didn’t include it in Distopia.

Why PUN Realtime was the Best Choice for Distopia

After evaluating both options, PUN Realtime proved to be the better fit for Distopia. The main reason was its platform independence, allowing me to expand beyond Steam. Steamworks tied my game to the Steam ecosystem, limiting future growth on other platforms.

PUN’s FREE 20 CCU plan was a great starting point, while the FREE 100 CCU plan for one app allowed me to conduct larger tests during development and launch without upfront costs. Steamworks, in contrast, required a heavier commitment to its platform and ecosystem.

Moreover, PUN’s scalability and ease of integration made it ideal for a real-time multiplayer game like Distopia. The extensive documentation and user-friendly configuration in Unity significantly streamlined the development process, making it less daunting than the more complex Steamworks setup.

In conclusion, while Steamworks has its advantages, particularly for Steam-exclusive titles, Photon Unity Networking Realtime provided the flexibility, scalability, and cost-effective solution I needed for Distopia's development and launch.

To find out more about PUN and it's offerings visit https://www.photonengine.com/

To find out more about Steamworks SDK and it's offerings visit https://partner.steamgames.com/doc/sdk

Game Development

Please log in or register to leave a comment.

Comments (0)