Greetings! Here comes a guest post from me, Teddy, since this update relates basically only to the technical side of the game!

Let’s begin with a screenshot from the game. I hear screenshots are popular here on TikTok!

Wow! What a screenshot!

So that’s some very rudimentary stuff going on in bona fide split-screen local co-op. It mostly works! And by mostly, I mean barely.

We at first actually wanted shared-screen co-op (like Secret of Mana), but we quickly realized we had way too many mechanics that made almost zero sense like that (Phase Shifting), and some mechanics that made exactly zero sense like that (Twilight Shift). So, uh, we’re doing it split screen!

Like the people know who’ve rummaged around in my code (an activity only slightly more pleasant and nearly as unsafe as rummaging through a landfill), the game is an architectural wonder. Kind of like the leaning tower of Pisa! Or the sprawling favelas of Rio!

I don’t obfuscate my code (for non-coders: obfuscating code means using tools that will turn the code into gibberish, making it nearly unreadable after a decompilation). I’m proud to say that the code base of Secrets of Grindea is the only code in the world which would actually be easier to read if it was obfuscated!

Alright, enough of my patented humor! It’s Halloween, not Ha-ha-ween!

Seriously though, while Grindea’s code strangely enough hasn’t been a problem in the development of the game, it is very McGyver, and “if it works it works”. We haven’t really been hampered by it since I’m the only programmer on the project, and most of the Clean Code-things are aimed at teams where it’s important that everyone writes somewhat sane code since they’re all going to interact with each others’ stuff. That is, until now!

While the game obviously is made to be played in multiplayer already, it functions with a very strong assumption that there will only be one player per machine. Thus, here are the systems that are currently functionally singletons:

PlayerInput
Dialogue
UI Rendering
Menus
Other menus
More menus
Lighting
Sound
The camera
Same-zone teleporting
The local player itself

And all that delicious pasta will now have to be separated and remade into proper tortellini! So far, player input, dialogue, cameras, HUD, zoning and the ingame menu work in local co-op mode. Some are fully functional, and others work with caveats!

It’s an interesting task though, to be sure! But it’s also a bit scary, because for the first time of the development, I actually feel like there might be a point where it turns out it doesn’t work as well as we want it to. Or, that some change has worsened the “normal” playing of the game in some unacceptable way. Perhaps in some way that we can’t reasonably fix, causing us to not be able to release the local co-op (or release it on a permanently separate branch).

Now, apart from the local co-op, there’s something else going on in that screenshot, which is impossible to see visually!

And that is that the game is now running with FNA instead of XNA!

XNA was an experiment by Microsoft, that got initiated in the late 1980s, and discontinued a few years later. In 2010, I met a guy in an alley who had secured a floppy disk (8-inch) with the last release they ever made, XNA 4.0.

Now, people who’ve been in the game long or know their way around code knows that XNA was the bee’s knees there for a while. Truly revolutionary stuff. Creme de la creme, as it were.

And here I was, with a fresh install.

Anyway, since it got discontinued around 2013, and tapered down much earlier, the last Visual Studio version that actually worked well with it was Visual Studio 2010. You could hammer it into later versions as well, but there were a lot of issues and both the IDE itself and build time was slower. It was so crazy, that when my Windows 7 computer started to wheeze and cough, it turned out it was literally more efficient for me to emulate my old Windows 7 machine from Windows 10, than to try to cram XNA into Visual Studio 2017 and the likes. Yes, I benchmarked this. I will say though that OS emulation is insanely good, so maybe it isn’t that crazy.

Here is a screenshot of the start of my workdays for the past 7 years or so:

Ah, good old VMWare! And look at that toxic productivity LinkedIn-fodder background I’m sporting! Living the dream!

But anyway, even emulated Windows 7 is starting to be eaten up by the Langoliers now, and almost every program in existence constantly reminds you about the security risk you’re exposing yourself to, and how they’re going to end support any day now! I’m happy to report though that not a single service I used actually ended their support, but with Visual Studio 2022 (and Visual Studio Code) actually being pretty good, and FNA being a necessary step anyway if we want to port the game to consoles – which local co-op is a stepping stone towards (fingers crossed) – I felt that the time had finally come!

FNA works well, but there are certainly some unexpected differences. For one, my preloading system was, uh, quite naïve. It just ran in the background when it felt like it, and loaded whatever was coming on up. It… works, but sometimes everything wasn’t preloaded in time – which meant that the main thread also needed to load something. And in XNA, when two threads (in this case a background thread and the main thread) tries to load content for the game at the same time, one of them will simply interrupt the other, which leads to gibberish for one or both of the textures. Some of you might’ve seen corrupted textures in the game at some point (people with slow machines more than others). That’s the reason for it!

