PKR on Helix for 10 Years, Winning Multiple Awards along the Way
London-based PKR is one of the original pioneers of online gaming. To support the world's most advanced online poker room with over four million registered users around the globe, they needed a version control system that enabled a continuous development cycle. After outgrowing Subversion (SVN), they switched to Helix Core for its superior performance and scalability. PKR uses Helix Core 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."
Helix Core Meets Global Demands
PK hosts 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 Core. PKR uses Helix Core to manage multiple 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. Jeremy Longley, PKR's CTO and co-founder explains, "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 across the globe 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.
In this is a highly competitive market, PKR continually releases a new 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 for example, bang on the table, cheer or dance," explains Geoff Pate, PKR's senior build engineer.
Built by the team from the ground up primarily on .NET, the infrastructure consists of a huge database and network. This framework along with several websites, various systems, and payment processing are all essential to running the seamless online business.
Scaling Past SVN
When PKR first started, they used Subversion (SVN) for version management. They quickly outgrew it thanks to the company's success and expansion. Jeremy was familiar with Helix from his days at Kujuand. Geoff Pate explains, "Our main reason for switching from Subversion (SVN) to Helix was its superior branching and merging architecture."
Jeremey elaborated, "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."
Reliability and Performance of Helix Core
"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 too. PKR built it 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."
Optimizing Distributed Teams
Helix Core 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 Core, including 30 developers (mainly in the London office but with a few remote workers) plus administrators, website managers, and the QA team.
Along with scalability, there are other key features that 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 helps to support tracking of different stock-keeping units (SKUs), which is necessary. 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 Core 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.
In summary, Geoff says, "We plan to explore other features within Helix and will be interested to hear about some of the new developments that have been announced." It is clear that Helix Core 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."
By using Helix Core for version management, development and testing can progress simultaneously, without hindering the audit trail or slowing down the process.