2.2 KiB
2.2 KiB
The Realm Online: Engine & Protocol Documentation
1. Game Engine: Sierra Creative Interpreter (SCI) 2.1
The Realm Online was developed using a heavily modified version of the SCI 2.1 engine.
Key Modifications:
- Networking Stack: Unlike standard single-player SCI games (e.g., King's Quest), Realm includes a proprietary networking layer for real-time multiplayer interactions.
- Resource Management: Uses
.resand.pqc(Packaged Quest Content) files for storing tiles, sprites, and sounds. - Client Logic: Much of the client logic is written in SCI script (a Smalltalk-like language), but the core engine handles the rendering and networking primitives.
Tools for Asset Extraction:
- SCI Companion: A modern tool for editing and viewing SCI resources.
- QuickBMS: Can be used with custom scripts to extract files from
.pqcarchives. - SCI Resource Viewer: Useful for browsing sprites and tiles.
2. Network Protocol
The game uses a client-server architecture with multiple dedicated TCP ports for different services.
Port Mapping:
- 6002 (Realm Server): Main game world communication.
- 6003 (Auth Server): Login and authentication.
- 6005 (Patch Server): Version checking and file updates.
- 7002 (Route Server): Redirects clients to specific game instances/realms.
- 8001 (Game Server): Individual game instance handling.
Handshake & Packet Structure:
Based on community reverse-engineering (e.g., the server_poc.py script):
- Framework: Many modern emulators use the Twisted framework (Python) to handle the asynchronous networking required.
- Packet Headers: Packets typically have a size header followed by the payload.
- Authentication: Involves a multi-step handshake where the client identifies itself, sends credentials, and receives a session token or redirection to a game server.
3. Database Schema
The community-maintained database (TRO-DB) provides schemas for the following:
- Mobs/NPCs: Statistics, drops, and spawn logic.
- Items: Equipment stats, consumable effects, and shop prices.
- Spells: Damage formulas, mana costs, and requirements.
- Maps: Area definitions, warp points, and shop inventory mappings.