Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Unity Multiplayer Games
Unity Multiplayer Games

Unity Multiplayer Games: Take your gaming development skills into the online multiplayer arena by harnessing the power of Unity 4 or 3. This is not a dry tutorial – it uses exciting examples and an enthusiastic approach to bring it all to life.

eBook
€20.98 €29.99
Paperback
€36.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Unity Multiplayer Games

Chapter 2. Photon Unity Networking – The Chat Client

In the last chapter, we reviewed the Unity Networking API provided with the Unity game engine. In this chapter, we will review an alternative to Unity Networking, called Photon Unity Networking (PUN).

In this chapter, we will cover:

  • How PUN works
  • The differences and similarities between PUN and Unity Networking
  • Setting up PUN with Photon Cloud
  • Using PhotonViews
  • Connecting to Photon
  • Getting a list of rooms
  • Creating and joining rooms
  • Filtering lobby results by preference
  • Automatic matchmaking
  • Using FindFriends
  • Syncing a level between players
  • At the end of the chapter, we will create a chat client built on top of PUN

Photon Unity Networking is provided by ExitGames. It aims to provide an API consistent with Unity Networking, while at the same time solving many of the issues with Unity Networking, such as the dreaded NAT punch-through problem (players behind NAT are often unable to host games).

Photon Unity Networking works with another...

Differences between PUN and Unity Networking

PUN provides a consistent, familiar API to those who have already worked with Unity Networking. However, there are many key differences and some code is not compatible without changes.

In PUN, nearly all of the main functions are contained in the PhotonNetwork class (meant to be analogous to the Network class in Unity). There is no MasterServer equivalent in PUN: all the required functions are moved to the PhotonNetwork class.

Rather than initializing servers, in PUN you create "rooms" via PhotonNetwork.CreateRoom. Rooms are essentially partitions on the game server to separate groups of players from each other.

There is no longer a concept of host IP. Instead, to connect to a room, you pass either Room to the JoinRoom function, or you pass the name of the room (room names are required to be unique).

Note

Because of the way Photon Unity Networking works, direct LAN connection is not possible as rather than connecting to each other, players...

Setting up PUN with Photon Cloud

To begin, go ahead and sign up for Photon Cloud at:

https://cloud.exitgames.com

After you've created an account, go to the Dashboard (My Photon | Applications) and create a new Application. The name is not important, but you'll want to copy the ID for later.

Next, visit the Asset Store and search for Photon Unity Networking. The first asset you see should be Photon Unity Networking Free. Download this asset into your project.

Upon downloading the plugin, and importing via Assets | Import Package | Custom Package, you are prompted with a window asking you to sign up, enter an app ID, or setup a custom-hosted server.

Setting up PUN with Photon Cloud

Click on the Setup option, assuming you have already created an account with Photon Cloud. Select which region you want to use by default, and paste the ID you copied from the website into the AppId field, and click on Save.

You are now ready to begin using the PUN plugin.

Note

Photon relies on sockets to connect, and while it does work in...

Using PhotonViews

Photon Unity Networking features PhotonViews. These essentially act exactly as their Unity Networking counterpart, allowing an object to serialize its state and send RPCs over the network. Nearly every part of PhotonView is equivalent to Network View, with a few script differences.

If you want to get the PhotonView for an object, you have two options: you can either call the static PhotonView.Get method, use GetComponent<PhotonView>(), or you can have your script inherit from Photon.MonoBehaviour and use this.photonView to get the view.

To serialize object state, add the OnPhotonSerializeView function to your script. This function takes a PhotonStream, and a PhotonMessageInfo. This works exactly like serialization in Unity Networking.

To call RPCs, you can call the RPC function on the PhotonView. As with Unity Networking, RPC methods are marked with the [RPC] attribute.

Here's an example that serializes position and calls an RPC when the spacebar is pressed:

using...

Connecting to Photon and getting a list of rooms

Let's connect to Photon Cloud. There are three main ways of doing this:

  • You can call PhotonNetwork.ConnectUsingSettings which will connect via the settings defined in the editor panel
  • You can call PhotonNetwork.ConnectToBestCloudServer which will ping each available server cluster and connect to the best one
  • You can call PhotonNetwork.Connect, passing the server address of the appropriate Photon region and the port
  • You can also use ConnectUsingSettings which will connect to the region we defined in the editor panel. We'll be using this for the rest of the chapter

Note

If you wish to use Connect manually, as of the time of writing, the addresses for each region are:

US (East Coast): app-us.exitgamescloud.com

EU (Amsterdam): app-eu.exitgamescloud.com

Asia (Singapore): app-asia.exitgamescloud.com

Japan (Tokyo): app-jp.exitgamescloud.com

And the port to connect on can be read from the static ServerSettings.DefaultMasterPort field. You will...

Creating and joining rooms

Let us have a look at how to create rooms.

Creating rooms

To create a room in PUN, use the CreateRoom function:

using UnityEngine;
using System.Collections;

public class Example_CreateRoom : MonoBehaviour
{
  void OnGUI()
  {
    // if we're not inside a room, let the player create a room
    if( PhotonNetwork.room == null )
    {
      
      // if create room button clicked
      {
        // create a room called "RoomNameHere", visible to the lobby, allows other players to join, and allows up to 8 players
        PhotonNetwork.CreateRoom( "RoomNameHere", true, true, 8 );
      }
    }
    else
    {
      // we're connected to a room, display some info such as room name, player count, etc. 

      // disconnect from the current room
      // if disconnect button clicked
      {
        PhotonNetwork.LeaveRoom();
      }
    }
  }
}

Creating a room triggers the following callbacks:

  • OnCreatedRoom, if the room is successfully created...

Filtering results by user preference

Many game lobbies allow players to filter the results by various criteria. For example, you might hide all private rooms, or only show rooms on a certain map.

Filtering arrays

We can filter out our room list array based on the user's preference, this way the user can more easily search for a suitable game to join:

using UnityEngine;
using System.Collections;
using System.Linq;
using System.Collections.Generic;

public class Example_FilterRooms
{
  public static RoomInfo[] FilterRooms( RoomInfo[] src, bool includeFull, Hashtable properties )
  {
    // use a Where expression to filter out rooms that do not match the given criteria
    // then convert that to an array
    return src.Where( room =>
      (
        filterRoom( room, includeFull, properties )
      ) ).ToArray();
  }

