Road to Beta: Launcher, Patches & Security

Welcome to the 2nd of our "Road to Beta" series of posts. The focus of this one is simply to detail how we intend to distribute patches to you our players, the technology we use to accomplish this, and to hopefully remove any fears that you may have about using a launcher.

Launcher

The aim of the Project Epoch launcher is to simply provide a nice easy way for players to install and update their game and as such we have intentionally tried to keep it light and focused on just those goals. Registration will be handled via an external website becoming available in the not too distant future.

First Boot

Installing

After launcher installation you will be asked to provide your game install location. This is where the actual content needed to play the game will be placed. Project Epoch is built on the Wrath of the Lich King 3.3.5a (Build 12340) enUS client, if you already have a client matching that available you can instead point our launcher at that folder to only download the changes required for Project Epoch to function.

Choose Location

Once a directory has been chosen the process of installing Project Epoch will begin from our content delivery network.

Install Progress

Once completed you will simply be provided with a means to launch the game. This will automatically clear the games Cache before it boots to minimize issues that can happen when transitioning from one patch to the next.

Play Game

Updating

Updating your install is a very simple process of opening the launcher. If a patch is available we will verify your local files and only download the patches that have actually received changes in an attempt to reduce wasted bandwidth for both our players and us.

Update Available

Open Source

Many people understandably have concerns about installing a launcher provided by a random private server project. From the offset of creating our launcher we knew this was an important factor and is why we insisted on not only building this entirely from scratch in house but also open sourcing it so that more technical users can inspect to see if we're doing anything nefarious. We have a strong commitment to ensuring you know what is actually executing on your machine and why.

In that spirit from this point our launchers code can be found in our repository on our Github.

We have intentionally used a modern development style using key technologies such as

  • Electron + Forge.
  • Squirrel.
  • Bootstrap.
  • TypeScript.

Patch Distribution

In an attempt to minimize bandwidth usage for both us and players we have split our patches down into logical chunks so that where possible only a minimal amount of data has to be downloaded and you get your updates faster. These are as follows.

  • Client Database & Interface.
  • Kalimdor Map.
  • Eastern Kingdoms Map.
  • Other Maps.
  • World Map Objects.
  • Textures and Models.
  • Sounds.

The most commonly updated of these between major patches are the Client Database & Interface patch which comes in at < 20mb.

CDN

To further bolster this we are using a Content Delivery Network for all our game content. The simple description of this is that our game content is distributed across servers in a variety of regions. When you request a file it is grabbed from the endpoint closest to you to reduce congestion across the greater CDN and ensure that you are getting the lowest latency and highest speeds possible when downloading content.

The regions and locations where content will be distributed from are as follows:

  • North America: Ashburn, Atlanta, Chicago, Dallas, Denver, Las Vegas, Los Angeles, Miami, New York, Phoenix, San Diego, San Jose, Seattle, Toronto.
  • Europe: Amsterdam, Frankfurt, London, Madrid, Milan, Paris, Stockholm, Warsaw.
  • South America: Bogotá, Buenos Aires, Lima, Rio de Janeiro, Santiago, São Paulo.
  • Asia: Hong Kong, Osaka, Seoul, Singapore, Tokyo.
  • Oceania: Melbourne, Sydney.

Executable & Security

A number of our key features at Project Epoch depend on edits to the World of Warcraft executable. This is accomplished via the injection of a dll named ClientExtensions.dll. The main purpose is to allow exposing internal functions to LUA and allowing custom packets to be send from Client -> Server -> Client securely.

This is a feature of the modding framework we use named TS-WoW. This is open source and available here. We hope that these steps will make players more comfortable with running our executable.

Next Steps

Starting from our next post 1 week from now we will be enabling our game pre-download and registration so that you are ready to go when our first Open Beta begins. Stay tuned for more information.

Previous
Previous

How To Play

Next
Next

Let’s Talk: Time