In FNA, though, this doesn’t lead to the occasional buggy texture, it crashes. So a lot of my time (and the time of our new intern, Charles G.P. Thomàs-Coudex, who if he’s going to replace me can at least show me the decency of acting as my intern for a year or two before the singularity hits) has been spent making a more robust background loading system. Unfortunately it’s a bit less performant (going full yolo tends to be efficient), but it’s passable and I think I’ll be able to tweak it into being more than fine!

So. Uh. I don’t really know where I’m going with this. It’s fun but a lot of work, I guess! And that’s pretty much that, I think!

Happy Halloween, everybody!

Hello everyone! Hope you’ve all had a great summer! We’ve been enjoying some time off ourselves, recharging our batteries with friends and family (hence the lack of update last month), but now we’re back at it again and ready to share what’s been going on.

The big news is that Stable is finally updated!! That means NewGame+ and Custom Game is now fully playable for everyone who owns the game! Of course, the update has been out on frontline for a while now, which means we’ve already received tons of valuable feedback, and over the past weeks, we’ve been busy fixing bugs, sorting through your suggestions, and making sure everything runs as smoothly as possible.

One common piece of feedback we’ve seen is that players would like a way to re-purchase or rebuild pins they’ve discarded. We understand where this comes from, but for now we’ve decided to hold off on implementing such a feature. One reason is that we want pins to feel valuable – if you’re able to mix and match too easily, the fun and randomness of the system loses some of its charm. Being lucky enough to find a strong pin should feel exciting, and that sense of luck gets watered down if it’s too easy to retrieve a pin you’ve previously thrown away. It also makes the decision of which pins to keep less impactful, since the consequences are less meaningful. That said, we’re still very open to feedback on the matter, and we’ll keep listening to your thoughts as more people play the Stable version!

So, what’s next on the agenda? I’ve said it once before, and I’ll say it again: Local Co-op! This is a feature that many of you have been looking forward to for a long time, and we’re excited to finally give it the attention it deserves. We’ve already had some initial discussions on how to best make it work, and while there’s still plenty of design and technical details to figure out, we can’t wait to get started. Of course, how much time we’ll be able to spend on it depends a lot on how many new bugs appear in the Stable update. Fingers crossed!

As always, thank you so much for playing, testing, and sharing your feedback! It really means the world to us.

Hey everyone!

Time for another monthly recap, and just like last time this one’s been all about testing, testing, and even more testing! After the big push to get New Game+ and Custom Game ready, we’ve spent another month squashing bugs, tweaking balance, and doing our best to break the game in as many ways as possible (so you don’t have to).

Now, after tons of testing and fixes, we finally pushed the New Game+ and Custom Game patch to Frontline a couple of days ago!

For those of you who haven’t hopped into Frontline yet, here’s what’s new:

Players who’ve seen the game’s True Ending can now dive straight back in with New Game+! You’ll get to replay the game with your hard-earned items, levels and cards intact, but with all kinds of new twists. Enemies get shuffled around, they’ll have their own pins (just like you!), you can collect multiple cards per enemy. You might also run into a boss that’s previously only lurked in Arcade Mode…

If that’s not enough chaos for you, Custom Game lets you push things even further. Here you can mix and match settings to craft your very own nightmare (or dream) run! Want permadeath? Go for it! Want healing to hurt you instead? Why not! You can limit your max level, crank up enemy damage, or get creative with a whole bunch of other modifiers. If you try this one out, let us know your favorite settings!

Of course, with great new features come great new bugs, so we’ve been busy fixing everything from unexpected crashes when talking to NPCs, to pins that refused to behave. There were a few days where Little J seemed determined to break the entire game by crashing if you didn’t have enough gold to upgrade, but we finally put him in his place!

If you’re on Frontline, you’re our heroes – thank you for helping us find these issues! And if you’d rather wait for the Stable release, don’t worry! Once we’re confident everything’s nice and stable, we’ll roll these updates out to the default branch and other storefronts in about a week or two. And if you’re not on Frontline yet, but wish to be, here‘s a guide on how to join!

What’s next?

If no major bugs show up, we’ll be setting our sights on something many of you have asked for: Local Co-Op! It’s still early days, but we’re excited to see if we can make it happen.

As always, huge thanks for sticking with us and helping Secrets of Grindea grow into the best version of itself.

Until next time!

This month has been all about one thing: testing!

In short, we’ve been going through the game with a fine-toothed comb, both together and separately, trying to catch every little issue that might be hiding in the code. We’ve tested Custom Mode, New Game+, and of course, the standard vanilla mode as well. While it’s fun to play around with all the fancy modifiers and changes that come with the custom settings, it’s important that nothing breaks in the original experience either. After all, every bit of code we add for new features or settings runs the risk of causing unexpected bugs in other parts of the game. As a result, we’ve been bouncing back and forth between modes, squashing bugs left and right!

