Overview
The spawner systems in Sipher Odyssey determine where players and enemies appear within dungeon levels. These systems are crucial to gameplay experience, directly influencing combat flow and strategic positioning.
Player Spawner System
Functionality
Player spawners are specific locations on the map designated as "spawn points" where players will appear when entering a dungeon level. These spawn points are strategically placed by level designers to ensure a balanced entry point to each encounter.
Key Features
- Spawn Point Allocation: The system requires a number of spawn points equal to the number of players.
- Overflow Handling: If there are more players than available spawn points, the system will reuse spawn points starting from the first one.
- Blockout Integration: Spawn points can be placed within Gameplay Scenario Blockouts. When a blockout is loaded, all spawn points maintain their relative positions within that blockout.
Implementation Notes
Spawn points are typically positioned near the Gate In of each level to ensure a smooth transition between maps, while avoiding placement near traps or obstacles that could cause immediate damage to players.
Enemy Spawner System
Functionality
Enemy spawners are rectangular areas within the map where enemies can appear during encounters. Enemies spawn at random points within these designated areas, creating varied combat experiences with each playthrough.
Key Features
- Rectangular Spawning Areas: Each enemy spawner covers a specific rectangular area of the map.
- Blockout Integration: Each Gameplay Scenario Blockout contains exactly 4 enemy spawners for consistent encounter configuration.
- Room-Based Organization: The system detects and assigns all enemy spawners based on the room they are located in, creating a clear room-to-spawner relationship.
- Proximity Detection: Currently, spawners are sorted based on proximity to player spawners. Future implementation aims to improve this by using room-based detection.
Spawner Labeling
When the Dungeon Architect generates a dungeon, spawners are automatically detected and labeled according to their room location:
- Spawners 1, 2, 3, 4 = Room 1
- Spawners 5, 6, 7, 8 = Room 2
- And so on...
Encounter Wave System
Current Implementation
The encounter system spawns one wave at a time (unless flagged as a concurrent wave), with each wave assigned to a specific enemy spawner in the appropriate room.
Wave Rotation
- Each wave is assigned to one enemy spawner in its designated room
- When all spawners in a room have been used, the system resets to the first spawner in that room
- If a wave is configured for a non-existent room (e.g., Room 2 in a single-room dungeon), it defaults to Room 1
Room-Based Wave Assignment
Waves in the encounter system are tagged to specific rooms:
- Waves 1, 2, 3, 4 = Room 1
- Waves 5, 6, 7, 8 = Room 1
- Waves 9, 10, 11, 12 = Room 2
- Waves 13, 14, 15, 16 = Room 2
Future Enhancements
The development team is exploring potential improvements to the spawning systems:
- AI-Driven Spawning: Using artificial intelligence to determine optimal enemy spawn locations based on player positions, map layout, and other contextual factors.
- Dynamic Spawn Adjustment: Real-time adjustments to spawning based on current battle conditions and player performance.
- Room-Based Detection: Improving the detection system to identify spawners by room using Cover Blockout emitters from Dungeon Architect.
Enemy Spawner 2.0
Overview
Enemy Spawner 2.0 is an enhanced system in Sipher Odyssey that governs how and where enemies appear during gameplay. This updated spawning system provides greater control and predictability for both designers and players, while enabling dynamic difficulty balancing through the Meta tool.
Encounter System Structure
Each map level has one encounter file assigned to it, which defines the spawning behaviors for that level. The encounter system focuses on population control rather than traditional wave-based spawning.
Key Parameters
- Max Wave Population: Total number of enemies for a specific wave
- Max Concurrent Enemy: Maximum number of active enemies from this wave on the map at once
- Initial Wave Spawn Delay: Time before the wave begins spawning (default: 0)
- Max Concurrent Spawn: Maximum number of enemies that can spawn simultaneously (default: 1)
- Spawn Interval: Time between enemy spawns (in seconds, with 1 decimal point precision)
- Is Counted Flag: Determines if enemies count toward the total enemies of the map
- Is Concurrent: Allows waves to execute simultaneously for complex encounter design
- Spawner Label: Optional specific spawner selection for strategic enemy placement
- Enemy Type: List of potential enemies that can spawn in this wave
- Weight: Chance of spawning each enemy type
- Hit Count Modifier: Difficulty adjustment per enemy type
- Hit Count Modifier: Difficulty adjustment for the entire wave
Spawning Algorithms
Enemy Spawner 2.0 supports four primary spawning algorithms:
1. Wave Based
The traditional spawning method where enemy groups appear in predetermined sequences.
2. Infinite Wave
Continuously spawns enemies based on defined conditions without an upper limit.
3. Backfill
For win conditions such as Survive, Eliminate Target, and Protect Object, backfill maintains a constant enemy presence:
- Setting Max Population = 0 (infinite) with Max Concurrent = 6 will maintain exactly 6 enemies on the map at all times
- Multiple "infinite" waves can run concurrently (e.g., infinite melee spawner + infinite range spawner)
- Wave start delays can stagger enemy types (e.g., bomber waves starting after melee waves)
4. Infinite Backfill
Combines infinite waves with backfill mechanisms for persistent challenge.
Advanced Spawner Mechanics
Enemy Spawner 2.0 includes sophisticated logic for spawner management:
Spawner Volume Management
- Exhaust and Reactivate: Once a spawner volume is used, it becomes temporarily unavailable for subsequent spawns
- When all spawner volumes have been used, the system "reactivates" all spawners
- Before reactivation, spawners are re-sorted based on player location
Player-Based Spawner Sorting
- Solo Play: Uses the player's location (ignoring bots)
- Multiplayer: Calculates the "center point" of all players' locations as a reference point
Spawner Groups
Spawners are organized into two categories:
- Non-Label/Generic Spawners: Default spawning locations
- Label Spawners: Specialized locations for specific enemy types
Spawner Selection Logic
For waves WITHOUT a spawner label:
- Only uses non-label spawners
- Reactivates all non-label spawners when exhausted
For waves WITH a spawner label:
- Looks for unused spawners with the matching label
- If all labeled spawners are used, reactivates all spawners with that label
- If no spawners with the required label exist, uses the next available non-label spawner
ECS-Type Spawning
For advanced Entity Component System enemies:
- Configure the EncounterManager with SipherMassEncounterDataModel
- Create an Encounter Data table with type MassEncounterData
- Use MassGroups instead of standard Groups
- Configure MassEnemyList with:
- UseECSType: Toggle to enable ECS type enemies
- ECSEnemyData: Define the Data Asset for ECS-type enemies
Setup Guide
- Configure encounter rows with appropriate Groups settings
- Set Max Population and Max Concurrent values according to desired enemy density
- Toggle "Need Override Modifier" to control hit count modifier inheritance
- Define Scaling Modifiers when custom difficulty is required
- Set Weight values to control group selection probability
- Configure EnemyList with appropriate weights and modifiers
Last Updated: March 4, 2025