Hello, each and all! It's time for another scheduled update on the progress of Mirama, the bullet-dodging adventure game I've been working on with friends:
- @pedipanol on music🎵
- @DAKU on pixel art 🎨
- @ocatg on portraits and CGs 🖼️
Since the last update, we've truly begun working on Chapter 2, the Demers Mining Company in Siçikiaak. Exciting times!

About Siçikiaak
So, Mirama's story takes you on a globe-spanning adventure through the five WORLD PILLARS, sources of the aether used far and wide. These are:
- The coasts of COSTAGONA, their tides carrying the ebbs and flows of FAITH.
- The cold caverns of SIÇIKIAAC, their gems a symbol of PROSPERITY.
- ZENSUKT, the hub of knowledge, genesis of boundless DISCOVERY.
- The dunes of CORAIDO, where COMPANIONSHIP prevailed over the scorching heat…
- Lastly, the cliffs of MONSFATA, embodying precipitous CHANGE.
(names subject to change if I messed up and named one of these places "poop" in another language, like the Audi e-tron)
Without going into too much detail, these destinations won't quite live up to their reputation. In Siçikiaak's case, its gold rush era has come and gone. Its locals are left picking up the pieces, never having touched their fair share of the wealth before it all came tumbling down.
Nevertheless, they perdure.

The mines are silent and empty, but the people outside remain. And, so long as they do, dreams of a better day live on.
Puzzles in Chapter 2
In previous updates, I shared the puzzle mechanic featured in chapter 1, water logs that must be used to traverse water.

I'm trying to make every chapter feature a different kind of puzzle, so it was time to go back to the drawing board. I kept the same principles as in chapter 1:
- There should be no randomness. Once you know the solution, you can re-apply it to future playthroughs -- and a speedrunner should never need to reset a stage to get good RNG.
- Clearing a puzzle should be quick. They need to have a good flow when the player knows the solution.
- Puzzles are a breather, not the main focus. These sections should not pull an average player away from bullet dodging for more than 5 minutes at a time, even on a first playthrough.
Taking all of this into consideration, and the level's setting, I ended up designing puzzles around guiding minecarts through rotatable tracks.
Here's a first look with very placeholder art!

While the interactions players can take with these puzzles are fairly limited (rotate tiles and start the cart), there's more than enough creative potential for a game like Mirama. It's possible, for example, to add new tiles with unique properties, or design puzzles around guiding more than one cart. I'm confident that this will lead to an experience you won't find repetitive, even if you replay the level multiple times! 
I first had a different concept for it, but it was quickly left on the cutting room floor. It used lasers that you'd reflect from crystal to crystal, and you'd be able to rotate the latter to influence the path the laser would take. It quickly felt like this could become repetitive and was pretty shallow feel like I could come up with designs that felt different enough from one another, and I wanted the puzzle mechanic for this stage to work in-universe without aether.
Why is that? There's something I still want to try out, so... I guess we'll see! 
How these work
In their constructor, carts get passed a function that returns the tile they're over based on their position and angle. They check this function once they exit the boundaries of their current tile.
If there's no matching tile, the cart explodes. If the entry angle is incompatible with the returned tile, the cart explodes. Otherwise, the cart adjusts its position and angle based on the tile type and a static timer, then repeats this process until it sits over a goal tile.
Each puzzle is also a game object in its own right. It's responsible for resetting every cart under its ownership when one explodes, and for activating mechanisms when the solution is found!
And that's all I got for today! I know there wasn't much code talk in this update, but I hope you found it interesting nonetheless. Thanks for reading!!