Our goal is to get a Frontline version of the beta out for public testing within the next couple of weeks, but that timeline depends on how many more issues we encounter. Fingers crossed it won’t be too many!

During testing, we also revisited an old topic: how to visually indicate when a save file is a New Game+ run.

We tried a few different ideas, including an icon of Grindea next to your character, though we ended up feeling it might confuse players as to what it actually means. In the end, we decided on something more straightforward: a simple “NG+” text badge.

Here are the two versions next to each other for comparison:

We think the clean text version (shown at the bottom) does the trick without adding any unnecessary confusion. Sometimes, simpler really is better!

That’s all for this month! Hopefully by the time the next recap rolls around, many of you will be trying out the new beta and helping us iron out the final wrinkles.

See you then!

Hello again! Time for another update on what we’ve been working on lately, and this one’s a fun one!

Multiplayer is now fully integrated in New Game+! We’ve tested all the critical points we could think of: cutscenes, transitions, pins, enemy replacements, and so on, and everything should work as intended. Of course, as always, we’re counting on you to help sniff out any bugs we might have missed once this goes live.

Custom Game mode is also implemented, and yes, it works in multiplayer too!

What in the world is custom game, you might ask, as we haven’t mentioned that before?! Well, essentially it’s a mode in which you can pick and choose between a number of settings, creating your own version of the game, in a way.

Here’s a list of the Custom Game settings currently available:

Gameplay Settings

  • Pins: Toggle whether pins drop from bosses.

  • Enemy Pins: Enable random pins on enemies.

  • Enemy Pin Totems: Whether the game spawns totems that apply pins to nearby foes.

  • Randomized Monsters: Shuffle which enemies appear in what areas.

  • Randomized Treasures: Mix up the loot in chests.

  • More Than One Card: Enemies can drop multiple cards, stacking the effects of each card.

  • Hyper Elites: Tougher elite enemies may appear.

  • Hyper Farm: Enemies become stronger and drop more loot the longer you grind.

  • Alternative Awakening Crystal: Replaces the card collection objective with… a very different kind of challenge (spoilers: Grindea fight).

Difficulty & Progression

  • Maximum Player Level: Set your own level cap.

  • Increase Health With Levels: Adjust HP scaling.

  • Experience Multiplier: Change how fast you level up.

  • Enemy Damage Multiplier: Make enemies hit harder (or softer).

  • Card Drop Rate Multiplier: Tweak how often cards drop.

  • Healing Strength Multiplier: Adjust how effective healing is.

Chaos Settings (a.k.a. “Candy Curse” Inspired)

  • Enemies Drop Hazards on Death: Just like the Candy Curse!

  • All Enemies Elites: Every enemy becomes an elite version.

  • Darkness Descends: Evil Eye-like blue eyes spawn constantly; break them or go blind.

  • One Slice Mode: A perfect guard followed by an attack deals massive damage (think 9999+ territory).

Whether to keep all these options is up for debate, but currenly, we’re leaning toward letting players go wild as much as they want.

Meanwhile, we’ve also implemented the first draft of the New Game+ unlock!

When you return to the main menu after finishing the game, you’ll see a popup letting you know it’s unlocked. Here’s a short video of that process in action (with placeholder graphics), and a screenshot with the finished version of the popup graphics for good measure:

Lastly, a quick update on the Production Book:

After going through the test print a few times, we’re honestly not completely happy with the quality. As you can see in the image above, the printing process at KDP adds a white border between the pages even though the size setting and bleed is correct. This sort of ruins the double page-spreads and generally looks off and low-quality. Because of that, we’re now leaning toward doing a limited edition print instead of offering it via print-on-demand. We’ll keep you updated once we’ve looked into more options!

For now, thanks for sticking with us as we inch closer to the big NewGame+ update!

Until next time~

Hello fellow Collectors!

Spring has sprung here in Sweden, and with the snow melting away, we’ve been busy polishing up some new cutscenes for NewGame+! Let’s dive in, shall we?

First up, a sneak peek at the visual effect for resetting time to kick off a New Game+:

Obviously, the UI window is using placeholder graphics, so more polish to come, but we’re pretty excited about the vibe so far!

Next up, Pin Man is back with a bang! This cutscene shows how he activates enemy pins in the arena, adding an extra twist to fights from then on:

The next time he returns is in Flying Fortess, at which point he creates the totems that will appear here and there from then on:

We’ve also been working on something to spice up your grinding a little bit. In New Game+, the longer you farm enemies in an area, the stronger they will get… but, the drop rate will also increase! In other words, the more effort you put in, the juicier the rewards. Just our way of making farming a bit more dynamic (and a bit more dangerous)!

Now, Teddy will be deep in the multiplayer code jungle, making sure all of these New Game+ features work smoothly whether you’re flying solo or smashing mobs with friends… More on that soon!

