20 Jul

Our Hidden Object Adventure Is Finally Here!

Since 2023, we’ve been dreaming of creating a hidden object game, one that blends immersive storytelling, innovative gameplay, and rich fantasy lore. After months of hard work, we’re thrilled to announce that Claire Darksage and the Accursed Objects is complete and will soon launch on major casual gaming portals!

Available in two editions (Standard and Collector’s) the game will release on Windows, with select portals offering a Mac version. Whichever edition you choose, prepare for an unforgettable adventure filled with mystery, strategy, and danger.

A Kingdom Cursed, A Heroine Unmatched
The boundaries between realms have shattered. From the rift pours a scourge of accursed objects: each one pulsing with corrupting magic. Some radiate holy light, others ooze primordial darkness, but all share one terrible purpose: They consume life itself. Where these objects touch the earth, the land withers. Where they brush against flesh, souls crumble to dust. The greatest wizards have fallen trying to destroy them. Yet in this spreading blight… a spark remains.

Claire Darksage isn’t just a bounty hunter: she’s the last hope of a dying kingdom.

As the final Elemental Harmonizer, she alone holds the power to cleanse the accursed objects ravaging the land. Where others see cursed relics, she sees a battle between light and shadow: one she was born to fight. But this mission will demand more than skill. More than courage. It will change everything.

The fate of the kingdom rests in your hands. Will you help Claire lift the scourge before it’s too late?

Stay tuned for release dates and more information—we can’t wait for you to play!

14 Feb

Hidden Soulmates: A Free Hidden Objects Minigame for Valentine’s Day

Hidden Soulmates is a hidden objects minigame you can play directly in your browser, completely free. In the game, you’ll be presented with a Valentine’s-themed scene filled with various images. Some of these images form pairs, and your goal is to find and click on those pairs to remove them from the scene. Completing Hidden Soulmates should only take a few minutes.

Play Hidden Soulmates now 🙂

Hidden Soulmates v1.0

Built with Unity 6Hidden Soulmates is designed to load fine in most browsers, though loading times may vary depending on your internet connection. It’s important that your browser is updated (it must support WebGL 2).

Hidden Soulmates screenshot

Creating this minigame was a fun break from the larger project we’re currently developing. We enjoyed every step of the process, from designing the Valentine’s scene to fine-tuning the gameplay with help from some friends.

Happy Valentine’s Day! May your day be filled with love, laughter, and maybe a little hidden object fun 🙂

10 Feb

Spooky Dwellers 1 in Czech

Hello! Spooky Dwellers 1 on Steam has just leveled up! The game now fully supports the Czech language, making it more accessible and enjoyable for our Czech-speaking players. Whether you’re a new adventurer or a returning player, you can now dive into the spooky world in English or Czech!

This localization update wouldn’t have been possible without the help of a dedicated player from the Steam community, who generously volunteered his time and expertise to translate the game from English into Czech, and we’re so grateful for his contribution. Thank you for helping us bring Spooky Dwellers 1 to even more players!

Our localization process also utilized the functions we previously introduced, which are designed to extract localization phrases directly from our Unity projects.

So, what are you waiting for? Immerse yourself in the eerie adventures that await: puzzles, secrets, or just enjoying the spooky Match 3’s levels! We hope you love playing Spooky Dwellers 1!

01 Feb

Extracting Localization Phrases from our Unity projects

In our Unity projects, we handle localization using the No Such Localization component, as detailed in a previous post. Specifically, we use the phrases version, where phrases act as keys to retrieve strings from a comprehensive table. Switching languages is as simple as changing the table for text (for images, we use a different method).

We maintain a large database of strings and extract a subset tailored to each game’s specific requirements. To do this, we compile a list of all the phrases used by the localization components within a given game. Our process is straightforward: we open each scene in the Unity project, retrieve all localization components, and store their phrases.

The following code demonstrates our approach. We’ve integrated this functionality into a Unity editor menu option, automating the entire process of retrieving phrases and writing them into a text file.

public class IKIGamesEditorTools
{
    private const string LocalizationMenuPath = "IKIGames/Localization/Extract All Phrases";
    private const string LocalizationFileName = "localization_keys.txt";

    [MenuItem(LocalizationMenuPath)]
    private static void ExtractAllLocalizationPhrasesInAllScenes()
    {
        HashSet<string> phrases = new HashSet<string>();
        List<string> scenePaths = GetScenePaths();

        foreach (var scenePath in scenePaths)
        {
            ExtractPhrasesFromScene(scenePath, phrases);
        }

        WritePhrases(phrases, LocalizationFileName);
    }

    private static List<string> GetScenePaths()
    {
        List<string> scenePaths = new List<string>();
        foreach (EditorBuildSettingsScene scene in EditorBuildSettings.scenes)
        {
            scenePaths.Add(scene.path);
        }
        return scenePaths;
    }

    private static void ExtractPhrasesFromScene(string scenePath, HashSet<string> phrases)
    {
        UnityEditor.SceneManagement.EditorSceneManager.OpenScene(scenePath, UnityEditor.SceneManagement.OpenSceneMode.Single);
        ExtractPhrasesFromLocalizationComponentes(phrases);
        // No need to close the new scene since OpenSceneMode.Single opens it as the only active scene
        Debug.Log($"Processed: {scenePath}");
    }

