Presentation from Gamebasics about Online Soccer Manager. Founding of the company, game mechanics, technological and organizational challenges. For Service Science course @ Vrije Univeriteit Amsterdam.
22. PERFORMANCE FIRST
Designed with performance in mind
Powerful hardware
Scalable architecture
23. DESIGN WITH
PERFORMANCE IN MIND
Reduce number of queries
Optimize queries, can’t take more than a few milliseconds
Use caching!
De-normalize model
Engine: batch processing
35. Structuring Gamebasics
Mission
Gamebasics wants to gather football
lovers from all over the world to allow
them to feel as the manager of their
favorite football team. Everyday and
everywhere.
Thanks for being here.
We want to tell you something about our game today. Both how you design a great game and how you scale it, from a technical and a business perspective.
My name is Jeroen Derwort and I am here with my colleague and co-founder of Gamebasics Frank Tijhuis.
In case you are wondering these are our online avatars. If you ever see those, you will know it’s us.
We met each other as neighbours. Always a good reason to start a company together!
I am responsible for product development / technology in the company, Frank handles market development / marketing.
Gamebasics is located in Zoetermeer, we moved into a brand new footballstadium-office in may.
It has a goal, a stadium and a skybox. We’re really proud of it.
Gamebasics has 32 employees now.
What do you expect from us?
We have this/that in the presentation. We will leave plenty of room for Q&A in the end.
Our goal is to share insights to inspire new startups. We contribute to this today with our success story.
We also seek to connect to universities, to let young professionals know about our awesome office!
What do you expect from us?
We have this/that in the presentation. We will leave plenty of room for Q&A in the end.
Our goal is to share insights to inspire new startups. We contribute to this today with our success story.
We also seek to connect to universities, to let young professionals know about our awesome office!
We will cover the following topics in this presentation.
After this introduction I will introduce myself. Then I will tell you about freemium game mechanics and technical challenges that make my life interesting.
Then Frank will take over and tell you about how we started as a company and which challenges we faced along the way.
He will finish with a brief overview of our future plans and how we will conquer the world.
At the end of the presentation, we will leave plenty of room for questions.
First let me introduce myself. I started at age eleven with my first games on an old MSX computer that I got from my father.
I did not own a lot of games and there was no internet. So quickly I discovered how much fun it was to program my own.
I made 26 small games like these. For example the game on the right is called Airplane, where you need to avoid mountains.
After I got a PC, I made a simple RPG game called Avalon with my brother, who was doing the graphics. He is now Art Director for Gamebasics.
We had some success with this game. We put it on the internet and it received over thohunderdthousand downloads.
We won a prize with it, the ZDNET shareware award in the year 2000.
You can still download it if you’re interested, the URL is avalonrpg-dot-net.
After this I started working on Online Soccer Manager.
Before I continue, first a question: who has heard of OSM? Good! This saves time explaining the game.
For those of you who don’t know it yet: it is a football management game. You get to coach your favorite team, line-up players, do transfers and sign sponsors.
Played by over 3.5 million people monthly worldwide, around 400.000 in The Netherlands. Biggest country is Turkey.
I recommend you go download this game for your iPhone or Android device after this class! It’s really fun.
Of course what you
Started out very, very simple.
Programmed in the summer in my attic room in 2001.
Classic ASP website, with Access database.
Server was in our house, slowed down the internet connection until it was no longer usable.
But this was good enough to prove the concept: MVP (Minimal Viable Product)
Eventually moved to real hosting and better technology.
Let me tell now you about some Game basics. It’s no coïncidence that our company is called Gamebasics!
At the core is very simple.
OSM is a casual freemium game. Properties are that it is accessible and free.
Answer 1: Candy Crush, Clash, Hayday
Answer 2: OSM
These games have a very simple, yet interesting core loop.
OSM’s core loop consists of preparing your squad for the next match, receiving your results and rewards, try to improve your squad, prepare again etc.
It is important that this core loop is simple, for a game to reach a large audience.
If you look at another game again, try to picture this core loop and why it works so well.
We measure a lot of data about our users. We have very large databases with millions of records.
One thing we measure which is very important, is the retention rate.
This tells us how many users will log in after day one, day 7 and day 30.
We try to keep as many users as possible playing.
The first day the most users will quit. Here is a lot of room for improvement!
So how do we make money?
Our business model is free to play.
For a small contribution, you can have extras in the game, such as a nicer profile, a place in the rankings and some extra training camps.
These you get with what is called a ticket. If you want to start your own league, you can buy premium tickets.
Some time ago we started with a new feature, which we internally called the “sjeikh feature”. You can invest your own real money in the club.
This is expensive, so not a lot of players do this. But those who do, pay us a lot of money!
We started very simple. But success has its own challenges!
How do we cope with over 1 million users daily?
Scaling: this is what makes freemium game development interesting from a technical perspective.
First: how many football matches are calculated by the simulator every day, do you think?
2.3 million… yes, that’s a lot.
As I mentioned earlier, we have huge databases.
How many database queries do you think our servers have to process per second?
20.000 queries PER SECOND.
That’s a lot of queries. On peak times it’s even higher.
So how do we handle a load like that?
We design with performance always in mind.
We have invested in very powerful hardware.
The software architecture is scalable, so we can add more hardware if needed
A lot of programmers are very good if the apps or sites they make only have 100 users. Imagine if your app has millions of users.
We need good performance always. Queries are expensive. Reduce them!
They can’t take more than a few milliseconds.
Use caching where you can.
Denormalize a database model, or use nosql solutions.
For the match simulation engine, we use batch processing: get all data, perform calculations on it, write back.
Our servers are at a state of the art datacenter.
There are 34 servers there, both web and database.
We bought the best there was to buy: XEON processors, industry grade SSD drives.
This flies!
The technology we use chosen for power. For example we use MariaDB (more performant fork of MySQL) and redis for caching.
We have also protect against Distributed Denial of Service attacks because OSM is a target for hackers all the time.
The application is made so that it allows scaling. A multiserver architecture. This is even visible for the user. You can switch servers as a users in the game, if you want.
We started out very simple with an MVP (Minimal Viable Product). Don’t take time for performance right away if you’re building something new.
Use a good foundation. Test your idea first. Then if you’re confident, improve along the way.
Gamebasics started in 2004. OSM was aleady there and succesfully growing in the Netherland. Jeroen had a hit on his hands and we together decided to found Gamebasics and try to conquer the world with OSM. At first there was thje kitchentable where we worked. But during the year we rented a small office. Also the first employees, a designer and a developer were hired. We were a real company. We thought . We had an English translation of OSM available and that was enough to bring in the players. So we decided to develop other games as well. For example Match of the Day where you could decide on formation and tactics of the European big games of that weekend. We earned 100 euro per day with that game. We were on the top of the sky. Than the ABN AMRO approached us! If we were able to create and develop an entrepeneurial game. They picked us because we already had a community in the Netherlands and proved to be able to build a succesfull game. So we accepted and we received a significant amount of money to do so. The development took us almost a year and after launch the game became succesfull, over 100K youngsters played the game. It was already 2007 now. We make only little revenues. And all revenues that were made were used to hire more people. We now were with 5 enthousiastic employees. The english vewrsion of OSM only had 15K players. All the other playters came from the Nertherlands, but the home market was not grwoing anymore as well. Wut we still believed that the foreign growth would come. And we were busy with our other games. We really believed that we were on the right track. But in 2008, with 7 people working we could hardly pay their salaries. Our own salary was cut (again) and my wife and children decided to skip a foreign holiday. Still we were determined to succeed. And than , one day early 2009, we asked ourselves what we were doing. And we asked ourselves what we wanted. We still beleived in the success of OSM in the world. But what would we do to becoem succesfull. Our most important lesson, that we still stick too was learned. (WHAT was it you think???)
FOCUS!!! FOCUS!!
We quit all our other games that month and started to focus on OSM.
We started to market OSM. To find partners. To translate the game into Spanish and Portuguese. To focus on the quality of the translations. And it worked. The amount of signups started to grow almost immediately.
Next sheet
What a growth..... In 2010 we the amount of active players started to grow. As you can see have some seaonal decline of active players every year. In the Summer. Starting from June/September there is a summer dip. We know that but still it is still frustrating every year. In 2011 we decided to renew all of the code. And prepare OSM for mobile. Jeroen will tell you more about this scaling issue. In May 2012 we launched our first iOS version of OSM. It was great. We exploded. The amount of active players doubled within a year, also because we launched the Android version in November 2012. As you can also see we did not feel any summer dip in 2012. In 2013 we still did profit from these strategic changes. At the end of 2013 65% of our active players were mobile players. That was much much faster than we expected. But as you can also see in 2014 the growth stopped. Right now we are still suffering from the summer dip and the amount of players is not climbing anymore. It is time for something new. This market is so demaning.. You need constant innovation andupdates to survive and grow in this market.
We will come back on our next steps.... Later..
But first ... Employees...
As you can see the amount of employees grows rather fast in the last 3 years. In the first years from 2004- 2009 we did not have too many employees. We choose to grow orhganically from the start. So we do not have any loans from the bank. Everything we earned we used to hire more employees to try and speed up the growth. Until our decision to total focus in 2009 we only had 7 people worrking at Gaembasics... In 2011 we moved to a new office because we hired our 10th employee. A new phase started...
Until 8 employees everything worked automatically. We worked together with great passion and there was nothing to be arranged. If we wanted to change something, a new update for example., We just stood there behind a monitor with all of us on Monday morning. Enthusiasticly talking about this new update. Changing little things . Evrybody was involved. And on Wednesday afternoon the new update was launched. Great energy! But then we hired the 10th employer and we moved to a new office. And then soemthing strange happened one day...
One day, we launched a new update. And there was this guy, he said something like: `Is that already live, I did not knew that’ . That was a moment when we realized that we had to organize meetings. Apparantly not everyone knew everything anymore. And not everything could be done by everyone. We started thinking about some structure. We tried some structures. It was a moment when we lost our naivity. As the founders we needed to organize this. We talke to other organizations with 20+ employees and found out that they ‘recognized’ our problems and that we could learn from them. Even if they were totally different organizations.
So we created structure. We called them teams and we started with a design team, a development team and a marketing team. Clustering the expertise. We also found out that it was very very VERY important to hire good employees. Professionals who were passionate abouttheir professions. There were some bad apples that we hired before. People with good talks, nice guys. But they didnt love what thye were doing. They developed bad code. It was horrible. At first we thought we could ‘repair’ them by talking to them explaining what we expected. Sending them to training. Putting lots of time into them. But in the end, it was just wasted time and effort. We realised that recruitment and selecting good professionals was very important. And we still do. At the moment we are very short on good passionate developers, we can hire 2 or 3 tomorrow if we can find them. Yes, there are cv’s sent to us. Lots of them actually. But they do not pass our assignment and we stick to a good assignment.
Better wait for the right one then hire the wrong one.....
So we clustered the emplolyees in 3 different expert teams using agile methods (SCRUM) to develop OSM. But we also noticed rthat we had to install meetings, think about the way an idea went into design and then into the product. The times that we had a good idea on Monday morning that was implemented on Wednesday was definately over. We worked with a backlog full of ideas. And every team had a Product Owner that prioritized the ideas to implement. Every two weeks a sprint started with the best ideas in it. Two weeks later the new OSM was released with those best ideas tested and implemented. Also evaluating the sprint and meetings between the teams.
In this period of structuring we also wanted to align all teams to the same Gamebasics mission and vision. After a while we defined a mission for Gamebasics. This mission is alive as we all follow the DAU every day. All employees have access to a tool on their telephone where you can see the latest DAU. You can even zoom in to platforms or countries. The DAU is the leading key value with Gamebasics. This is the key value that directly links to our mission.
This morning we had a DAU of 1.25 Million, and to maintain that DAU we need around 40 to 50 K new signups per day.... All this data. All this data in our databases is gold. We can measure all kinds of things. We can query the databases. We can measure if we go to the A scenario or the B scenario. In 2010 we thought about key values a lot and we came up with the following key areas that were important to OSM. Those data were also important to try and improve soem processes. You can understand that if you have a 1% improvement on the signups to retain, this is actually a lot of extra DAU.....
So we found out somewthing that was very similar to AARRR. The AARRR method reflects to the process of OSM. From signup to paying members.
Sop what is it. The first A is the A for Acquisition. How do we acquire our managers? Where do they come from? Where do the best managers come from?
What do you think is a good OSM manager? (he is cheap to find, he plays for a long time (more than 100 days), he pays for the game, he invites his friends)
If you can find a manager that has this qualifications he is worth more than a manager that signs uo but never returns. So we measure. We try to find out what sources we fish in. At this moment we spent around 100K per month to find new managers. We have 4 platforms, 15 key countries so lets say we have 60 sourceds that we can buy our new managers. That is a constant balancing of where to put the budget in.
What do you think? I have found a new source in Germany where I can buy a new manager for 1 euro. I found this out after spending 100 euro. I know that a new German manager brings in 1,75 euro on average within 2 months. I have 10.000 euro’s more to spend. What will I do? (........... After spending 400 euro’s the prize poer manager is climbing to almost 2 euro... My source is dry now....)
The second A is for Activation. What is an ‘activated” manager? (..... A manager that is still playing after 3 days.... We have measured that and defined that as an activated manager)
So we want to pull managers through those first three days. We have tried (and still do) a lot of things to them activated. No ads for therm in the first 3 days, a simplified menu, a checklist etc.) And we measured if we have more managers through those first three days.
Once they are activated we come to the next level.... The R of Retention. How can we retain those activated managers? What will be the key value for thos activated managers? (...... Average playing days......) So we want activated managers to play as long as we want. In our market we measure that by the 1D, 3D, 7D, 30D and 100D retention. So what percentage of managers that signs up on Day Zero are still playing on Day 30 (the 30Day retention) etc. One of our marketing temas is called team Retention and they fully focus on these measurements. This team is also responsible for the quality of the translations, as this influences the retention. This team is also managing the 90 volunteers we have all over the world. This team manages the forums. Finally this team does lots of analysis (how is a new feature doing) Doing A/B tests. Etc.
The next R is the R of Referral. Enthusiastic managers will tell their freidn to come and play. How can you stimulate that? (.... Postin Facebook, incentivize it, just make it a brilliant game, etc...) This is of course measured and optimized. At the moment around 90% of the new managers are coming in organically. Wee do not pay for them. They just find us and sign up. That is just brilliant and as and you can understand we love organic signups
The last R is the R of Revenue. How can we earn revenues from our managers. Allthough it is not our first goal tha is the DAU of course we like our managers to pay for our game. We currently have a model where a manager can play for free until the end. This managers monetizes because we show him ads where we earn around 25% of our revenue from.
10% of our active managers pays for a season ticket. This gives you some advantages but we try to avoid pay to win. The ST gives you a status in the community. You do not see ads, you have a special crwon in your profile, you have a ranking, a prizecabinet and some opther small ‘community things’. This ST option brings us 35% of our total revenues. So that leaves us with 40% of our revenues. MMhh. Where does that come from? Any ideas? .... We call it the sheikh opttion. This possibility started in ther Middle East- We are quite big in SA, Kuwait and Qatar. We noticed (in 2010) that we had a lot of the highest possible buy for season tickets in these countries. That was only 20 euros and you can play a year as a Season Ticket holder. Even managers that didnt play that long bought this amount. Wer thought that we should think of an option where managers could spend more money.
So we thought of privatre funds (the sheikh option). Provate funds is notr so unrealistic because there are some clubs (Man City, Vitesse, Spartak Moscow etc) that had rich private people who buy a club and spent lots of money in it to transfer playersv to their club. So we thought of making this possible as well. We made it very expensive because we were afraid that too many managers would do it and it might ruin the game. We broke our own rule of the not ‘pay to win’ principle. So we made it possible to spend 50 euros to buy 50 million for your club. In that way you were able to buy the best players, like Messi from the transferlist. And we tried this only in Middle East in the beginning. It worked very well. Then we highered the amount. You can also spent 100 euro for 110 million euro for your club. It worked. We even made the option to buy 1 billion euro for your club for 500 euro. Even this was sold sometimes. And no one complained as well. So we decided to bring it to Turkey as well. And it worked. And than the community in other countres started to ask for it as well. So we decided to do it.. This possibility brings us 40% of our revenues....
Only 3 out 1000 people use this feature but still......
We want to go back to the power of a start-up, without losing the benefits of a larger company.
Spotify has developed a model for this. Autonomous Agile teams are composed with a focus on delivery.
They act as a mini-startup.
Every team (squad) has the ability to design, develop, test and deliver a feature to the end-user.
Chapters are expert groups, for example designers, testers and developers.
We think this model will allow us to design our game in the best possible way!