[Released Dec 16th, 2015] – Buy from the Unity’s Asset Store.
So, it’s been a while since the last post, and the reason is that we’ve been really busy with a different project: a complete project/tutorial for the Unity Asset Store.
We developed this nice multiplayer rally game, and it’s being released with source code, comments, and an awesome tutorial in PDF. The project uses Photon Unity Network (and Photon Cloud) to provide seamless network connectivity, and Photon has been gentle enough to close a publishing deal with us.
Here are some links, and the project description from the Asset Store:
Discuss the pack in the official forum thread.
free PDF Tutorial
PUN Rally is a complete base project for a multiplayer racing game using Photon, the most popular network platform for Unity.
Here’s the first video in the tutorial series:
The project includes all sources and a 30+ pages illustrated tutorial book (PDF) explaining its use of realistic physics, dead-reckoning, checkpoint-based positions, and several other important features of multiplayer games, such as lobby control, car-selection and server-synced race-start.
– Realistic physics based on standard colliders, wheel-colliders and rigidbody;
– Detailed suspension movement;
– Real-time race synchronization over the internet using PUN (Photon Unity Network);
– Dead-reckoning techniques to smoothly deal with latency;
– Server-synced start and grid spawns;
– Checkpoint-based race management (positions, laps, finish, etc);
– Custom car selection (prefabs based) for connected players;
The project is a foundation for a multiplayer racing game, but also serves as a comprehensive introduction to several multiplayer concepts with Photon:
– Dealing with lobbies, rooms creation and joining;
– Managing player connection and disconnection (both in menus and races);
– Using custom player properties;
– Remote Procedure Calls (RPCs);
– Server-based time/clock (for race start);
– The PhotonView component;
– Custom network synchronization of GameObjects;
– PUNBehavior and Photon.MonoBehavior classes;