Pet Panic
Queen Digital Entertainment Studios
“Relaxing match-3 adventure with dice, animal rescues, and fun events.”
“Pet Panic is a relaxing match-3 puzzle adventure where you solve colorful puzzles, collect dice, rescue animals, and explore exciting worlds full of surprises.“
What I worked on:
WORKING ON NEW AND OLD BLOCKS
During my time at Queen I implemented many blocks and worked on many more fixing bugs and visuals of many.
Below are most of the ones that I impmenented while working at Queen. There are many that i really enjoyed implementing and many I find fun playing with.

TEAM ADVENTURE
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.


TOOLS
While working at Queen I got to work with many other amazing and talented people, and while working I found bottle necks for production and general improements that could be done with tools.
I implemented way for VFX artist to be able to edit and change their VFX in the game without needing a developer to implement a new VFX. I also helped Level Designers with their tools thst they use daily, their level editor. I added features and just small changes that helped them work faster and made their day to day easier.
I worked on many different types of blocks for the Core Gameplay.
I worked on a little bit of everything.
When I first started, I worked mainly in the Core Gameplay part of the game, which would include making new blockers for the game, fixing bugs, and working with Artists and VFX artists to implement art and VFX for the game.
Working on the Core Gameplay were Joakim, a very talented Game Developer, and I.
These are some of my favourite ones I worked on. The Boom Basket, Poison Spawner, and The Pinball but be my top 3 that I worked on.
BOOM BASKET BLASTER

The Boom Basket Blaster is a multi-cell block that requires three continuous hits to be destroyed, launching three Boom Baskets onto the grid.
This block quickly became one of my favorites to work on. It was one of my first fully solo features, and also one of the more fun and interesting blocks in the game. I had a lot of fun building it! Especially struggling with the animations and VFX, which taught me a lot.
Since the Blaster requires three consecutive hits to fire, the animations need to be able to pause, restart, and sync at different times in the animation. This led to many fun bugs. Figuring out how to time the animations cleanly and calculating how many frames of an animation were left so I could sync the projectiles was definitely one of the most enjoyable challenges.
I think if I were to make this again today, I would rely more on animation events to time external logic to the animations, especially since the game depends so much on strong VFX and animation.
It was a really fun learning experience as a part of my first completely solo batch of blocks for the game.
POISON RACK
The Poison Spawner is a multi‑cell block that requires four booster hits to destroy. Each time it’s hit, it destroys all nearby powerups.

This block easily makes my top three favorites to work on. I got to apply everything I learned from animating the Boom Basket Blaster while still picking up new skills along the way.
Working on this block taught me a lot about VFX and Unity’s masking system. The poison area is a single sprite affected by the board’s masks, which caused it to appear in places it shouldn’t.
I worked very closely with Daren, a super talented VFX artist. Together, we wrestled with the masking limitations to get the visuals behaving correctly.
Even though I started working on this block with more animation and gameplay experience thanks to the Boom Basket Blaster, I still learned a ton about VFX problem‑solving.
In the end, we split up the sprite in the material so we could choose where to place poison.
CONVEYOR BELT & CANNON


The Conveyor Belt and Cannon are multi‑cell blocks that move every time the player makes a move. To destroy the block, all cogs and cannons must be cleared.
This was probably the hardest block I worked on. Joakim implemented the base mechanics, and I took over the animation and VFX implementation.
The main challenge came from the masking system I mentioned earlier. The conveyor belt uses masking to create the looping effect at its endpoints, and the mask also prevents the cog from showing outside the block. However, because this block can take any shape, including looping back onto itself, the masking would break, causing cogs to overlap or disappear.
I needed a way to fix this, so I increased the masking dynamically for each cell, and all had to be higher masking than the moard, so it counted as a “separate” mask. As the cogwheels and cannons moved, their masking values updated with them. If the mask was too low, the elements wouldn’t appear. If it were too high, it would show through when the belt looped. It was a very delicate line.
If I were to redo this block today, I would only mask the endpoints and the intersection points. That would avoid having to manage masking for every single cell and make the system far more robust.
HONORABLE MENTIONS
CURSED STONEFACE
Cursed Stoneface was a really fun blocker to work on as it heavily relies on VFX and animation, and I find that very fun to implement.
PINBALL
Pinball was the very first block that I worked on, so it has a special place. I helped implement the VFX and animations for the block.
Towards the end of my time with Queen I got the opportunity to work on some of the games events. The first event I got to work on was the new Team Adventure event. It was the first event that I had features to work on and implement alone. I had previously fixed bugs in other events but this was the first event for me to help implement.

THE EVENT
Team Adventure is an event where you and your team work together to collect tokens. You get 3 tasks that you can complete, one easy, medium and hard task each. The task could range from “create spinners” to “complete x stages in a differnt event“.
The event is a collaborative event that I was a part of implementing and helping designing after implementations dont workout.
TASKS AND BACKEND
When integrating the tasks, I worked closely with the backend developers to ensure each device rotated to the correct task at the correct time.
Every client handles its own local time calculations for the task rotations, while the server only stored the minimal data needed, a float for the rotation time for each task and the event’s start and end times. From that, each device determines which task in the rotation it should currently display and what comes next.
I built the initial version of the rotation system, which simply displayed the current three tasks and swapped to the next three when the timer expired. Later, when we wanted to redesign how tasks rotated, Fredrik took over the system while I shifted focus to implementing all the VFX and animations for the event.
It was a fun mix of technical problem-solving and visual implementation, light server logic and collaboration between client and server, and a rotating task system that would allow each user to share the same task rotations without needing much server implemetation and communication.


Rewards and Claiming
The claiming of tasks and rewards is one of the most important features as the user needs to feel like they did something good and got rewarded for it. You want a happy reaction to laiming something and it should also not be annoying to claim many tasks at once.
I worked very closely with Daren with the claiming feature to get the right responsiveness when you claim a task.
The buttons animate in respondance to the button/task that is gettin gclaimed and the tokens fly in a nice curve. The flying curve is an exposed Animation curve that we lerp with to get the movement we want. The animation curve is set by Daren.
Each different tier of task (Easy, Medium, Hard) spawn a different amount of tokens. The amount can be set by Daren as well so he can controll how many tokens he wanted to spawn.
BOOSTING
Team Boost is an in‑game currency earned by completing other events. When you get a booster, you can activate it to boost the entire team, doubling everyone’s reward payouts.
My main responsibility was implementing all the visual behavior that plays when a boost is activated. I integrated the VFX created by Daren and built the logic that displays the correct boost message: “Bosed by: You!” when it’s your boost, or the boosting player’s name when someone else triggers it. You will always see when someone else boosts the team.
Working on the boosted behavior was genuinely fun, I enjoy hooking up VFX and animations and making the game feel more alive and fun.
The hardest part was getting the boost state to save correctly. We ran into an issue where the next task wouldn’t appear boosted if the player stayed on the same screen. The fix was to check the previous task’s boost state and whether a boost was currently active, instead of just treating each task seperatly. Once that logic was in place, the system behaved consistently across all rotations.



How it started
It started with it being a little choppy with no loading bar bellow but with some tweaking to the math it runs nice and smooth.
BANNER
The Team Event banner was another feature I implemented. It doesn’t use any special animations, but it does include both auto‑scrolling and manual scrolling so players can browse all tasks they can progress.
I populated the UI elements with the required task data and then added the timing and input logic needed for smooth scrolling.
The scrolling itself is a simple lerp between positions calculated from the RectTransforms of the task items, nothing too flashy, but very satisfying to get right.
GENERAL IMPLEMENTED UI




The Super Colorbomb is a special colorbomb that unlocks at level 100 and then gets activated after you win 10 levels in a row. The Super Colorbomb replaces the regular colobomb and does everything double. So the normal colorbomb will remove all pieces of one color the Super Colorbomb removes two colors.

Streak Icon

For the icon I implemented the little green bar that shows how much progress you have made to 10 wins.
For this there is just a tooltip that we use throughout the game. It appears when you click the button and dissapears when you click anywhere else.
Tutorial
This is the forced tutorial finished an dimplemented.
The tutorial “screen” with the arrow is a image for the background that gets placed right below the button so nothing can be clicked other than the button.
Below is the plan to what it was supposed to be, and the video is what we ended up with


Super Colorbomb vs Colorbomb
Below are videos showing the difference between the Super Colorbomb and the Colorbomb. I implemented the basic logic for the Super Colorbomb with increasing from 1 color to two.
The colorbomb picks the merged color and if no color the color with most pieces and so I added a second color so the colorbomb looks for two colors and makes it into a long list of coordinates. Then corts it so it takes 1 color and then the second color.
All other logic is the same from the Colorbomb.


Gem hunter is the second event I worked on and it never got released to the public as it was never finished. It was set up and built by Christopher. I took over when the studio made a pivot to add a boardgame to the game instead. When I was finished with the team event I got put on this event to take over from the paused state it was in.
The Event
The Dig Even, later renamed
Gem Hunter, is a minigame event in Pet Panic where the goal is to dig up cells to uncover hidden gems. The gems come in all sorts of shapes and sizes, from simple 1×2 to 2×4 gem, and even irregular shapes like C‑shaped gems and other fun shapes.
Players can also uncover powerups while digging. Some behave like the rockets and missiles from the main game, while others are unique to the event, like the collectible bomb pieces. Once you gather three, you can fire a bomb onto the board to clear a 3×3 area of your choosing.


Gems
The biggest part of the event are the gems, and they were the first thing I tackeled when starting on the Dig Event.
Most of the gems existed when I started to look around but they did not have their color and all special shapes like the C-shape gems were not implemented. Each gem is a gray scale image that then gets a material assigned to them in the level editor.
I implemented all the special shaped gems as they were treated differently than all others as they were made up of many small gems rather than one gem. All gems consist of the same prefab that just has images spawpt which wouldnt work for the many small gems.
To solve this I added that if it is a special shape meaning it had a prefab then load that prefab so instead of using just one image it loaded a small prefab where all gems were included. This could have been done for all gems but there was no need.
Missiles
When I started on the event, most of the core logic was already in place, so I picked up the thread and continued building on it.
I decided to start implementing the missile behavior. We had a basic missile prefab that spawned correctly, but it didn’t actually
hit anything yet. I started by implementing the movement logic.

Left is where it started with my first test and right where it ended with the missile scarabs. What began as a simple placeholder turned into the missile scarabs, animated, and satisfying to finf. Maybe a little bug like but still fun.


Bomb
I also worked on the bomb. The spawning logic for bomb pieces already existed, along with a very basic “destroy a 3×3 area” implementation.
I collaborated closely with Daren to bring the bomb to life, adding button animations for clicking, resetting, and throwing, and then implementing the animation curve that controls the bomb’s arc from the UI button to its landing spot on the board.
I implemented the VFX and expose an animation curve that Daren could tweak to get the exact throw trajectory he wanted. A simple lerp wasn’t enough here however, we needed the bomb to travel at a constant speed , no matter where it landed. Otherwise, short throws looked slow and long throws looked way to fast.
So I dusted off some 8th‑grade physics and calculated the lerp duration using: duration = distance / speed
With the speed exposed as a float, the bomb always traveled smoothly and consistently across the board.
Dig Editor
In the Dig Level editor the level designers chose what gems that should be in the level. They can place the exact position they want.
For clairity I added so that when they choose the color of the gem it updates the color to reflect the chosen color and when changing the gem shape the gem in the editor updates as well and sets the correct native size.

Other Videos


While working at Queen I often added small tools or improved on tools that made the work flow easier. Usually the tools would be for VFX artists and Level Designers as I worked the closest with them and found friction points while working.

TITLE
–
–
TITLE
–
–

What I am most proud of
I think in general I am proud of just all achievements I have made working on the game. All the things I have learned.
If I had to choose the achievement I’m most proud of, it would be stepping up and taking ownership of features, especially event‑related ones outside the core gameplay, even though it was far outside my comfort zone.

What I learned
There was so much that I learned from everyone at Queen.
I learned a lot about what it is like to release a new game. How to work between frontend and backend developers. I learned a lot of server-related things, and what is important to store on the server and what is not.