This devlog covers the return to development of Dolphin, a 2D RPG about a marine biologist built with the GDAU engine. After a break, the focus is now on organisms' ability to interact with their environment, a crucial element for the game.
Break and Reflection
After releasing an app called Range on Steam, a much-needed break was taken to avoid burnout. Despite initial excitement to return to Dolphin, the break became necessary for rest and rejuvenation.
- The break included playing games like Oblivion Remastered and Old School Runescape, reading "Designing Games" by Tynan Sylvester, and getting back into running.
The time off allowed for a return to Dolphin with renewed enthusiasm. The developer acknowledges the frequent questions about the game's completion date. However, maintaining enjoyment and preventing development from feeling like a chore are the priority.
-
Releasing Dolphin is important, and experience was gained from releasing Range.
-
The book "Designing Games" has provided ideas for creating a testable version of Dolphin for feedback and iteration.
Dependency Stack and Core Mechanics
A "dependency stack" visualization, inspired by "Designing Games," helps prioritize core game mechanics. The core of Dolphin involves the player interacting with environments, saving them from corruption, and restoring them to health.
-
Progress has been made on islands that support different organisms and a basic corruption system.
-
A key missing element is how organisms react to environmental changes caused by the player.
The current focus is on developing this organism-environment interaction.
Litter Collection and its Impact
A key interaction involves the player collecting waste/litter from islands. This action has several effects:
-
Increases the player's conservation skill.
-
Provides crafting materials.
-
Invites new or different organisms to inhabit cleaner islands.
Previously, example scenes representing various types of waste (plastic, paper, aluminum) were created, but they needed refactoring.
Litter Class Refactor
A parent "litter class" was created to represent waste. It includes:
-
A collision shape.
-
A sprite.
-
An instance of the foraging node for player interaction.
Aluminum, paper, and plastic litter now inherit from this parent class, simplifying the creation of new waste types.
Spawning Litter
The entity spawner class will now be used to spawn litter. Currently, spawning is manual, but the goal is to spawn litter based on in-game time. This requires a custom timer node that works with the game's time manager.
Time Manager and In-Game Events
The time manager class, an autoload singleton, handles the day/night cycle and weather. To trigger actions based on in-game time, the following signals were added:
-
Dawn
-
Noon
-
Dusk
-
Midnight
Litter Spawner
A new "litter spawner" scene, extending the entity spawner, connects to the midnight signal in the time manager. This triggers the "spawn litter" function at midnight in-game time. A "max litter" variable prevents over-saturation of litter on islands. The spawner queries nodes in the "litter" group to track the total number of litters.
Organism Spawning and Pollution Saturation
The organism spawner class is being updated to consider litter saturation when spawning organisms.
Adjusting Spawn Density
The spawn distance parameter in the poison disc sampling algorithm (used for organism placement) is being modified based on pollution saturation.
-
Higher pollution saturation (more litter) results in a greater spawn distance and lower organism density.
-
Lower pollution saturation (less litter) results in a smaller spawn distance and higher organism density.
A helper function calculates the appropriate spawn distance based on the pollution saturation level.
Runtime Spawning
The process of organisms spawning has been changed to take place when the player interacts with the world.
Spawn Mode Enumeration
A "spawn mode" enumeration has been added to the organism spawner class:
-
Manual: Used for flora, organisms are spawned at development time using tool scripts
-
Automatic: Used for fauna, organisms are spawned at runtime.
Setting the spawn mode to automatic triggers spawning in the ready
function when the scene loads.
Impact and Future Plans
These changes create a world that responds to the player's actions. Cleaning up litter leads to more organisms spawning. Future plans include introducing a greater variety of organisms, each with unique combat challenges and crafting materials.
Conclusion and Gratitude
The week's development was enjoyable and productive. The developer plans to continue creating shorter, simpler devlogs covering all aspects of development. Gratitude is expressed to Patreon supporters, including Mike Conway, Ben Van Dyken, David L, Kyle Van Riper, and Delu.