Enjoy the spring weather until next time :D

The months go by quickly and soon it’s spring! Let’s take a look at what we’ve been working on since last:


First I cleaned up this background so it could be used for a transition to the Grindea battle in the newgame+ version.

Then, I made a new background for Arcade Mode, which needed different entrances/exits depending on which area the room appears in:

The clocks in the background are sketches left by me for Fred, who will make his own versions and animate them. In fact, he’s already made a couple of versions which can be seen here:

While Fred was working on that, Teddy played around with the background, creating this starry effect:

I also finished up Aevum’s portrait so you can actually talk to him:

The latest iteration of the room can be viewed here, although the light effect behind Aevum is still a work in progress:

Finally, today’s the one year anniversary of Grindea’s official release!! To celebrate, we’re having a week-long sale where you can get the game at a 20% discount! Be sure to get it if you haven’t yet :)

Time for another monthly recap, and as expected, a lot has happened since last time!

First up, let’s take a look at these animated versions of the Totem we mentioned in some previous posts. These are all now functioning and looking really nice, thanks to Fred’s animations:

As for New Game+, we’ve spent a lot of time working on cutscenes to start off the mode and some where the traveler from Arcade Mode pops up to add his pins to the mode. As always, cutscenes are among the most time-consuming for us to make, both in terms of programming and animation, and there will be quite a few to add.

Here’s a little sneak peek of a new animation for the traveler’s appearance in Story Mode, as well as the portal that will take you to the Grindea battle mentioned in the previous recap:

Speaking of cutscenes, there’s also a new face we’ve got to introduce:

This is Aevum, a time wizard in charge of time crystals in Arcade Mode. He’ll get a proper cutscene the first time you’re eligible for a time crystal and die, at which point he’ll introduce the concept of time crystals and rewind time for you for the first time.

He’ll also appear in Story Mode as the one who starts New Game+ for you! Next up on our to-do list is making an arcade room and a portrait for him.

***

In other news, we’re currently in discussions with Makeship about creating a plushie version of one of the characters from Secrets of Grindea, and we decided to ask our community for their opinion on which character should be released as a plushie.

As you can see below, Bag was the clear winner out of our three suggestions:

If this project moves forward, we’ll begin by launching a petition to gather at least 200 pledges from people interested in purchasing the Bag plushie! If we manage to reach that goal, production can proceed, and everyone who wants one will be able to keep a grouchy-pouchy at home.

Stay tuned for more details soon!

This will be a short post, as we’re all with family right now to celebrate the holidays and relax for a bit. Nevertheless, I wanted to check in here and wish you all a very happy new year – let’s make 2025 a year to remember in all the best ways!

Happy New Year!

And stay tuned for the next monthly recap on February 1st :)

Hello everyone! We’re back with another monthly recap! Getting a bit chilly here in the north, some snow has already started falling. It’s been a pretty productive month, so let’s dive right in!

First up, Fred has spent a lot of time sketching designs for the Totems mentioned last month:

On the gameplay side, we’ve decided to make one significant change: Totems now spawn alongside mobs that must be defeated before the Totem itself can be destroyed. Previously, it was a bit too easy to rush in and take out the Totems first, so hopefully this change will make them stick around a little bit longer!

Fred has also made some animations featuring the titles of the enemy pins, so you’ll actually know what they’re doing! Here’s a bunch of his suggestions:

Which one is your favourite? :D

Next, we’ve had a meeting where we discussed how the potions are going to function when starting and looping through Newgame+. We decided that instead of redoing potion quests to unlock the potions & potion slots again, your rewards for completing the quests will be key items that give them a passive boost. One increases their effect duration, another makes them x% stronger, and a third speeds up their recharge rate. For every loop of newgame+, these key items will grow stronger as well.

We also decided that to unlock the third catalyst, players won’t need to collect all the cards again (after all, you’ll begin your newgame+ run with a full card album). Instead, you’ll face off against Grindea herself! The two other catalysts will be required to unlock this fight, and empty slots symbolizing them will replace the cards on the cave wall.

Initially, we considered replacing the Bishop fight with the Grindea battle, but decided against it. The Bishop fight is a pretty fun and memorable encounter in our opinion, and we didn’t want to lose that experience entirely in Newgame+ loops.

We also took some time to discuss the bow: in Newgame+ you’ll now be able to purchase a +1 upgrade for your bow with each Newgame+ loop. Just a small money sink that will increase your bow’s strength and keep it viable!

Other than that, the production of our Secrets of Grindea art/production book is now officially complete! We’ll be ordering proofs soon, and once they’re approved, the book will be ready for purchase. As mentioned before, our plan is to time its release with a major game update, so stay tuned for more details on that front!

That’s it for this month’s recap! We’re excited about these changes and updates, and we hope you are too. As always, thank you for your continued support and feedback – until next time!