Here at Grepolis we really appreciate the time players on our beta market take to test new features and give us feedback. We’ve been looking for ways to make this feedback system faster and more beneficial for both the development team and players, so now I’d like to introduce you to the new system we will be trying out.
Maybe you’ve heard the term ‘nightly build’? In software development it typically means a running version of the latest changes created automatically, on a nightly basis, that is made available to the public. Many software teams use this process, including Firefox and WordPress. We decided to use a version of this process and deliver daily updates to players on the beta market.
As part of our development process here at Grepolis we use a program called Jenkins. It takes care of automating a lot of tasks for us. When we make changes to the code it automatically runs a set of tests against the changes to see if we broke anything. When we want to update our servers, we tell Jenkins which markets to update with which version of the code and it takes care of updating everything. Jenkins is a natural fit for us to use to update the beta servers on a daily basis.
What changes get updated?
First, a bit of background: we use another program (called git) to help us manage different versions of our code. It allows us to keep track of many different versions of our code at the same time, and the most important of these we call ‘master‘, ‘beta‘, and ‘development‘. At any point in time these directly relate to certain stages in our release process:
- master – is the current version that is live on all the servers world wide. As I write this post it is v2.117
- beta – is the last 2 week batch of changes we made, ready for testing on the beta market. This is currently v2.117
- development – is the current set of changes we are working on for the current 2 week period. Presently v2.118.
Every 2 weeks, when we finish a set changes, we move the code from ‘development‘ into ‘beta‘ and it becomes available on the beta market. After being tested for 1 week those changes get moved from ‘beta‘ to ‘master‘ and become available for all markets.
In the new system we will be releasing the changes from our ‘development‘ version every morning onto the beta market, fresh for all the beta players to try out.
This doesn’t mean there will be something new everyday however. Features can take several days to be developed, reviewed, and tested before they are finished and we move them to ‘development‘. Maybe it won’t be daily, but when we do finish features you don’t need to wait for our 2 week release cycle to see the improvements on beta.
Won’t this break things?
It’s possible, but we have several processes in place to prevent as many problems as possible. First, we have code tests – which aim to prevent mistakes in our code such as logic errors or mathematical mistakes. Second, we have automated browser tests – which run simulated game scenarios in a browser window to check that the core functions of the game still work as expected. Lastly, we also have our QA team working with the developers to check new features and changes before they get moved into the ‘development‘ version.
Our daily update of the beta market will only happen if all of these tests have passed!
Of course, the nature of software development means there will always be problems that slip through, no matter how vigorous the testing process! However, with the new daily update system the development team has also pledged to focus even more on fixing issues as soon as they are found on beta, so those issues that do slip through won’t be around for long.
Want to help?
If this sounds awesome and you want to help make Grepolis the best it can be, go join the beta at https://beta.grepolis.com. Dont’ forget to report any issues you have at https://beta.forum.grepolis.com