Inspiration

I found an image from the German Bauhaus School of Design online and was inspired by the mesmerizing shapes and appealing color palettes (Google "Bauhaus posters" if you want to see what I mean). It really felt like a game waiting to be made, so I did! The philosophy of the school was that form should equal function, and for me that meant not separating art and gameplay, but having the art BE the gameplay.

Because I (and many of my playtesters) wanted to play more than a single game every day I also added time trial modes that allow you to play endlessly (as long as you can keep matching tiles). The bigger the field, the harder it is.

You also might notice some similarities with my previous game Blokkit in that it is a grid based game with levels of different sizes and a daily mode.

What it does

The daily mode of the game presents you with a grid of tiles with different patterns, colors and rotations. You have to identify tiles that have a perfect match (appear more than once on the grid) and click one of them to make them all dissapear. The goal is to get 16 matches as fast as possible. Every daily game (posted in r/MosaicMatch daily at 1AM UTC) will have a unique subset of colors, rotations and patterns that might appear, creating a unique visual experience (and challenge) every day.

The time trial modes start you off with 60 seconds, and time counts down instead of up. When you score a match, you get some extra seconds on the clock. However, whenever you make a mistake, time gets deducted from your remaining playtime.

How I built it

I built Mosaic Match entirely in Unity, using a vector shape drawing package to create and animate all the assets right within the game engine.

The music is a royalty free song by artist "Astrofreq" called "Shady Places" that I'm using under the Pixabay content license.

Challenges I ran into

Locales. Getting daily puzzles to run the same daily when people can be playing all over the world is hard. I have to correct for dot/comma differences and dd-MM or MM-dd notations and then convert that into a single level for the whole world to play. The same went for sharing high scores when some locales use a dot and some use a comma in their notations. Lots of details to figure out!

API's and typescript are also not part of my usual tech stack so I have to keep learning as I go. Once it works it's fun though!

Accomplishments that I'm proud of

My previous game Blokkit was my first foray into Devvit and the Reddit ecosystem. I spent a lot of time learning the tech stack and how to create interactions between Reddit and the Unity game engine. This experience helped me tremendously this time around. Getting Mosaic Match up and running on Reddit was now trivial, which gave me a lot more time to work on building and polishing the game itself. This also gave me room to try some new things that didn't work last time with Blokkit like leaderboards and interactive splash screens.

I'm very proud of the game I've created, and I'm excited to get people to play it!

What I learned

Animation principles! I tried to make all animations snappy and satisfying, so I had to do a little deep dive into animation animation principles like, easing, stretching, etc.

I also learned about design by studying the Bauhaus School of art and creating a set of tiles/symbols that I think look pretty but also work inside the game setting by being readable, distinct and fun!

What's next for Mosaic Match

Creating a spirit of competition around the game. The daily mode timed aspect makes it an ideal game to compare scores with friends and the world. Right now scores can be posted in a comment, but an endless list of faceless times is not very inspiring. The #1 player gets featured on the post splash screen, but an in-game leaderboard with snoovatars would be a great addition. After that I'd like to add player retention mechanics like streaks and sub flairs.

Built With

Share this project:

Updates