top of page


Based on the popular Swedish children's books, LasseMajas Detektivbyrå (also known in english as The JerryMaya Detective Agency) is a brand new 2D-platform adventure game following the two young detectives solving crimes in the small town of Valleby.


Gameplay Designer, Level Designer, Programmer, QA

Dev Time:
May 2021 - June 2022
2D, Puzzle Platformer, Adventure
Hybrid (Both offline and online)

Page is Currently Under Construction!


My Contributions


The go to LasseMaja Guy

Re-reading all the Books
Understanding the Characters and Locations
Keeping track of the inside of the project 


 Gameplay & Level

Core Gameplay Loop
Creating Gameplay Pieces in Project
Creating and Iterating on Levels


Prototyping and C# Scripting

Prototyping Map Functionality
Creating Dialogue System
Keeping track of and Fixing Bugs
Filling in for Programmers where needed

Becoming One with the LasseMaja Universe

Finding my place in the team

Coming into the LasseMaja team at Gro Play was so much fun, but also a bit scary. As this was my first experience working on a commercial project I wanted to make sure I did not do anything unnecessary or unwanted.

I tried to analyze the situation I was put in to find areas where I could use my school experiences. Some things I did during the initial weeks were working on the documentation and implementing a bug reporting tool.

LasseMaja Team

Here is the team! Some people may or may not have been photoshopped in


Getting to know the source (again)

One crucial task I took on during this time was also to fully immerse myself with the LasseMaja-IP. I was already fairly familiar with the books as I had read them as a child. But now I re-read them in full Game Creation analyzing mode.

I took on the role of “Lorekeeper”. Whenever there were any questions about anything related to the IP I was there to answer them.

Documenting Characters and Locations

As I read the books I documented things like useful art references of characters and places. I also made a comprehensive list of all the characters with visuals and appearance rates.

By doing this anyone in the team could easily find the info they were looking for whenever they weren’t able to ask me directly.

Creating a prioritization plan for Content

Since I was the lorekeeper I also had the best grasp of which characters and locations are the most crucial to the world of LasseMaja. And as such I was tasked with deciding on a priority list for characters and locations to be created.

When making the list I made sure to consider things like; amount of appearances, how prominent the appearances were and how well the characters and locations fit together.

Here is an example of how I reasoned about what characters should be prioritized based on the character Barbro Palm:

Barbro and Museum is needed


Barbro Palm is a crucial character because:

  • Appears in 8+ books

  • One of the first characters

  • Has had a lot of interactions with other characters

The Museum Location is crucial because:

  • Appears in over 5+ books

  • One of the first locations

  • Barbro Palm is strongly associated with it.

One Museum related character should be prioritized 


Pernilla Gren is a "good" addition because:

  • Appears in at least 2 books

  • Has a clear and neutral role in the museum

Cornelia Hammarberg is a "bad" addition because:

  • Appears in only 1 book

  • Was the culprit in the one book so she appeared in and will probably never be seen again.


Pernilla gets chosen as the second character

Main Mechanic Iteration

Creating a 2D platformer with longevity

Figuring out how to make a 2D platformer into a subscription game

When I joined the project it was already clear that the game was gonna be a 2D Platformer with different Level Design Components with a singleplayer co-op:y feel. Together with my mentor Alex Bräysy we finalized those components and had a good feel for how a platforming level would be played out.

But it needed to be connected to the core of LasseMaja mysteries in a good way. But how do you keep the game simple for kids, have a clear structure and with a subscription payment model in mind…

Designing pieces for randomly generated mysteries!

After some deep design sessions and a lot of prototyping we came up with a randomized system that would satisfy all the needs of what the game should be and it was fun to play.

In this picture you can see illustrated how the game handles different variables when it randomly generates a mystery.


We have a mystery!

And so the game has its core loop, mysteries! We designed mysteries with the goal of letting the player explore the world of Valleby (the town's name) and interact with the different characters by following clues to different locations.

In the game I did a lot of puzzle-level designing and location-level designing. I also was in charge of making sure every game scene's systems were set up correctly so that the game could generate properly.

It's expandable.

The system of randomly generated mysteries is easily expandable. At its initial release the game includes the initial east side of Valleby, a handful of those important locations and a bunch of characters.

But for future releases any developer can easily add a new character, a new location or more platforming levels with ease without it interfering with any pre-existing content or systems.

Level Design

Creating systems that enhance the LasseMaja experience

Below are some of the systems I was in charge of both design wise as well as implementing with code into the game.

Navigating the World

Creating a 2D platforming game while trying to retain the iconic Valleby map that appears on the first page of every book was a big challenge as it was easily confusing. But together with a lot of in-game world hints together with the minimap system we managed to create something readable.

I coded the functionality for the map that translates the character location in the world to the map. This system together with the shaking houses to indicate where you are supposed to make for a good combo.


Connected to a mystery


Not connected to a mystery

NPC Character Handling

Depending on the circumstances of when and why a character spawns in, they might have some accessories on them. For instance, if you find the priest randomly on the street, he is his normal self. But if you find the priest lurking in the library where a crime has been committed, well then he looks awfully suspicious (decked out with accessories).

I was in charge of coding this NPC handling system, making sure to set it up so that all the characters have their specific conditions set up so that it always feels accurate (a character with black hair can’t have blonde hair for instance).

Randomized Dialogue System

The dialogues also needed to be set up to work randomly. While Alex Bräysy did most of the writing and translating of the text, I was in charge of making sure that it worked grammatically in the game when randomly put together.

Together with splitting up names of things and different gender-specific words for different languages, the dialogue system is set up to work for most future language additions that would be wanted. It is also friendly to add more characters and locations.


What I'm proud of:

Working for real

As a tiny person I had never had a real job before. So going into this first as an intern and then as an employee was scary. But I feel like I quickly managed to find my stride and manage work and free time in a good manner.

I also feel like I managed to have fun with everyone at Gro as we worked, getting to utilize all my puns and dad jokes to the fullest while still keeping a steady workflow.


Filling in where it was needed

During the project's different phases I feel like I managed to switch into the position that was always needed. Starting off as Lorekeeper and in charge of QA, to gameplay and level designer, to content designer and general bug killer.

I always tried to help the other developers in their tasks if possible as well as doing the things that are my specialty so that everyone else could focus on their own most important tasks. This also led to me sometimes just doing whatever I wanted to do. Some of these things I saw as potential future problems someone else might have to fix. And I was told by the team this was very appreciated.

Getting to utilize my skills and learn new ones

And by doing all these different things meant that I got to learn a lot about everything called game creation. I got to utilize my skills from school as a designer, my skills in fitting into a project and my incredible pun library. But I also got to learn a lot of new things, such as animation theories for design, writing more healthy and readable code, the difficulties of creating a commercial game and much more.

I even got to do some voice acting! (I’m 3 characters, can you guess who they are?). And a lot of other life lessons have been learned during this amazing year, thanks everyone in the team!

bottom of page