PKR on Helix for 10 Years, Winning Multiple Awards along the Way
London-based PKR is one of the original pioneers of online gaming. New features and functionality are introduced all the time through a continuous development cycle supported by Helix Version Control. PKR uses Helix to manage multiple and simultaneously developed pre-production test streams and production streams.
Reasons behind PKR's Unwavering Satisfaction with Helix
Ability to continually rollout new features
Superior branching and merging architecture
Ability to track integration history
Helpful shelving feature
Ability to track flexibility of APIs
Perforce is fully embedded in the development process and has unquestionably contributed to our success."
Development Environment at a Glance
- Company name: PKR
- Headquarters: London, UK
- Industry: Game development
- Perforce customer since: 2007
- Number of Helix users: 40 (30 developers plus administrators, website managers and QA team)
- Development environment: Microsoft .NET
- Number of development sites: One in London, UK plus a number of remote workers
- Number of files: 400 GB across three separate depots, comprising code, database development, and art assets
Helix Scales Gracefully to Meet PKR's Demanding Continuous Development Process
London-based PKR is one of the original pioneers of online gaming. They host the world's most advanced online poker room, with over four million registered users around the globe having access to near-infinite customization. New features and functionality are introduced all the time through a continuous development cycle supported by Helix. PKR uses Perforce Helix to manage multiple and simultaneously developed pre-production test streams and production streams.
In 2005, the founders of PKR spotted an opportunity to bring the rich play experience found in computer games into online gaming. Says Jeremy Longley, PKR's CTO and co-founder, "The user experience had been very basic up until then. PKR was breaking new territory by introducing characterization and video imagery from the computer games industry and enhancing the visual aspect of online poker. We occupy a strong niche in the marketplace: no one is able to match the online poker experience we deliver."
Profile for Success
PKR has become a gaming phenomenon, operating in most global territories where online gaming is legal. In 2011, the company was voted International Gaming Awards Online Poker Operator of the Year for the second year running. They also hold the 2010 title of eGaming Review Poker Operator. PKR was also named the UK's fastest growing technology company in the Sunday Times Tech Track 100 list in 2010.
This is a highly competitive market, however, and rather than resting on its laurels, PKR continually releases a new stream of content to keep its customers engaged. "This includes keeping the feel of our avatars fresh, with new clothing, voices and what we call "emotes." Users can click a button to have their on-screen avatar perform an action to express how they are feeling; for example, bang on the table, cheer or dance," explains Geoff Pate, PKR's senior build engineer.
The look and feel to the outside world is just one part of the massive IT infrastructure that drives PKR. Built by the team from the ground up primarily on .NET, the infrastructure consists of a huge database and network; several websites; various systems including random number generation, payment processing and administration; all of which are essential to the smooth running of PKR's 24x7x365 online business.
Automating Helix for Continuous Development
As for the continuous development process, Helix lies at its core, managing all versions of code and art assets, as well as all of the database development. Says Jeremy, "We are always working on new versions, so the build process — from individual to team development, staging, release management, and supporting different languages — can become very complicated. The complexities involved, plus the tight timelines and need to work with third parties, is a constant challenge. We are able to keep it all on track by using Helix to fully automate the process and working in one environment. We have up to seven builds in development at any one time, which enables us to continually rollout new features."
When PKR first started, they used Subversion for version management, but they quickly outgrew it thanks to the company's success and expansion. Jeremy was familiar with Helix from his days at Kuju and knew from experience that it could scale to meet PKR's needs, without sacrificing performance or increasing internal workload. Geoff Pate explains what this means in practice, "Our main reason for switching from Subversion to Helix was its superior branching and merging architecture."
Helix is Fast and Flexible
"What matters to us is not how long the raw operations take but the amount of man hours we need to invest in tracking changes and making sure things have been integrated, built, deployed and tested correctly. The speed of merging in Helix is great, but more importantly we do not have to spend valuable time resolving conflicts and making sure the right changes have made it to the right place, as Helix does it all for us. This is where we saw the real time savings when we switched to Helix. The excellent quality of the visual tools enables us to track integration history and the flexibility of the APIs allows us to develop our own bespoke tools to fill our specific needs."
One example of this is the database and version management integration tool that PKR has built in house, using one of the Helix APIs. "All the database development is done fully through Helix. The database is split into three parts: the data (and within that, the schema or structure of the data), sequences, and stored procedures. We have 600 tables and 4,000 stored procedures which is pretty big for one database."
Helix in a Distributed Environment
Perforce Helix was first installed in 2007, and by spring 2011 the total repository — code, database development, and art assets — was around 400GB across three separate depots. Approximately 40 employees are using Helix, including 30 developers (mainly in the London office but with a few remote workers) plus administrators, website managers, and the QA team.
As well as its scalability, other key features within Helix get PKR's vote. "Branching —which we do a lot of — works well in Helix. We use it to support simultaneous development of new features in separate branches and then merge those back into the mainline. By integrating with IDE systems, we can check a branch to see how a piece of work relates to other releases," says Geoff. PKR also makes use of the lazy branching feature, which stores a reference to the original file instead of copying it in its entirety, thus minimizing storage consumption.
Branching also helps to support tracking of different stock-keeping units (SKUs), which are necessary because, Geoff explains, "We have to release slightly different versions of our software for different territories in order to comply with individual government regulations around the world. In France, for example, users must log in with a user name, password and their date of birth, whereas in the UK the date of birth is unnecessary."
Geoff also cites the benefits of the shelving feature in Helix for carrying out code reviews. Shelving enables temporary storage of work that is in progress without having to submit a change list. This is useful when carrying out multiple development tasks on the same set of files or shared files, before they are committed to the depot.
Says Geoff, "We plan to explore other features within Helix and will be interested to hear about some of the new developments that have been announced." In the meantime, it is clear that Helix plays an integral role in managing the internal development processes at PKR. Concludes Jeremy, "With our often intense continuous development cycle and a service that has to be available to customers at all times, our version management system has to be right: Helix is fully embedded in the development process and has unquestionably contributed to our success."
PKR needs to release stable versions of the code to independent third party testing organizations in different countries. By using Helix for version management, development and testing can progress simultaneously, without hindering the audit trail or slowing down the process.