  private static bool filterRoom( RoomInfo src, bool includeFull, Hashtable properties )
  {
    // if includeFull is false, filter out the room if it's full
    bool...

Differences between PUN and Unity Networking


PUN provides a consistent, familiar API to those who have already worked with Unity Networking. However, there are many key differences and some code is not compatible without changes.

In PUN, nearly all of the main functions are contained in the PhotonNetwork class (meant to be analogous to the Network class in Unity). There is no MasterServer equivalent in PUN: all the required functions are moved to the PhotonNetwork class.

Rather than initializing servers, in PUN you create "rooms" via PhotonNetwork.CreateRoom. Rooms are essentially partitions on the game server to separate groups of players from each other.

There is no longer a concept of host IP. Instead, to connect to a room, you pass either Room to the JoinRoom function, or you pass the name of the room (room names are required to be unique).

Note

Because of the way Photon Unity Networking works, direct LAN connection is not possible as rather than connecting to each other, players connect...

Setting up PUN with Photon Cloud


To begin, go ahead and sign up for Photon Cloud at:

https://cloud.exitgames.com

After you've created an account, go to the Dashboard (My Photon | Applications) and create a new Application. The name is not important, but you'll want to copy the ID for later.

Next, visit the Asset Store and search for Photon Unity Networking. The first asset you see should be Photon Unity Networking Free. Download this asset into your project.

Upon downloading the plugin, and importing via Assets | Import Package | Custom Package, you are prompted with a window asking you to sign up, enter an app ID, or setup a custom-hosted server.

Click on the Setup option, assuming you have already created an account with Photon Cloud. Select which region you want to use by default, and paste the ID you copied from the website into the AppId field, and click on Save.

You are now ready to begin using the PUN plugin.

Note

Photon relies on sockets to connect, and while it does work in webplayer...

Using PhotonViews


Photon Unity Networking features PhotonViews. These essentially act exactly as their Unity Networking counterpart, allowing an object to serialize its state and send RPCs over the network. Nearly every part of PhotonView is equivalent to Network View, with a few script differences.

If you want to get the PhotonView for an object, you have two options: you can either call the static PhotonView.Get method, use GetComponent<PhotonView>(), or you can have your script inherit from Photon.MonoBehaviour and use this.photonView to get the view.

To serialize object state, add the OnPhotonSerializeView function to your script. This function takes a PhotonStream, and a PhotonMessageInfo. This works exactly like serialization in Unity Networking.

To call RPCs, you can call the RPC function on the PhotonView. As with Unity Networking, RPC methods are marked with the [RPC] attribute.

Here's an example that serializes position and calls an RPC when the spacebar is pressed:

using UnityEngine...

Connecting to Photon and getting a list of rooms


Let's connect to Photon Cloud. There are three main ways of doing this:

  • You can call PhotonNetwork.ConnectUsingSettings which will connect via the settings defined in the editor panel

  • You can call PhotonNetwork.ConnectToBestCloudServer which will ping each available server cluster and connect to the best one

  • You can call PhotonNetwork.Connect, passing the server address of the appropriate Photon region and the port

  • You can also use ConnectUsingSettings which will connect to the region we defined in the editor panel. We'll be using this for the rest of the chapter

Note

If you wish to use Connect manually, as of the time of writing, the addresses for each region are:

US (East Coast): app-us.exitgamescloud.com

EU (Amsterdam): app-eu.exitgamescloud.com

Asia (Singapore): app-asia.exitgamescloud.com

Japan (Tokyo): app-jp.exitgamescloud.com

And the port to connect on can be read from the static ServerSettings.DefaultMasterPort field. You will also have...

Creating and joining rooms


Let us have a look at how to create rooms.

Creating rooms

To create a room in PUN, use the CreateRoom function:

using UnityEngine;
using System.Collections;

public class Example_CreateRoom : MonoBehaviour
{
  void OnGUI()
  {
    // if we're not inside a room, let the player create a room
    if( PhotonNetwork.room == null )
    {
      
      // if create room button clicked
      {
        // create a room called "RoomNameHere", visible to the lobby, allows other players to join, and allows up to 8 players
        PhotonNetwork.CreateRoom( "RoomNameHere", true, true, 8 );
      }
    }
    else
    {
      // we're connected to a room, display some info such as room name, player count, etc. 

      // disconnect from the current room
      // if disconnect button clicked
      {
        PhotonNetwork.LeaveRoom();
      }
    }
  }
}

Creating a room triggers the following callbacks:

  • OnCreatedRoom, if the room is successfully created.

  • OnPhotonCreateRoomFailed, if...

Left arrow icon Right arrow icon

Key benefits

  • Create a variety of multiplayer games and apps in the Unity 4 game engine, still maintaining compatibility with Unity 3.
  • Employ the most popular networking middleware options for Unity games
  • Packed with ideas, inspiration, and advice for your own game design and development

Description

Unity is a game development engine that is fully integrated with a complete set of intuitive tools and rapid workflows used to create interactive 3D content. Multiplayer games have long been a staple of video games, and online multiplayer games have seen an explosion in popularity in recent years. Unity provides a unique platform for independent developers to create the most in-demand multiplayer experiences, from relaxing social MMOs to adrenaline-pumping competitive shooters. A practical guide to writing a variety of online multiplayer games with the Unity game engine, using a multitude of networking middleware from player-hosted games to standalone dedicated servers to cloud multiplayer technology. You can create a wide variety of online games with the Unity 4 as well as Unity 3 Engine. You will learn all the skills needed to make any multiplayer game you can think of using this practical guide. We break down complex multiplayer games into basic components, for different kinds of games, whether they be large multi-user environments or small 8-player action games. You will get started by learning networking technologies for a variety of situations with a Pong game, and also host a game server and learn to connect to it.Then, we will show you how to structure your game logic to work in a multiplayer environment. We will cover how to implement client-side game logic for player-hosted games and server-side game logic for MMO-style games, as well as how to deal with network latency, unreliability, and security. You will then gain an understanding of the Photon Server while creating a star collector game; and later, the Player.IO by creating a multiplayer RTS prototype game. You will also learn using PubNub with Unity by creating a chatbox application. Unity Multiplayer Games will help you learn how to use the most popular networking middleware available for Unity, from peer-oriented setups to dedicated server technology.

Who is this book for?

If you are a developer who wants to start making multiplayer games with the Unity game engine, this book is for you. This book assumes you have some basic experience with programming. No prior knowledge of the Unity IDE is required.

What you will learn

  • Use Unity networking for in-game player-hosted servers
  • Create cloud-based games with Photon Cloud
  • Employ dedicated servers for massive multiuser environments
  • Make game logic server-authoritative
  • Deal with latency and unreliable networks
  • Use PubNub for HTTP-based push messaging
  • Employ Player.IO to persist game data to the cloud
  • Use various forms of networked entity interpolation

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Dec 05, 2013
Length: 242 pages
Edition : 1st
Language : English
ISBN-13 : 9781849692328
Vendor :
Unity Technologies
Languages :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Dec 05, 2013
Length: 242 pages
Edition : 1st
Language : English
ISBN-13 : 9781849692328
Vendor :
Unity Technologies
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 116.97
Unity 4.x Game Development by Example: Beginner's Guide
€37.99
Unity Multiplayer Games
€36.99
Unity Character Animation with Mecanim
€41.99
Total 116.97 Stars icon
Banner background image

Table of Contents

8 Chapters
1. Unity Networking – The Pong Game Chevron down icon Chevron up icon
2. Photon Unity Networking – The Chat Client Chevron down icon Chevron up icon
3. Photon Server – Star Collector Chevron down icon Chevron up icon
4. Player.IO – Bot Wars Chevron down icon Chevron up icon
5. PubNub – The Global Chatbox Chevron down icon Chevron up icon
6. Entity Interpolation and Prediction Chevron down icon Chevron up icon
7. Server-side Hit Detection Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.6
(11 Ratings)
5 star 27.3%
4 star 45.5%
3 star 0%
2 star 18.2%
1 star 9.1%
Filter icon Filter
Top Reviews

Filter reviews by




Ed Smith Mar 14, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
As a lone Unity 3D Independent Game Developer, I often struggle with the enormity of tasks required to conceptualize, build, release, and market a successful game or app. Being self-taught, I don’t have practical experience in any one field that I fall back on… I learn as i go. That also applies for funding my projects. There are no bank loans, no investors, no pooling of financial resources other than what I skim off the top of the family income that pays the bills and feeds the kids.So, I’m pretty much just like 98% of the people reading this right now…Earlier this year, I was given the opportunity by Packt Publishing to review their recently release book, Unity Multiplayer Games, and I jumped at the chance! Creating Multiplayer functionality in my games has always been a goal, but seemed such a monumental task. I had previously held off on tackling that topic while I focused on refining my knowledge of Javascript, C#, 3D Modeling & Animation, 2D Graphics, GUI Programming, etc. Having created several PC, Web, and Mobile games over the past 6 months, learning more and more with each new project, i decided that it was about time I step it up a notch and expose myself to the Mystic Voodoo that was Networked Game Building.I’m always hesitant to purchase these books… many just teach you how to build that one specific type or style of game, or “Insert the Code from the Sample Project” and don’t really explain what blocks of code do or how we can use them, which is what we really need to learn.Within Unity Multiplayer Games, I was relieved to find that this was not the case. In fact, there are FOUR different methods of adding multi-player functionality to FOUR different example games! Methods include integrating systems such as Unity’s own built in Networking API, Exit Games Photon Unity Networking API, Photon Server, Player.IO Cloud Solutions, and PubNub’s HTTP system.In addition to the well laid out, highly detailed, and thoroughly explained examples above, the book also helps clear up topics such as Entity Interpolation, Prediction, and Hit Detection, the lifeblood of any multiplayer game!Having only a passing familiarity with business servers and networking, I was able to easily follow the information, explanations, and instructions given. The very few times I thought I might not be “getting it” a quick Google Search of that specific topic answered my questions.Remember kids; “Google It Before Asking It!”Personally, I found this book both informative and invaluable in assisting my understanding of a topic I was hesitant to jump into. I can’t wait to add an entirely new dimension of functionality and diversity to my game projects!
Amazon Verified review Amazon
Lex Jan 20, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I am currently using this book as a textbook for one of my classes and I can say that it is easier to understand than many of my other textbooks
Amazon Verified review Amazon
Rusty Jan 09, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I've been a professional software developer for just over twenty years now, and in that time I've been involved in a number of projects ranging from simple single-user desktop utilities to high-concurrency/high-availability enterprise solutions used by some of the nation's largest equipment manufacturers, and most recently independent game development. I've worked with a large variety of tools, programming languages, development environments, and target platforms.One of the important lessons I've learned during all of this is that the right book can help immeasurably in getting up to speed quickly when working with something new. In my opinion, Unity Multiplayer Games is one such book.It's not an exhaustive reference, but it does cover everything you need to get started with multiplayer networking quickly. It covers not only Unity's built-in networking infrastructure, but also the most popular third-party libraries (all of which are free or have free or trial versions). There's some overlap in some of the third-party libraries that are covered, but the book also includes coverage of non-overlapping and complementary libraries for requirements such as storing game data remotely.If you are looking for a good treatment on multiplayer networking for Unity, I highly recommend this book.
Amazon Verified review Amazon
Magnus Mar 03, 2014
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
If you are unsure where to start with networking in Unity, this book is a great book for you.While the approach is fairly straight-forward, and accessible; the advanced user will find a few things lacking.This book covers a number of 3rd party tools, the life-blood of Unity3d, and gives fairly simple instruction on using them.There are a few gotchas:The first of which is that the ‘Built-in’ unity networking, Raknet, is out of date in unity 4.x and requires quite a bit of work to use in practice… to use the newest RAKnet packages requires a Source licence for Unity3d, not something the beginner has or wants.The second of which is that there are very little Advance topics and material in this book, Making the leap from this book to more advanced networking, less experienced users may have difficulty.Overall, I think this is a good place to start if you are a beginner, however you will need additional intermediate material, before becoming comfortable with advance multiplayer techniques.
Amazon Verified review Amazon
Rock Feb 17, 2014
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Unity Multiplayer Games by Alan Stagner, published by Packt Publishing is a really interesting and relevant read for anyone interested in multiplayer game programming. Even if you are not the biggest Unity buff, the book explores a lot of great concepts that are critical to designing and implementing multiplayer video games. It even talks about Source engine and how popular games like Titanfall and CounterStrike use interpolation.Anyone familiar with Unity 3 or 4 and basic C# can pick up this book and learn some very awesome skills that are relevant to the games industry. As someone who is currently just getting started in game development professionally, I can attest the topics covered in this book are very relevant. With the way the industry is moving progressively to an “always-online, always-connected” state, these skills are critical to have if you want to stand out while looking for a programming or design job.Right from chapter 1, you start with UDP client to client design and implementation using the native Unity networking API. The book does a great job explaining why this primitive technique would be used over others, and does so for every type thereafter. This is critical because there is no silver bullet for online video games. Every game is different and has different requirements for gameplay. Some games take turns, other games do not need super low latency communication, while other games are high-paced and are much better with each second of delay shaved off. The book explains these trade offs well. In this case, client/client (peer to peer) communication is nice due to low latency but has a myriad of inherent problems such as the ability of the host client being able to change data on his end and cheating. The book accomplishes what it sets out to do: explore various relevant networking techniques for video games and lay a great foundation for you to get your multiplayer project started and up off the ground.Pros-Highly relevant topics for game design today and the future-Good explanations of why each method would be used over the others-Demonstrates how to get each method up and running in Unity C#, even if a little barebones-Awesome Pong tutorial acts as a foundation for any kind of project-Do not need Unity ProCons-Not many screenshots or proper details to the tutorials-Doesn’t always explain terminology-Arguably poor code writing ethic such as naming conventions, typos-Lack of a overall conclusion
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.