This blog post is an update from my original blog post in Thai. Most of contents will be the same, but I’ll update the number to be at the present time.
What will happen if we play an entertaining game like Candy Crush and we get some medical knowledge at the same time? This is the initial question that I had when I started this project. Actually, game that has additional purposes beside of entertainment exist for a long time. In the gaming industry, this game is called “serious games.” An example of popular serious game in the market are Monopoly, which intended to make people understand the effect of monopoly in capitalism. Civilization franchise also was classified as serious games by some people.
What is Resus Days?
Resus Days is a mobile game for iOS and Android. It’s a simulation of Advanced Cardiovascular Life Support (ACLS). Players will have the role of the team leader in a resuscitation team. They must choose the right action based on a real-world clinical practice guideline. If they chose the right action, the patient’s condition will improve, and they will win that level.
Here is the launch trailer:
And here is the gameplay trailer:
Below are some screenshots of the game.
1. The Beginning
I have an idea to develop an ACLS simulation app since I was a medical student. That time is 2010. I had to be trained and be certified in ACLS, according to my curriculum. I had my first smartphone (Nexus S) at that time. When I took the ACLS course, I felt that it would be good if there was an app that can help me remember each step, at least in the form of a simple quiz app. I tried to search the App Store but can’t find any apps that are affordable and in good quality. In the end, I learned ACLS the normal way (I failed the exam once actually, haha.) After that, the idea of ACLS simulation app stayed deep inside me all the time, but I don’t have enough skills to build it.
Several years had passed. I experienced many things and gather software development skills along the way. I thought that I can build the ACLS app if I want. But because I need to focus on my startup companies, I didn’t have enough time and attention to do this project.
Things changed when I came to study the master program in Health Informatics in Sweden. I had to do my master thesis to graduate. I tried looking for several ideas that must present my skill to prospective employers. The skills I want to present are three areas:
- Medicine: I can understand medical knowledge. And it must be a topic that is a bit complex, and not too easy.
- Software development: I can finish the entire software on my own. It must be a technology that I’ve never used before, to show that I can learn new technical knowledge regardless of my previous knowledge.
- Digital art: I can design a graphical user interface that has a good-enough user experience. Aesthetics must be OK. The usability must be OK. And it must not difficult to develop in a technical aspect.
Moreover, the project must also be useful in the real world. I wouldn’t create a project just to finished my master. The project must be able to prove its value by it must attract real users who agreed to pay some real money.
After considered many projects, I thought of the project that I wanted to do in the past. That is the ACLS app. It also can help me achieve my thesis goals. After choosing between many kinds of ACLS app I should create, I decided that it should be a game.
After I decided that I would make a game. It was time to chose technology. Should I create a 2D or 3D game? In the end, I chose Unity and Blender because I thought it wasn’t too difficult to learn in a short period of time. So, I started learning Unity in November 2017 and Blender in December. Then I did the literature review in January 2018. I started developing the game in February and release for download on April, 24th. I conducted research for my thesis on the same period. The total development time of this project is 600 hours.
2.1 How did I learn Unity?
After studied Unity from several resources, here are my reviews:
- Game development & design. Learn C# using Unity 4.6, 5 & 2018 ($10) by Ben Tristem. This is a very popular course in Udemy. The course content now is different from when I studied. In my opinion, it’s quite good in the early sections for laying fundamental knowledge. But the later sections are a bit unorganized. I felt like they didn’t explain much about how they designed the project. For example, they didn’t explain ahead how many classes they want in the game, what are the roles of each class, etc. I felt like they just wrote the code the had in mind without explaining the plan to students. So I felt the course is a bit messy in later sections and I gave up after around 10 sections.
- Unity tutorial by Unity (FREE) After Ben’s course, I focused on a topic I was interested in Unity’s official website. I discovered that they did a really good job in creating those tutorials. If you followed projects on the website, you might even don’t need Ben’s course. However, after several tutorials, I understand each component, but I still felt I’m not sure how to put it together and develop the entire game. That’s why I was looking for another course, that is the last one.
- Making a Simple RPG in Unity 2017 by GameGrind (FREE) This is a YouTube playlist that you can watch for free. I think this playlist was excellent. He taught about how to create a simple RPG game. I would say a large part of Resus Days’ code was inspired by this playlist.
Other things that I did was purchasing the entire project from Unity Asset Store to learn about how the pro write their codes. I’m sure there will be many more complete projects that you can buy than in 2018. These projects are:
- City Building Perfect Kit ($99) It’s Clash of Clans clone. I used several ideas from this asset in Resus Days.
- GUI Kit Sci-Fi Blue ($25) I purchased this asset to study how to create a quite complex UI that has many animations. I didn’t follow them in the end because I felt it would take too much time although it wasn’t that important.
2.2 How did I learn Blender?
After I got some ideas on how to use Unity, the next step is learning Blender to create 3D models and animation. The main resources I used for learning are:
- CG Cookie ($29/monthly) I subscribed only 1 month. I focused on learning 3D and followed many courses. I think 80% of my Blender knowledge came from this site. However, I think at 2019, there’re many more Blender courses on other sites.
- Sebastian Lague YouTube After I finished many courses on CG Cookie, I was still confused about workflows between Unity and Blender. This channel clarified this topic for me. Other topics on this channel are also interesting as well.
- LowPoly SciFi Pack ($16) This is a Unity asset I bought to learn about environment design. I also used this asset on prototyping.
2.3 List of software used
Unity and Blender are main tools, but I also used other software:
- Adobe Creative Cloud: Illustrator and Photoshop are the main tools for creating GUI. I didn’t have to learn these two because I’ve used it for a long time. I also used After Effect a little for creating ECG animation.
- Sprite Sheet Generator Photoshop Script (FREE): Because I used Sprite sheet in many areas of the project. I tried using many tools, but finally, I decided to use bogdarybak’s tool. If you have more budget, you can consider a paid tool like SpriteSheetMaker because it can create more advanced sheet.
- MakeHuman (FREE): although I can create a 3D model by myself, it didn’t look good and it was a bit disproportionate. A model created from software looks better. I can’t remember why I couldn’t use Adobe Fuse (maybe because it’s too realistic, or its rigs were broken when I imported into Blender). I ended up at MakeHuman. However, it looks like this project was discontinued at present.
2.4 List of Unity Assets I used in this project
Of course, one advantage of Unity is the strength of the platform and the community. So, many things that I want were already built by someone. For this project, I had experiment with many assets. In the production version, here are assets that I used:
- TextMesh Pro (TMP) (FREE) because Unity’s native UI text can’t do many things e.g. can’t justify a paragraph, can’t insert image between text. TMP can solve these problems.
- Toony Colors Pro 2 ($40) main shader of the game.
- DOTween Pro ($15) at first I want to create a game that had fancy UI animation. Although in the end, I didn’t have enough time to do it. The only animation I did is fading. I didn’t have to buy DOTween Pro just for this actually because it can do much more complex animation.
- 3D Games Effects Bundle 1 ($35) This one is the main VFX of the game that played when players selected each treatment command.
- Build Report Tool ($10) when I started developing the game, I had a problem about build size on iOS (I later knew that I don’t need to worry much, it would become smaller when archived). Unity’s built-in report is not easily accessed. So, I bought this tool to show me which assets took much space.
- Interface and Item Sounds ($7) the main SFX of the game.
- Acid trance/retro style music pack ($10) the main background music of the game.
- Unity IAP (FREE) for creating the In-app purchase system.
- Facebook Unity SDK (FREE) for tracking of Facebook ads. At that time, the latest version of Facebook SDK had some problem, so I had to switch to an earlier version.
The main typeface of the game is Nunito Fonts from Google Fonts.
Actually, there are many more assets that I bought but I didn’t use it. There’re also many courses that I didn’t have time to enroll. So, I calculated only items that I used. In summary, the total cost is $296.
2.5 Game design decision
Real-time vs. turn-based
When I started, I thought the game should be a turn-based RPG like Final Fantasy in the PS1 era, or a real-time strategy like StarCraft. But I still didn’t have a concrete idea. I reviewed numerous mobile games in the market about their game design. I didn’t have enough time to play all of them so most of the time I watched the game review on YouTube. I asked some of my physician friends about the kind of games they want. I also created a paper prototype to test the game. In the end, I decided to make it a real-time strategy game.
At first, I thought that I would let players command each character. Then I thought that there wouldn’t be many characters that the players need to command. Doing so would increase the complexity of the project. So I changed my mind. I chose the indirect control system, the players do not need to control each character. They just chose the command, the system would choose who will perform the action. Although this approach created a little complexity when I developed the feature for switching between chest-compression characters. But looking backward, I think this is the right decision.
After I developed the game for some time and test playing it. I felt that real-time in the real world is too slow for the real world. The players needed to wait for quite some time for each turn. In the real world, we don’t feel slow because there are so many things to do that I didn’t include in the game. So I changed the game time to be 4X of the real world (I tried many numbers before ended up at this). And I would make it real-time or stop-time in some necessary occasions. The changing speed of time back and forth like this also caused complexity in development. And Unity (the version I used) also have some bugs about timescale and animation.
Another important question is: how much realism do we need in this game? If it’s too much realistic, maybe I could include more knowledge in the game, but with the expense of increasing development complexity. Moreover, it would be harder to maintain medical accuracy because there are more factors involved. Lastly, too much realism might cause the game to be less fun. I thought about the objectives of the game. What was the knowledge I want the players to learn? What would they feel when they played?
For me, I thought that the players recognize the process is enough for this game. They should remember that if this condition happened, WHAT action they should do. I don’t think this game had to make the players understand WHY they should do that. And they don’t need to focus on every CPR detail when playing. I hope they can grasp the big picture of the CPR algorithms. I hope that they might want to learn more detail on their own after they played. My game act as an igniter that inspired them to learn more. On they can use it to review the knowledge. But they would never learn everything just from playing this game.
About players’ feelings, I didn’t want the players to be stressed while playing. I didn’t want them to feel like they were preparing for the exam. I want a casual vibe in the game. This idea reflected in the art direction of the game. For example, I designed characters to be cartoonish instead of realistic. I inserted some senses of humor in dialogs. But in the meantime, I didn’t want it to be too much casual because resuscitation is not a funny thing. In the real world, it’s a treatment that defines life and death.
Moreover, if users wanted a realistic simulation, there were plenty of them in the market. I didn’t need to create another one. But no one had created a CPR simulation that has a casual vibe before. So, all of these are reasons I designed the game to be like this.
Revenue model and pricing
This area is another area I hesitated a lot. Firstly, it should be a paid app or a free app? Because no one had created a serious game like this before, players might not be able to understand what it was. They might not dare to pay for something they weren’t sure. Or what if they’ve paid but it didn’t meet their expectation? They might feel disappointed. If I created it as a free app (with in-app purchase), at least they can try before they buy. If it wasn’t what they want, they could just ignore it. However, after the game launched, this approach made some players unsatisfied because they felt like I lied to them. Because the game was free, but after downloaded, they found that it was free for only one level. So they felt that way.
After I decided it should be a free game, how could I make money? The most popular method (back then) was an in-game virtual currency. When we win a game, we get a reward to purchase items. This approach is more difficult to develop than the pay-to-unlock-level approach. Because I had very limited time to develop (I had to finish my thesis. I needed the real world usage statistics to present). So, I chose the pay-to-unlock-level approach.
The last question is how much players should pay to unlock? After I asked a number of friends, I discovered a pattern. If the players value the product, the price at $2, $3, $4, or $5 weren’t different for them. But if they didn’t value the product, any price is expensive (maybe they’re fine with $1 or less). I think if I was a player, the point that I would feel OK to pay for a game like this is around 100 THB in Thailand. Because Thailand is my main market, I think lower than 100 THB looks better than higher than 100 THB. So, I set the price at $3 or 99 THB.
2.6 Problems during development
I was a generalist
Being a generalist has both advantages and drawbacks. An example of the advantage is there was less collaboration time, and cost of development was quite low. Regarding collaboration time, even I created this game alone from designed to coded. When I played the prototype, I felt it wasn’t good enough and need to change many things. If this was a team of three members: a doctor, a developer, and a designer. The doctor designed the gameplay. The designer made art assets and UI. The designer got the approval from the doctor, so he/she sent it to the developer to make a prototype. After the developer created the prototype, he/she sent it to the doctor. The doctor wasn’t satisfied, and the process from designing to coding had to repeat again. Maybe combining all of these would make the total development time exceed 600 hours that I used.
The drawback of being a generalist is although I can do everyone, I’m excellent at nothing. In programming, I’m not that good in architecture or design pattern. Moreover, I focused so much on speed in this project, much more than code quality. The result is I felt like I was constantly adding a new element to a broken house. In addition, I didn’t know how to do a unit test in Unity. And I didn’t have enough time to learn. The late stage of the project is really a mess. Adding a feature for 30 minutes made me have to fix bugs for the next 4 hours. I didn’t refactor because I was afraid it might take too much time and I wouldn’t finish it on time. In summary, I admitted that the code in this game is not in good quality.
The drawbacks of being a generalist were not just programming. I wasn’t so good at medical knowledge and graphic design as well. About medical knowledge, even I tried so hard in reviewing the clinical practice guideline and I thought my game followed it exactly. In the real world, there were many things that weren’t been written in the guideline. I needed to ask my physician friends to be a consultant (I would like to take this opportunity to say thanks to everyone again). About graphic design, I admitted that the art design of the game wasn’t that great. My digital painting skills weren’t so good too. I spent days drawing each character, but the result didn’t look so professional.
However, this project didn’t require so much expertise in programming or art design. So, I was able to finish it.
User experience vs. development time
User experience (UX) is another area that many players didn’t like in the game, especially the quality of a tutorial level and the User Interface (UI). If I wanted to spend my time polishing these areas, it would require a lot of time. I had to find a balance between UI/UX and development time. In this project, the reason that the UI had to be like this is that the project that I studied their code did UI this way. It took some time before I had enough skill to create any UI I want. The problem is that was a late stage of the project, and it would be too time-consuming to do a major change of the UI at that time. So I kept the UI like this at the final version.
3.1 Marketing result
After released the game, I tried to do marketing activities in various channels (I stopped marketing after a few months because of low profit). I would like to summarize lessons learned as:
- Embedding of ads tracking code in the game is very important otherwise we had no mean to measure the performance of our ads. Code embedding also helps us target ads later if we want.
- People engaged more with gameplay trailer than launch trailer. Maybe because people didn’t understand what the game was when they watched the launch trailer. But they understood the gameplay trailer because it resembled the treatment they had studied.
- Publishing ads on Facebook, Instagram, and Audience Network got a better result than selecting just some of them. All of them got the same cost per result.
- Emerging countries market, especially Latin American and Southeast Asia, engaged with the ads the most. I’m not sure what is the reason it was like that (even at present).
- After I published the app for a few months, it was banned from Facebook, said that it contained violent. Actually, the ads were just the gameplay trailer. I didn’t understand how it was charged like that. I appealed for several times, but the ads team didn’t respond. However, the cost-per-result wasn’t profitable for some time. So I stopped Facebook ads after a few months. In the end, I spent 71,697.52 THB (around $2,200) on Facebook ads. Last month, I came back to spend on Facebook ads, but it was just a small amount of budget.
- One thing I think it was a mistake is that I didn’t create a Facebook Page on the launch day. I used my personal Facebook at that time. I felt that the personal account was enough. I planned that I wouldn’t buy ads, but I ended up buying it eventually.
I didn’t do many things with this. I didn’t track installation. In the 3-month period, the CPC was 1.8 THB and I got 3,000 clicks. The result was quite similar to Facebook. The emerging market was well engaged with the ads. In the end, I spent 5,360.94 THB (around $168) on AdWords.
Other media, influencers, community
- I tried sending Press Release to news websites and blogger about gaming, this included gaming in general, mobile gaming, and indy game. I also sent it to the media about technology, medical education, medical apps, etc. The total number was around 50. No one responded or wrote about the game at all.
- I tried pitching the game to many related Facebook Pages, especially a page that I thought doctors might follow, as well as pages of medical student associations. There was someone read my message most the time, but nothing happened. No one shared or did anything on the page.
- I tried pitching the game to Facebook Group that related to the medical community. Only a few people were interested regardless of how big the group was. But when I pitched it on a group of indie game developers, I got some interest. But they were not my target group anyway.
- Reddit had strict rules and many internet trolls. I pitched the game on one group and gained a lot of hate speech (I thought they didn’t like anyone to sell something in the group). Eventually, I posted to only one subreddit. It was a subreddit of DoctorsThatGame. I got a warm welcome there. People in the group were really nice although the number of members wasn’t so big.
- I answered two questions on Quora (example). I gained some traffic (not so big). But I liked it that many people upvoted my answer.
- I sent introduction emails to researcher/academia about serious games, people in serious game industry, medical education startups. A few people answered me. But nothing happened in the end.
3.2 Downloads and revenue
I released the game on iOS and Android stores on April 24, 2018. I stopped marketing at around 3 months after release because I thought downloads and revenue wouldn’t much increase at that point. Now is over a year. The chart is as below. The revenue was high near the launch date and it became quite viral in Thailand.
At July 8, 2018 I got 16,547 downloads (iOS 10,368; Android 6,179) 2,148 sales (iOS 1,597; Android 551). So it was a 13% conversion rate. The revenue was around $6,422. App Store and Play Store deducted 30% from revenue. So the remaining were $4,495. I deducted the $2,368 ads cost and $296 development cost. In summary, the net profit was $1,831 which were only a third of the revenue.
Based on the number above, it was $3 profit per working hour. If I work 6 hours a day, 22 days a month. I would get $396, which were definitely not enough to be a full-time job. But if we see this as a master thesis that also generated some income, I thought it was OK. And it also helped me achieved my objectives of demonstrating my skillsets.
One thing to keep in mind is that I can achieve this number because it became a small viral in Thailand. I thought there was a sense that the game developer was Thai physician and they wanted to help. If I didn’t have this viral, the revenue would be much lower. In the chart below are percentages of revenue by country.
UPDATE May 30, 2019:
At present, I got 26,801 downloads (iOS 14,827; Android 11,974) I got 3,332 sales (iOS 2,395; Android 937). So, it’s 12.4% conversion rate. The revenue was $9,963. After 30% app store deduction, the final revenue is $6,971. If I deduct the ads and development cost I paid when I launched and $250 recently, the net profit is $4,057.
3.3 What you should consider when creating a game like this
If you want to develop a game for a medical professional market like I did (or other niche markets). Let’s say it’s a team of 3 persons. Each person gets a salary of $1,500 per month (Southeast Asia rate), so it would be a total salary of $4,500 per month, or if you want to solo-develop with the same amount of income. Because the margin is just one-third, you have to have a $13,500 per month. If you want to sell at the same price and business model (paid to unlock) as mine ($2.99), you have to have around 4,500 sales per month. This is just for covering the cost. We still don’t have a profit. The conversion rate is around 10%, then you have to have 45,000 players per month.
I googled and found that there’re around 20,000 graduated physicians in the US. There’re around 3,000 in Thailand. I don’t have data from other countries. And our apps will never have 100% market share. What I want to say is it’s not easy to find 4,500 players within the medical industry to pay us $2.99 a month for playing a game, even with a global market. Thus, it’s not easy to do a project like this as a consumer business, except go with the non-profit route.
Typically, if the market size is small, the business’s product should have a high margin, in order to be a sustainable business. One problem for creating a game for a very niche market like this is that players expect a high production quality game (in term of features, graphic, performance, etc.). They will think our game is too expensive for the quality. Because the players have played a lot of game that targets the mass market. These games can invest in high production cost because their market is enormous. A report said that there’ll be 5 billion smartphone users in 2019. You can compare to the number of medical students above to see how different. From the reason above, the game company can create a very good game and sell it at a very low price, even be free to play (this type of game has another way to make us pay). In the niche market, we can’t do that.
This topic has many details. In the next occasion, I’ll discuss the potential business model if I have time.
3.4 Non-financial outcome
Although the financial outcome is not so good, I got two things that I think it’s really valuable.
I discovered a work I love to do.
Before I started this project, I didn’t think much. I just want to do a project that isn’t too difficult, but be able to demonstrate my skills, as I previously mentioned. But after I did this project for a while, I felt that this project fulfill me a lot. I felt like most of skills I gathered throughout my life had been used in this project. I felt like I was born to do something like this.
I felt that I will be very happy if I can live in a small town, with a relaxing vibe. I wake up in the morning, start game development during the day, get some exercise in the late afternoon, spend time with family in the evening. and self-development in the night. It would be really great to live like that. I think it would take some time before I can reach that point (I might change my mind someday, I change my dream quite frequent actually, haha)
Supports from game players from around the world.
I’ve never created a project that benefits people from the diverse location around the globe like this before. I’m happy every time my app get a good review in app stores, or when people privately message me from various channels, saying that they like my game, they want to support me, or they volunteer to do something e.g. translating to other languages. All of these make me feel the value in what I did. This also helps to fulfill me.
This image showed some supports from many places. I captured a few weeks after launched.
Although serious game development is something I’m passionate about. However, I couldn’t make it profitable enough to be a business. And I also have other things that I’m passionate in. Thus, I’m sorry to say that I need to pause my game development for a while. I still didn’t want to completely stop. At least, I would like to do it as a side-project. If I have time and opportunity, I will come back to develop Resus Days more, or other medical games. Please stay tuned. You can follow an update on the Facebook Fan page of the game.
In the next occasion, I want to discuss more on challenges that I faced when I develop a medical serious game. I think there is some uniqueness that you won’t see in other industry. I hope I have a chance and motivation to write it someday 🙂