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.

Arrow left icon
Profile Icon Stagner
Arrow right icon
₱1399.99 ₱2000.99
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.6 (11 Ratings)
eBook Dec 2013 242 pages 1st Edition
eBook
₱1399.99 ₱2000.99
Paperback
₱2500.99
Subscription
Free Trial
Arrow left icon
Profile Icon Stagner
Arrow right icon
₱1399.99 ₱2000.99
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.6 (11 Ratings)
eBook Dec 2013 242 pages 1st Edition
eBook
₱1399.99 ₱2000.99
Paperback
₱2500.99
Subscription
Free Trial
eBook
₱1399.99 ₱2000.99
Paperback
₱2500.99
Subscription
Free Trial

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

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 : 9781849692335
Vendor :
Unity Technologies
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

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

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.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
$199.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 ₱260 each
Feature tick icon Exclusive print discounts
$279.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 ₱260 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 7,808.97
Unity 4.x Game Development by Example: Beginner's Guide
₱2500.99
Unity Multiplayer Games
₱2500.99
Unity Character Animation with Mecanim
₱2806.99
Total 7,808.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

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.