
Abiotic Factor & Midnight Ghost Hunt: Online Systems w/ Epic Online Services | Indie Games Week 2026
Audio Summary
AI Summary
Welcome to Indie Games Week 2026, a series of interviews and streams highlighting how indie studios use Unreal Engine and the Epic ecosystem. This session focuses on Epic Online Services (EOS) and features discussions with Sam Malone from Vaulted Sky Games, working on *Midnight Ghost Hunt*, and Jacob from Deepfield Games, lead programmer for *Abiotic Factor*.
Seb, from Epic Games' developer relations team, specializing in EOS, kicked off the session with an overview. EOS is a free suite of battle-tested, scalable online services initially built for Fortnite and other Epic titles. These services allow developers to implement online features like cross-play, cross-platform progression, voice chat, lobbies, peer-to-peer (P2P) connections, and trust and safety features (anti-cheat, player reporting) without needing a backend server, freeing up resources for game development. EOS offers an engine-agnostic C SDK, with free Unreal Engine plugins available for quicker integration. Third-party blueprint support plugins are also available on the Fab Marketplace. EOS supports PC, mobile, and all major console platforms, and games using EOS can be sold on any storefront.
EOS services are categorized into four buckets: Account and Social (Epic Account ecosystem, cross-play, social overlay, presence), Multiplayer (P2P, voice chat, sessions, lobbies), Player and Game Data (stats, leaderboards, achievements, player data storage, title storage), and Trust and Safety (Easy Anti-Cheat, player reports, sanctions, Kids Web Services). All these services are cross-platform. Developers can configure EOS settings and view data through the developer portal, which includes dashboards for player counts and active lobbies/voice rooms. Seb emphasized that EOS is battle-tested, used by Epic and hundreds of third-party games, supporting millions of concurrent users.
A deeper dive into EOS Voice revealed two supported architectures: lobbies and servers. Lobbies, supporting up to 16 players, offer simple voice integration by enabling an RTC room boolean. Servers, supporting up to 64 players, provide full control over the voice room (e.g., remote muting) but require a more involved integration. Voice can be controlled via the EOS overlay or custom in-game UI using SDK API access. Seb clarified that while EOS Voice provides raw audio buffers, advanced features like proximity voice must be built on top of it by developers. He also shared pro tips: using native platform integration for consoles and Steam handles platform-level features like parental controls, and developers must inform the SDK of network or application status changes to ensure proper voice functionality (e.g., muting players when an application goes to the background).
Sam Malone then discussed *Midnight Ghost Hunt*, a 4v4 ghost-hunting take on prop hunt. The game was developed in Unreal Engine 4.27 and used the EOS SDK 1.15.4, with the EOS Core plugin from the Unreal Marketplace facilitating blueprint integration. Vaulted Sky Games utilized almost all EOS features, including lobbies, sessions, P2P punch-through for player hosting, Easy Anti-Cheat, cross-platform authorization, player moderation, reports, stats, and player progression. Sam highlighted EOS as a "one-stop shop" that greatly benefited their small indie team.
For voice chat, *Midnight Ghost Hunt* used three lobbies: separate team channels for hunters and ghosts, and a third channel for both teams. The team channels were straightforward, using EOS lobbies with the RTC room enabled. For the combined channel, they enabled manual audio output to access raw audio buffers, allowing them to implement positional voice. By routing these buffers to an Unreal audio source via a custom child component of the `VIPListenerSynthComponent`, they could apply attenuation, reverb, and sound effects. This allowed for features like "ghosts throwing their voice," where ghosts could make it sound like their voice was coming from a different location, creating immersive and often humorous gameplay moments. Sam noted the technical challenge of transferring audio data between threads quickly to avoid crackling. The game supported up to 8 players in a session (4v4), and they did not encounter rate limiting or lobby size issues.
Sam emphasized how EOS allowed them to customize voice chat to fit the game's fantasy, enabling emergent gameplay and social interactions. He also mentioned that when ghosts are destroyed, they become apparitions that can still provide teamwork in voice chat and, with a specific haunt ability, temporarily use positional voice to taunt hunters. *Midnight Ghost Hunt* launched in early access in 2022 and 1.0 in 2024, available on PC (Epic Games Store and Steam). Sam credited an Epic dev grant for enabling him to pursue the project. He praised EOS for its customizability and for consolidating many features into a single SDK, avoiding the complexity of integrating multiple services.
Next, Jacob from Deepfield Games introduced *Abiotic Factor*, a sci-fi survival crafting game with an old-school visual aesthetic, where scientists must escape an underground research facility. Developed in Unreal Engine 5.4, *Abiotic Factor* uses a custom engine for console changes and the latest EOS SDK. They primarily use EOS for platform login (allowing players to log in with Steam or console accounts seamlessly), session creation/joining, and Steam invites. They also implemented a five-character join code system using session attributes to help players find each other easily across platforms.
*Abiotic Factor* supports two P2P architectures: listen server for in-game player hosting (one host, multiple peers) and dedicated servers via direct IP connection. For P2P listen servers, they designed for a maximum of six players, balancing resources and NPCs. Dedicated servers, while recommended for six players, allow up to 24, with in-game warnings about it not being the intended experience. Jacob noted that switching from Steam networking to EOS for cross-play and console release was seamless, aside from a few issues. One notable challenge was a clock sync issue where out-of-sync player clocks could cause connection failures. Jacob implemented a clever workaround: a blueprint pop-up that detects incorrect time and guides players to fix it. *Abiotic Factor* is available on Steam, Xbox, and PlayStation, with full cross-play. Jacob highlighted that cross-play significantly enhanced the player experience, fostering a connected community across platforms.
Jacob also showcased a UI for NAT type control, allowing players to manually select direct, relayed, or "allow relays" connections as a fallback for rare edge cases where the SDK might select an unsuitable connection type. This simple UI addition helped resolve connection issues for players in certain regions. Deepfield Games' community on Discord actively helps troubleshoot these issues.
Seb concluded with getting started tips for EOS: download the latest SDK from the developer portal, as the UE-bundled SDK might be outdated (it's backward compatible). Use the developer portal for configuration and documentation. For troubleshooting, search the extensive EOS knowledge base.
During the Q&A, Sam was most surprised by the inclusion of Easy Anti-Cheat for free, as it saved significant costs and provided an industry-standard solution. Jacob was impressed by the backend access through the developer portal, allowing him to troubleshoot player session issues by viewing registered IPs and attributes. He also praised the player reporting feature for consoles.
Regarding challenges and advice, Sam recommended starting with off-the-shelf blueprint plugins from Fab for quick evaluation and integration, especially for blueprint-minded developers. Jacob advised reviewing documentation and being mindful of assumptions, as EOS features can be selectively implemented. Both agreed that the majority of their online functionality could be handled in blueprint, with C++ used for performance-critical sections or custom extensions, emphasizing the power of blueprint when used effectively. They also stressed the importance of clearly defining game feature needs and choosing a backend that supports them, ideally with a single SDK to minimize integration overhead. Jacob added that choosing a managed service like EOS simplifies long-term maintenance compared to self-hosting a backend.
Looking ahead, Sam teased a new game with shared DNA with *Midnight Ghost Hunt* but also significant differences, to be announced soon. Jacob revealed an upcoming *Abiotic Factor* update that includes crafting an office chair with a rocket strapped to it.