It's been a busy couple weeks since my last dev log, so here's a quick update on development:
- We started working with a sound designer, Erin, and it's been very exciting hearing the game come alive with all the new sounds.
- Added a scheduling system for spawning plants and enemies. Plants show up based on the terrain you're flying over, and some rare plants will only show up under certain conditions like a full moon. Similarly, enemies live in specific regions and get stronger/weaker under a full/new moon, respectively.
- Added a summary screen at the end of each flight that shows you all the plant clippings and seeds gathered that night.
For this dev log, I wanted to explain the potion brewing system, one of the core features of Moonflight. I'll be skipping over the plant gathering and gardening/greenhouse parts of the process so I can focus on the distillation, mixing, and brewing steps. Here goes!
DistillationThe potion brewing system Bel learns from the Baba Yaga uses two types of ingredients, plant clippings and extracts. While clippings can be gathered in the wild or taken from plants cultivated in Bel's greenhouse, extracts require the use of a distiller.
MixingExtracts contain concentrated magic and are the main factor in determining the "effect" of a potion, while clippings are unrefined, and contribute less to the effect of the potion, instead imparting a "region" element to the potion. By using a ritual Mixing Circle to organize ingredients prior to brewing, Bel can create potions of varying strengths and effects. The Mixing Circle relies on the concept of affinity links between effects and regions to determine the outcome of a potion. Each plant's regional element is determined by where it grows, while the effect is based on the magical properties of the plant. The affinities are as follows:
- moon / ruins
- health / forest
- attack / mountain
- speed / fields
- poison / swamp
- sight / ocean
The Mixing Circle is made of linking pathways running around the edge of the circle, as well as through two triangular symbols in the diagram's center. When a plant clipping and extract sharing an affinity are placed along one of these lines, the affinity link is activated, and the potion becomes stronger.
The formula for determining potion strength is as follows:
- 1 Point for each common ingredient
- 2 Points for each rare ingredient
- 1 Point for each affinity link
The maximum potion strength in theory is then 18. Each point contributes to the duration that the potion remains active, at a ratio of 1 Point to 15 Seconds. Depending on the effect of the potion, the total strength points are converted with different ratios to determine how potent the potion is - for example, does this health potion restore one, two, three, or more hearts. As well, potions can be classified into three groups: basic potions, strong potions, and special potions. When a potion is made with 7 Points or more, it becomes a strong potion. Strong potions have both a primary effect and a secondary effect. Special potions are strong potions made with specific combinations of ingredients, and they have unique effects.
Primary and secondary effects are determined by the mix of plant clippings & extracts. As mentioned, extracts correspond to specific effects, so they are the main factor. Clippings correspond to a regional element, so instead we use the effect that region shares an affinity with. For example, a clipping of a swamp plant would give the potion a poison effect. There is a ratio of 3:1 between extracts and clippings in determining the potion effect.
That might sound complicated, and it kind of is... but in practice, it's enough to remember to use plant extracts with the desired effect, and to use affinity links to make stronger potions. The system is modeled after cooking in The Legend of Zelda: Breath of the Wild, and is actually very forgiving; there's just enough variability introduced by the complexities to keep things interesting, I think.
BrewingThe last step in the process is brewing! My early design for this was more of a mini-game, where you had to stir in different directions while racing against the clock. This step also influenced the outcome of the potion. We tried a few different approaches, but none of them felt right.
We ended up scrapping the mini-game idea and created a more meditative process. Now, this step simply involves stirring the cauldron, while Bel muses about each ingredient in turn. Her reflections are generated at random with a simple text generator system. The goal was to build a calming, reflective moment where the player can unwind after the shmup gameplay segments, by providing these tiny glimpses into Bel's thought process as she stirs.
As with other parts of the game, we want to respect the player's time and make it easy to play in small chunks. For both the distillation and brewing steps, you can skip to the end result by selecting the Auto option instead of Distill or Brew.