Skip to content
This repository was archived by the owner on Aug 16, 2025. It is now read-only.
This repository was archived by the owner on Aug 16, 2025. It is now read-only.

Write a series of articles explaining the TERA Arise project architecture #75

@alexrp

Description

@alexrp

Some things that would be interesting to cover:

  • The QUIC-based network protocol.
    • Multiple prioritizable packet conduits per client/server connection.
    • More compact packet serialization format and data encoding algorithms.
    • Proper encryption support that isn't vulnerable to MITM.
  • Launcher/client integration.
    • Injection and hooking strategy that bypasses window message nonsense.
    • Hijacking of data center code to load the data center from an embedded resource.
    • Integration of the game's networking code with our QUIC-based protocol.
  • Our anti-cheating strategy.
    • The bridge module sent by the server to the client.
      • The module's integration into the protocol handshake.
      • Randomization, obfuscation, and rotation of modules.
      • The role of each component of the module.
        • Operation code mappings.
        • Data center key and IV.
        • Periodic debugger detection.
        • Periodic code modification detection.
        • Periodic watchdog reports.
    • Prevention of MITM and server spoofing attacks with mTLS.
    • Build-time generation of client/server X.509 certificates.
    • Build-time generation of data center key and IV values.
  • Broad strokes of the server architecture.
    • Database access layer based on Marten and PostgreSQL.
    • Purpose and design of the gateway service (authentication, news, etc).
    • Per-client and per-zone threading strategy.
    • High-resolution timing for scheduling combat simulation tasks.

Maybe other stuff?

Metadata

Metadata

Assignees

Labels

area: websiteIssues related to the website.

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions