--------- Sections ---------

<Index> - >DevDiary< - <Characters> - <Lore>

ichi rss

--- DevDiary ---

<Back>

- 2023/05/13 -

This week, I worked on the HUD, the Time Rain and the Splitter.


The Heads-up Display has been shown partially in a number of previous entries, but it remained purely cosmetic up until this point. Its role is to show all the necessary information about the current state of the game.



- The control icons to the far left light up whenever the player tells Pawn what to do. This cluster of icons is not 1:1 with the key presses, but instead 1:1 with Pawn's acknowledgment of commands given to her.

- The "Pawn" row shows the remaining lives. SDR takes on the "evil" variation of lives display, i.e. the game is over as soon as the life counter reaches 0, as opposed to the "kind" variation, where the game ends when the player dies while having no extra lives left.

- The "Score" counter shows the current score. SDR also has a hidden combo counter, which starts at 1, increments every time Pawn absorbs a soul, and resets whenever Pawn is hit or swings the Blade of Banishment. Absorbing a soul awards the player with 1 score point, multiplied by the current combo counter. This system is tuned to give out more points for absorbing multiple souls in a row without attacking, although with certain leeway - the combo counter only increments when a soul is actually absorbed, so the player is free to attack while the first soul is still en route.

- The "Enemy" counter shows the number of remaining enemies. Although this part of the HUD is redundant with the game field itself, I added it to make the HUD more information-complete, for theoretical instances where the HUD is the only part of the game screen visible to an observer.

- The "Stage" counter shows the number of the current stage. In SD2020 it was always set to 00, which I intended to indicate a stage outside of the main campaign. Said campaign is expected to have at least 20 stages.

- The difficulty icon shows the current difficulty level.

- The "Time" counter starts at a predetermined number that depends on the current stage and counts down at a rate of 150 units per minute. Once it reaches 0, the Time Rain is triggered.


Time Rain being triggered.


The Time Rain is a continuous barrage of pellets that can be deflected, but cannot be reflected. The Time Rain starts once the timer reaches 0 and does not stop until Pawn defeats all enemies, or takes a hit. Being hit immediately clears the screen of all Time Rain pellets and sets the timer back up to 75 units to give Pawn some more time to relatively peacefully clear the stage.


Originally, the Time Rain was supposed to use completely different graphics for its projectiles. SD2020 still contains the two sprites that I planned to use.

spr_timerain and spr_hellball


These sprites went unused because they looked awkward in motion, and would not let me introduce diagonal trajectories to make the Time Rain harder to dodge.


The Time Rain in SD2020 follows a rather complicated algorithm of generating pseudorandom trajectories for the pellets that is supposed to always produce the same trajectories for the same stage, to make the stage compatible with the planned replay function. SDR's Time Rain currently relies on Godot's build-in random functions, which lie outside of my control. I would like to utilize my own RNG, but SD2020's RNG is too clunky and potentially unreliable. So for SDR, I will research a way to make a better RNG. Right now I lean towards the 1D cellular automaton route.



The last entity present in Sunrise Doll gameplay has finally been carried over - the Splitter. It has been used as the icon of this very website for a while. The Splitter's function is to split the incoming reflected pellets into three smaller pellets, potentially hitting multiple enemies with a single reflected pellet.


Like so.


The Splitter is technically considered a type of an enemy by the game, but exceptions are made for the enemy counter and for stage clear conditions. the Splitter cannot be destroyed, and despawns on its own once the stage unloads.


I considered reworking the way the Splitter behaves, but for now I've left it the way it behaved in SD2020: the T-shaped split is aligned with the original pellet's trajectory, so hitting the right splitter in the screenshot above at a 45 degree angle will wipe out the three remaining enemies as well.


The upper corners no longer lack teleporters.


The first stage of Highly Responsive to Prayers.


With these three additions finally in place, I have to polish up certain UI elements, such as the Stage Clear screen, design the system options menu, and then I can begin working on the campaign of Sunrise Doll proper.