+ Reply to Thread
Page 1 of 2 1 2 LastLast
Results 1 to 10 of 17
  1. #1
    Defiance Dev PhantasieTrion's Avatar
    Join Date
    May 2013
    Location
    RWC
    Posts
    1,237

    Changes Coming to PTS!!!

    Hello Arkhunters

    One of the things I have been working on over the past several weeks is improvements to our PC Public Test Servers (PTS). This is one of the small steps we are taking towards our long term goal of getting our community members more involved.

    Short Version (tl;dr):
    • It will allow us to get large patches, including the upcoming Silicon Valley patch, onto PTS in advance.
    • It will allow us to turn on (some) timed content in advance (like crossover missions).
    • It will allow us to give you early access to things like weapon balance changes to get feedback. (or even experiment with your ideas!!)
    • We can more easily provide bonuses to PTS users (like the second part referenced in this thread).
    • It will require one full patch of the game. This should be the last time you need to do a complete download for PTS.
    • + more but this thread is already too long.

    Long Version (Technical reasons and various bits of information you might find interesting):

    First, here are a few definitions that will make explaining things easier:

    Environment: A collection of server machines, patch servers, databases, etc which contain the executables and final data for the game. This is what someone connects to when they play Defiance. Our player base connects to the live environment or the PTS environment.
    Branch: A collection of content - source code, configurations and data - that makes up the actual game.
    Building: A collection of data from a branch is built - which generates the executables, final patches, etc. This is then ready to go to an environment. Build times vary from minutes to overnight, depending on how much and what changed.
    Deployment: The process to copying the collection of content on a branch that has been built to an environment. This is one of the steps that happens during downtime – we replace the built content on an environment with new built content – ie we update the game.

    Defiance has various environments. Some examples are:
    • Internal development environments
    • External (restricted) environments that Microsoft or Sony to connect to for Certification
    • PTS
    • A live environment per platform per region

    Defiance has various branches. Some examples are:
    • Internal development branches (ie Silicon Valley started on an internal branch months ago)
    • Certification branches (we need an isolated build to go to Microsoft/Sony)
    • ‘Live’ (production) branch – The content that is deployed to the live enviornment (or the content that is very close to being deployed as we approach an update).

    Changes (ie a bug fix) can be integrated or streamed from one branch to another. Bug fixes and/or features work their way from a development branch to eventually become live.

    For quite some time, we took the built collection of data from the live branch and deployed that to our PTS Environment. (In essence using PTS as a staging location for live deployments).

    There are benefits to this (current) setup:
    • The closer the PTS environment is to the Live environment, the more chance we have to catch bugs early.
    There are downsides to the (current) setup:
    • Making changes that are specific to PTS become much more difficult/risky. We do not want debug or testing code in the live branch. Here is an example of someone asking for just that.
    • When major updates are ready to deploy (especially client patches), we wait with updating the live branch until late in the process. This is because once the live branch is built (but not deployed), we can no longer (quickly) hotfix the current live environment should a severe bug be found (since the branch and the environment are out of sync). This out of sync problem has happened several times during the games lifespan and caused extended downtime. But - when we waited until late in the process to update the live branch, it meant PTS:
      • Couldn't get updated either, and thus it was too close to launch to really fix any problems players found. You will see past threads from players frustrated about this.
      • Or: we would deploy to PTS from a different (ie a certification branch) causing potentially a full download twice - once for the certification branch deploy, and later once the live branch was deployed. You will see past threads with players frustrated about this.

    So that leads us to the changes we are making: PTS will soon be getting its own dedicated branch and the required infrastructure behind it, and the tools to keep it (mostly) in sync with live branch.

    I mentioned above about this requiring one more full patch. This is why:
    • When we build a branch (which includes the client patches) we have knowledge/history of all the previous patches built in that branch. The patcher tells our patch server what version its currently on. The patch server has a set of instructions based on this history which gives the files (and only the files) needed to get from that version to the new version we just deployed. However:
      • This only works from versions built with the associated branch.
      • So: Since we are switching PTS to have its own dedicated branch, its going to require a full patch since we don’t store patch history across branches.
      • But: It means that you should no longer need to do a full patch again since from this point forward new patches will always come from the PTS branch.

    ***Updated: Jan 31 @ 9:30 AM - Fixed bug with teleporter at the Overpass to Silicon Valley.

    We look forward to seeing you on PTS!

    One last thing:
    Taking a complicated, technical topic and writing a post about it with the goal of having everyone understand it is challenging. And it’s not something I’m good at. Please let me know (PM/this thread), if it does/doesn't make sense, or if you see jargon/terms that I didn’t explain, etc.

  2. #2
    Member Market's Avatar
    Join Date
    Feb 2013
    Location
    New Mexico
    Posts
    1,429
    Brilliant! Bravo! I love this level of information! I'm no programmer, but all of that made total sense to me. I think these changes are going to be excellent! The more we get to test stuff out, the better!
    PC NA characters: Market & Yanna Walkingbear
    XBox NA character retired.

    PTS Reviews on Defiance Data!

    "You must understand, young Hobbit, it takes a long time to say anything in Old Entish. And we never say anything unless it is worth taking a long time to say."

  3. #3
    Member Fuzzy's Avatar
    Join Date
    May 2013
    Location
    Germany
    Posts
    1,666
    Hey,

    thanks for that detailed information.
    To me, everything made sense also

    When can we expect to see these changes? Downloading the whole game again takes some time for me to do. I probably will have to download it over night again, heh

    PC EU - GT: Fuzzy12 - EGO LvL: 6.000

    I'm also on Trove as Fuzz - Want to help me? Use this referral link.

    Site Manager on Defiance Data




  4. #4
    Member
    Join Date
    Jul 2013
    Location
    Flriduh
    Posts
    3,015

  5. #5
    Member Atticus Batman's Avatar
    Join Date
    Mar 2013
    Location
    Moses Lake, Wa USA
    Posts
    9,018
    It actually makes sense and is to the point. Thank you.
    Support me in Extralife

    Xbox Gt and Defiance Character (Na): Atticus Batman
    DEFIANCE CLAN: DAWN PATROL(forum page)

    (Azrael Batman) Clan: Nuclear Elite (EU)


    Quote Originally Posted by CM Kiwibird View Post
    That's because Batman is the best.
    Quote Originally Posted by TheOz View Post
    As usual Batman is right.
    Quote Originally Posted by dramaQkarri View Post
    Because Batman is ALWAYS RIGHT!
    Quote Originally Posted by TheReaper2662 View Post
    Batman is boss. He will never lose because he is the best. That's that. Oh yeeeah

  6. #6
    Quote Originally Posted by PhantasieTrion View Post
    Short Version (tl;dr):
    • It will allow us to get large patches, including the upcoming Silicon Valley patch, onto PTS in advance.
    • It will allow us to turn on (some) timed content in advance (like crossover missions).
    • It will allow us to give you early access to things like weapon balance changes to get feedback. (or even experiment with your ideas!!)
    • We can more easily provide bonuses to PTS users (like the second part referenced in this thread).
    • It will require one full patch of the game. This should be the last time you need to do a complete download for PTS.
    • + more but this thread is already too long.

    About the technical explanation, I think I got the gist of it. I know that in many (most?) programing languages what you write is not exactly what is ran in the program. Instead, it must first be compiled, something like encoding or reformatting in my simplistic understanding, that is actually what is procesed and executed by the system to make the program work.

    So by my understanding:

    - A branch is a first hand written version yet to be compiled that's not actually executable, but works as the mold to make the actual program.

    - To build it is to compile the branch to actually make an usable program, or part of it, that is enabled to be executed by the system. Since almost never is a program rewritten entirely everytime something is changed, all references and conections inside the newly built program fragment must coincide with the ones the old version had, else it creates crashes or memory leaks (you must make sure the pieces coincide before replacing them, in simple terms). Since building can be a lengthy process, is very ineficient to rebuild the branch every time a bug is eliminated, so its preferable to fix most (if not all) of them in a single Branch before trying to compile again. Non critical bugs are thus released as hotfixes later on the road in smaller and more controled fragments, once there has been more time to track and correct them.

    - Enviroment is pretty much the final product, all the pieces of the program put together to work without loose ends. What we players call "the server". Still, you use many of these to test the Branches in diferent contexts, hence why they are called enviroments.

    - Deployment is when a new fragment, compiled from an aproved and tested branch, is copied to the enviroment cluster, effectively creating a new game version. Still, it requires further testing to make sure there are no inconsistencies between the new fragment and the rest of the enviroment (With thousands of diferents kinds of connections running around, even automated systems can't track them all).

    So the current situation is that the PTS is built with the same Branch code as the intended final product. This has the advantage of basically executing the main Enviroment in a controled situation, so bugs that may have escaped QA may be found by the PTS players so they are corrected in the Branch, and thus rebuilt to further test it in the PTS Enviroment until it performs as expected. Then is released to the public enviroments.

    It's disadvantage is that, since the PTS build is basicaly the same as the game, every change made must count, there's no margin for experiments or fooling around. Also, the PTS must wait for the time constricted developement of the game branch to be finished and compiled, so there is no time for side investigations or future content test since it risks accidentally leaking some of this content in the main game. Changing anything in the the PTS build that is not intended to be released runs the risk of leaving traces or additional bugs in the game build when changing them back in the branch for the final release, and on top it requires further work and attention that is simply not worth the effort.

    With a separate branch, the PTS has the ability to drastically diverge from the main game. Instead of testing the full release intended build every time, we would be testing smaller fragments of the branch in a controled enviroment. This has the advantages of being able to test things that are not intended to be released to the main game in the near future, since changing things in the PTS Branch doesn't endanger or delay the main game Branch. Some of the rules of the game can even be altered to acelerate the hunt for bugs by simulating diferent situations that makes them more evident.

    The system would however need to run an equivalent build to the main Branch before a new version release, else risking the fidelity with which bugs were found in the past. As the Branches diverge, what works in the PTS may not work the same way in the game Branch, and porting the specific changes from one to another may reveal further problems that would need attention.

    That's as much as I can gather from it. I hope it's more or less accurate.
    "Fight! Win! Prevail!".

    Sugestion threads
    Weapon rolls | Lockboxes | Nanos balance | AP pickups | Vehicles and armor

    SuperEGO V2.0

  7. #7
    Member
    Join Date
    Jul 2014
    Location
    in the dark recesses of ones mind
    Posts
    1,782
    whens the update ? so i can jump on and get testing ? or did i miss that in the post o.o cant tell

  8. #8
    Member Sliverbaer's Avatar
    Join Date
    Apr 2013
    Location
    Ohio
    Posts
    896
    Quote Originally Posted by PhantasieTrion View Post
    One last thing:
    Taking a complicated, technical topic and writing a post about it with the goal of having everyone understand it is challenging. And it’s not something I’m good at. Please let me know (PM/this thread), if it does/doesn't make sense, or if you see jargon/terms that I didn’t explain, etc.
    Nice. Yet another awesome post. Well done Phantasie.

    PS3: CECH-2101A | PC: Bahamut2 | Screenshots | YouTube Gaming | Extra Life

  9. #9
    Defiance Dev PhantasieTrion's Avatar
    Join Date
    May 2013
    Location
    RWC
    Posts
    1,237
    Quote Originally Posted by BlackTalons View Post
    [CENTER]
    That's as much as I can gather from it. I hope it's more or less accurate.
    Hi BlackTalons

    Yup - you've got it. While not everything you say is 100% correct, its obvious you understood what I described. That's great!

    It probably wouldn't make much sense to have PTS "vastly" diverge from main, but in theory this is possible. I'd expect PTS to be (let's say, arbitrarily) 95% the same as the live build, with some special case/convenience/testing code that might never go to live (vendors that sell EGO levels for 1 scrip, weapon balance experiments, etc).

    @JadedSinn - We havent pushed the Silicon Valley mini expansion yet. I will update in the PTS Forums when we do!

    --Phantasie

  10. #10
    Member Etaew's Avatar
    Join Date
    Apr 2013
    Location
    Intel Bunker
    Posts
    2,704
    Excited to have larger changes on PTS before it makes it to live, gives me more time to prepare articles and coverage
    Defiance Data the community resource site, Databases, Tools, Guides and News

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts