LOL Surprise! Movie Maker

Development Process

About The Project: This is a casual game where the goal is to unlock as many LOL Surprise Dolls as possible for your collection. BB dolls (aka LOL Surprise Dolls) are purchased with coins earned by playing mini-games and can be used in the movie maker part of the app. The movie maker creates unique LOL  Surprise  stories with customizable backgrounds, props, and music tracks. It also has a way to record audio for movies.

Technology Used: To complete this project the Unity 3D game engine was used. TortoiseSVN was the version control software and Asana was used for planning.

Above: My profile in 8-bit form on the company site

My Contributions:

Created a feature for the LOL subscription benefits service: I worked on an in-app purchase task for LOL Surprise! Full Access (a game subscription). The task was ensuring a subscriber always has a 100% chance of unlocking a BB doll in a daily reward item.

Before:

The goal of this task was to make sure the first ball a subscriber opens per day has a guaranteed BB drop. These were the steps I was given to test the problem:

  1. Open app from device homescreen
  2. Subscribe as a VIP member
  3. Try to collect your daily reward (go to the time menu in the debug menu to force a daily reset if need be)
  4. Open up a ball and see what rewards are given

After:

This shows how the issue was resolved. After opening the device homescreen, subscribing as a VIP member, collecting a daily reward, and opening up a ball the first reward given is a baby doll. It behaves as expected where a ball opens three items and one of those three items is a BB doll for a VIP subscription user.

The Solution Development Process: I hard-coded the first value of an array called rewardData (in code it would be rewardData[0]) to only unlock a BB doll and I added the LoadRewardContent function in an If statement that checks if you’re a VIP subscriber. Included down below is a more in-depth look at the development process.

  1. Skimmed through a script called CapsuleOpeningController.cs that determines what prize the player gets when opening a ball. Determined an array called rewardData was storing what items got pulled from the ball.
  2. There was an If statment that had some logic on forcing a BB doll already but it was missing a condition that checked for “sub_vip” people so I went ahead and added that. The “sub_vip” variable is something inside of the in-app purchase script (IAPController) that was forgotten in this If statement.
  3. Double checked to make sure the logic in this If statment was correct. The boolean variable lForcedBB is first set to false and then true after checking if a user is part of the game subscription so that was working as expected.
  4. Worked on this code snippet in a function called OpenCapsule (this is where the in-app purchase If statement is as well). Added a couple lines of code that forced the first item in the array to be a BB doll item type.
  5. These functions are called in the For loop. Basically, they make sure the “characters” asset bundle (refered to as BB dolls or baby doll characters in the game) get pulled no matter what if a user is part of the game subscription.
  6. These are all of the different asset bundles that can get pulled when a ball is opened.

Improved several user interfaces: There were a few cropping issues on certain screens for the iPhone X and Sony Xperia II (specifically the Seek n Shop mini-game and the boutique store). I solved these issues by moving some different UI elements around.

One of the user interfaces in the boutique that had cropping issues.

Fixed the problem for the iPhone X resolution by moving the picture that says “Stlyin Sis” more to the left.

Fixed the problem for the Sony Xperia II resolution by moving the picture that says “Stlyin Sis” more to the left.

The Seek n Shop mini-game had an issue where the heads of the characters at the bottom of the screen were partly hidden.

Fixed the problem for the iPhone X resolution by moving the characters heads up so that it was not hidden.

Fixed the problem for the Sony Xperia II resolution by moving the characters heads up so that it was not hidden.

Bratz Total Fashion Makeover

Development Process

About The Project: This is a story driven match 3 puzzle game that follows Cloe, Sasha, Yasmin and Jade in their Bratz adventures. Bratz Bucks are earned as the player progresses that are used for purchasing clothes, hairstyles, makeup, and even furniture. The end goal is to become a social media star and outsmart the Tweevils.

Technology Used: To complete this project the Unity 3D game engine was used. TortoiseSVN was the version control software and Asana was used for planning.

My Contributions:

Fixed a VIP Subscription bug: At one point, people who had a Bratz game subscription would continue to get a pop-up asking them to become a Bratz VIP even though they already were one. Specifically, this would happen after a VIP sub ran out of lives and the pop-up said ‘Become a Bratz VIP’ below the Continue pop-up.

Below is a video showing the problem. After getting a VIP subscription, playing a level, and running out of lives the VIP pop-up appears which is incorrect.

An example of what should happen. There aren’t any VIP pop-ups occuring after losing a match 3 puzzle as a VIP member of the game subscription service.

The Solution Development Process: To make the VIP pop-up hidden for VIP members and not hidden for others it took an If statment that showed the pop-up based on a player’s game subscription status.

  1. The first thing I did was create a GameObject variable called theTrialOfferContainer within the ContinueMenuController_LossAversion.cs script. Then, in the Start function I wrote an If statement that checks for whether or not the player is a game subscription VIP user. If they are, then the VIP pop-up is hidden and if they’re not then the VIP pop-up will be displayed on the screen.
  2. The next step was assigning the GameObject (theTrialOfferContainer) within the Inspector. A user interface called “Continue Canvas Loss Aversion Stack” contains the VIP pop-up which is called “Holder Bottom VIP”. The VIP pop-up “Holder Bottom VIP” is assigned to the theTrialOfferContainer GameObject Variable.
  3. This is “Holder Bottom VIP” – a user interface that was assigned to theTrialOfferContainer GameObject variable. It is the Bratz VIP pop-up.

Updated Google Play Billing: There was an issue where the Google Play store rejected a new version of the game being rolled out because the Google Play billing library was outdated. I facilitated an update for the in-app purchase package so that Google Play billing v4 was used instead of v3.

Created documentation for APK file generation: Several team members were having issues with creating an APK file to use for testing purposes. I made a step-by-step guide on how to troubleshoot errors and successfully run a build so that future problems could be avoided.

Click here to view the guide.