Reading guide
Introduction
Company and Game
Blue Giraffe is a game development studio, part of the company Gamehouse Original Stories. The studio is in Eindhoven and for more than a year now, one of the Blue Giraffes’ teams has been developing storytelling, crosswords game called “Text Express”. The game is live in the USA and Philippines and is planned to be released in Europe IOS and Android in late 2021.

Problem
User acquisition becomes more and more expensive nowadays, so Blue Giraffe is aiming to spend less money on advertisements and has as big as possible organic growth within their new game- Text Express.
They want to achieve this by implementing social and community features in the game, which will enhance the community experience in Text Express, lead to growth in the user base, and have more people staying in the game for a longer time, without having money spent on acquisition.
Assignments
As the company already has social and community features, which are planned for Text Express, the graduation assignment is to imlpement them by following the project's development approach, do research for pre-determined requirements of all feature given from the company, and then by following pre-determined design implement the following:
Overview:
During my graduation project at Blue Giraffe, I was asked to create features which will lead help increasing the organic growth in the game and enable further development for social and community features in the future. First, I was asked to design and implement a new, more flexible, and dynamic flow for creating store deals for Text Express's in-game shop. After that, I have implemented Google and Facebook social login in the game, so that I allow players to safeguard their progress and allow the future development of community features and systems. Next, I have created a "Friend Referral" system using deep links, that can allow players to invite their friends and this way increase the organic growth in Text Express. As a final feature, I have implemented Push Notifications using the 3rd party service- OneSignal. The Push Notifications, allowed an easy way to communicate with the player base of Text Express, even when the players are not playing the game. Please follow through, to read more about the cool features I have implemented.
Dynamic shop deals system for Text Express' in-game shop.
Text express is a LiveOps game, meaning that developers can change certain elements in the game without having to release a new version of the game (such elements are referred to as dynamic elements). This is achieved thanks to the LiveOps service- Playfab, which serves as a database server, from which the game reads every time it is launched.

All In-App-Purchases (IAP) in Text Express are defined in Playfab and were partially dynamic. Only the price changes automatically within the game when the deal updates in Playfab. If the content of a deal is changed, it would not appear graphically correct in the game shop. This issue was tackled by designing a JSON file which controlls in-game graphical templates no matter what content is changed for the shop deal in Playfab. More about this could be read here.
Dynamic shop deals in Text ExpressSocial authentication in Text Express

Social authentication is a prerequisite that you are identifiable for any social interaction within the game and as well it serves as a protection of your Text Express profile. If you want to save and continue your journey in Text Express on another device, you would be able to do that, if you authenticate with Google or Facebook (the most used authentication services nowadays). For those reasons, I had the assignment to integrate Google and Facebook login in Text Express. More about that you can read here.
Social Authentication in Text ExpressDeeplinks in Text Express

In order to allow the game to be advertised from players to players, I had the assignment to develop a friend referral system using deeplinks, where players can invite their friends to the game and both parties will be granted rewards. The creation of the "friend referral" system, lead to the creation of another feature called "personal notifications", which can be easily used by the developers to reward and send specific gifts to individual players. To read more about the implementation of deeplinks and how I utilized them to create features, which increased the organic growth of the game and improved the social aspect of Text Express, please go here:
Deeplinks in Text ExpressPush notifications

In order to allow the developers of Text Express the opportunity to send notifications to their players whenever they want, all with the click of a button I had the assignment to implement a Push Notification Service. The implementation of Push notifications was achieved by using OneSignal. Not only that OneSignal allowed easy targeting of the Text Express' player base, but the Push Notifications, got also used to notify specific players when there is a reward waiting for them, which was expected to increase the retention metrics in the game. If you want to read more about how the communication between the developers and the players of Text Express was improved, please read here:
Push Notifications in Text ExpressReflection
Overall, my experience at Blue Giraffe was amazing and during my time there, I have grown a lot- not only professionally, but personally as well:
Soft skills
During my time at Blue Giraffe, there was a "sharing initiative" going on, which showed me how useful it is to share your professional experience with others. By sharing my work, I have participated actively in the initiative and I have improved my skills to convey and transfer knowledge and ideas clearly and effectively, in a written or in a verbal form. I have learned how to frequently ask for feedback and then react and iterate on it, with the view to improve myself and my work. The Agile approach in the Blue Giraffe team and having to work together with another developer on the same feature brushed up and enhanced my communication abilities. Having a meeting review every week and talking about the status of Text Express, made me more comfortable being in front of a bigger audience and talking openly about what I have worked on. Last but not least, I have upgraded my organizational skills- as everything I had to do during the graduation project was new to me, I had to thoroughly research and plan my way of work carefully, which every time resulted in a met deadline and successfully implemented feature.
Hard skills
Before implementing a certain feature, a design on its architecture, data, and functionality was made. Doing this for every feature improved my technical design writing and reading skills. Constantly working with more experienced people, taught me how to view and plan a solution for a given task. Being around better professionals, pushed me into using more and better programming principles, such as SOLID architecture, MVC pattern, Observer pattern, Singleton pattern. From that, I learned the importance of programming principles and good code architecture- that it can make a big difference in big projects in terms of code maintainability, readability, and flexibility. Working on Text Express, which is quite a big Unity project, lead to learning and getting to know a lot of different aspects of the 3D game engine, namely UI scalability and rendering, animations, game performance, music, audio, and almost the proper GitFlow (see Evaluation) for a Unity project.
What could have I done better
Although I think I carried through a very good graduation project, there are few things that I believe I could have done better:
On-device testing:
As I would develop a feature in the Unity editor, seeing it work in the editor was enough for me to push my code changes to the common Git branch. However, this bad habit, of not testing a feature on the device, had broken the game to other people and therefore, slowed down the work of other people as well. It would have been way better If I would test on the device first, fix any issues on my own branch, and only then push my changes to the common branch.
Better estimating a deadline
I believe every developer has this problem, but during my graduation project, several times I had said that I can implement a feature in 3 days, but then I work on that feature for over a week. I think, doing better research of your planned work beforehand and not overestimating yourself, will lead to better estimations about how long it will take you to implement a feature.
Programming
Of course, I have tried to follow the best coding practices and principles, but I believe that one can always improve himself and his work. Often when I look into my work, I find pieces of code, which could be done differently and maybe improved. Sometimes removing something which is working and implementing another, improved working solution, could be very beneficial for the product.
Feedback from my mentors
With the view to see where I can improve and what should I focus on to become a better version of myself, I have asked my mentors for personal and professional feedback:


I have also made a feedback video session with my other technical mentor- Roel Verbroeken: He said that during my time in Blue Giraffe, I have learned to work independantly, take important decisions on my own and communicate problems and solutions very well. He also added that, I am a very fast, adaptive and flexible learner and this will help me to excel at coding and programming.
Overall, the whole Blue Giraffe team was very content with my performance and told me to keep the same pace of personal and professional development, which is exactly what I am planning to do!
EvaluationLast updated