    private static void ExtractPhrasesFromLocalizationComponentes(HashSet<string> phrases)
    {
        foreach (NoSuchStudio.Localization.Localizers.TMProTextLocalizer localizer in Resources.FindObjectsOfTypeAll<NoSuchStudio.Localization.Localizers.TMProTextLocalizer>())
        {
            if (!string.IsNullOrEmpty(localizer.phrase))
            {
                phrases.Add(localizer.phrase);
            }
        }
        foreach (NoSuchStudio.Localization.Localizers.TextLocalizer localizer in Resources.FindObjectsOfTypeAll<NoSuchStudio.Localization.Localizers.TextLocalizer>())
        {
            if (!string.IsNullOrEmpty(localizer.phrase))
            {
                phrases.Add(localizer.phrase);
            }
        }
    }

    private static void WritePhrases(HashSet<string> hashSet, string filename)
    {
        string filePath = Path.Combine(Application.dataPath, filename);
        try
        {
            using (StreamWriter writer = new StreamWriter(filePath))
            {
                foreach (string item in hashSet)
                {
                    writer.WriteLine(item);
                }
            }
            Debug.Log($"Phrases written successfully to: {filePath}");
        }
        catch (System.Exception ex)
        {
            Debug.LogError($"Failed to write phrases to file: {ex.Message}");
        }
    }
}
24 Dec

Merry Christmas and Happy New Year!

2024 is coming to a close, and we want to take a moment to express our heartfelt gratitude to all our customers. We’re excited to continue this journey together into 2025. Your support has made this year truly special for us, with 3 games released:

This Christmas, we hope you find joy and warmth surrounded by family and friends. As you unwrap your gifts this holiday season, we want to share a little something about what’s coming next. In 2025, we’ll be working on a brand-new game of the hidden objects kind. We wanted to complete that project this year, but the workload made that impossible. We have several other exciting projects in the pipeline, and we’ll be revealing more details in the coming months. We’re committed to bringing you engaging and memorable experiences. Thank you once again for being part of our family.

We wish you a Merry Christmas and a Happy New Year filled with adventure, fun, and all the things you love! Cheers to a fantastic 2025 ahead!

04 Dec

Suddenly Meow Christmas is now live on Steam

Exciting News! Suddenly Meow Christmas is now live on Steam! Celebrate the launch with a 10% discount! Don’t miss out on the festive fun and grab your copy today!

Resources for the game: If you like Suddenly Meow Christmas, you may also enjoy our previous Suddenly Meow games:
02 Dec

Solving Level 60 of Suddenly Meow Christmas

Completing Level 60 of Suddenly Meow Christmas for this video took me 101 moves. The key to this level is breaking multiple obstacles (black rocks, chained icons, and the rock that must be broken with the hammer) and then guiding Tim to the fish. Additionally, I managed to collect the star located in the top-right cell. I also destroyed all the crates on the board to earn the Gold Trophy and a power-up at the end of the level. You may want to check out the Suddenly Meow Christmas’ walkthrough.
Suddenly Meow Christmas: Level 60

Here’s a video solution for Level 40. An here’s a YouTube playlist, with videos related to Suddenly Meow Christmas.

27 Nov

Solving Level 40 of Suddenly Meow Christmas

Level 40 of Suddenly Meow Christmas is a tricky one. Fish must be caught by Tim in the proper order; otherwise, the level would become unsolvable, and you’d have to restart it. You may want to check out the Suddenly Meow Christmas’ walkthrough.
Suddenly Meow Christmas: Level 40

You can also break all the crates on the board to earn the Gold Trophy at the end of the level. Additionally, getting the Gold Trophy awards you a free, random power-up.

Here’s a video solution for Level 26. Today we created a playlist on our YouTube channel, with videos related to Suddenly Meow Christmas.

25 Nov

Solving Level 26 of Suddenly Meow Christmas

Level 26 of Suddenly Meow Christmas features double cat action. Tim can’t get all the fish at first because he’s blocked by some gifts. So you’ll have to move Spooky to grab those gift boxes and clear the way for Tim.
Suddenly Meow Christmas: Level 26
Remember that by breaking all the crates on the board you’ll earn the Gold Trophy at the end of the level, and getting the Gold Trophy awards you a free, random power-up. If you need further help, you may want to check out the Suddenly Meow Christmas’ walkthrough. You can also check out video solutions for Level 1 and Level 2 of Suddenly Meow Christmas.

16 Nov

Solving Level 2 of Suddenly Meow Christmas

The second level of Suddenly Meow Christmas introduces water tiles. Tim can’t walk on these tiles, so you’ll need to create paths around them. Since the main goal in this level is to lead Tim toward the fish, we must form matches to expand the path and connect Tim to his fish.
Suddenly Meow Christmas: Level 2
You can also break all the crates on the board to earn the Gold Trophy at the end of the level. Additionally, getting the Gold Trophy awards you a free, random power-up. If you need further help, you may want to check out the Suddenly Meow Christmas’ walkthrough.