Ryvakai

Distribution

Test build

Everything published for RYVAKAI 0.1, with the checksum that was computed at publish time so you can verify the file before you run it.

Detected platform: checking…. Reading the build manifest…

00 — Launcher

Ryvakai Launcher

Reading the publish manifest…

The launcher has not been published to this host yet.

When it is published, its checksum is computed from the real file at publish time. The moment that happens, this section fills in with the real version, size and SHA-256 — automatically, from the manifest.

Step one

Download and verify

Download RyvakaiLauncher.exe with the button above and check its SHA-256 against the value shown there:

Get-FileHash -Algorithm SHA256 .\RyvakaiLauncher.exe

If the hashes do not match, delete the file and do not run it.

Step two

Run it

Run it from a terminal, or by double-clicking. It is a console program: expect a text window, not a graphical one. It keeps the game it installs, and everything else it writes, under %LOCALAPPDATA%\RYVAKAI — not next to the executable.

.\RyvakaiLauncher.exe            # interactive menu
.\RyvakaiLauncher.exe install    # or: update, play, verify, status

What it does

Honest by construction

The launcher fetches /downloads/manifest.json from this host over HTTPS, installs the newest playable Windows build when one exists, verifies every download against the publisher's SHA-256 before calling it installed, and tells you plainly when there is nothing playable yet. It writes a plain-text transcript of everything it did to %LOCALAPPDATA%\RYVAKAI\logs\launcher.log — attach that file to any bug report.

01 — Artifacts

What is available right now

Reading /downloads/manifest.json

Loading published builds…

02 — Integrity

Verify the checksum yourself

Do not take our word for it, and do not take this page's word for it either — a compromised page would happily print a matching hash. Hash the file you actually downloaded and compare it to the value shown above. Every artifact also ships a sidecar .sha256 file next to it.

Windows · PowerShell

Get-FileHash -Algorithm SHA256 .\RYVAKAI-<version>.zip

macOS

shasum -a 256 RYVAKAI-<version>.zip

Linux

sha256sum RYVAKAI-<version>.zip

If the hashes do not match, delete the file. Do not unpack it, do not run it, and do not assume the download was merely interrupted.

03 — Requirements

System requirements

Two different things get published under this project, and they need very different machines. Read the one that matches what you downloaded.

Project source

To build RYVAKAI from source

The source bundle is the Unreal Engine project: C++ modules, build targets, configuration and documentation. It contains no cooked content and no compiled binaries. These requirements are exact, not estimated.

  • Unreal Engine 5.8.1
  • Visual Studio 2022, with the Desktop development with C++ and Game development with C++ workloads
  • Windows 10, Windows 11 or Windows Server — with a real GPU; the editor will not run without one
  • 32 GB RAM recommended
  • Roughly 150 GB free disk, once the engine, derived data and intermediates are accounted for

Build

1. Right-click game\RYVAKAI.uproject
   → Generate Visual Studio project files
2. Open RYVAKAI.sln, set Development Editor, build
3. Launch RYVAKAI.uproject

Read docs\ARCHITECTURE_CONTRACT.md first. It is binding, and it explains why the code is shaped the way it is.

Cooked client

To run a cooked client

Stated as a target envelope, not a measured result. No cooked client has been profiled yet, so we will not publish a minimum and recommended table pretending otherwise. When a client is published and benchmarked, real numbers replace this block.

  • 64-bit Windows 10 or Windows 11
  • A discrete GPU with DirectX 12 support
  • 16 GB RAM
  • An SSD with room for the unpacked build
  • Outbound UDP on port 7777 for multiplayer, and HTTPS for the account portal

The build machine cannot be this host. RYVAKAI's production server has no GPU and no engine installed; it distributes cooked clients, it never produces one. That is a deliberate separation, and it is why the source bundle exists.

04 — Connect

Connecting to a test session

Pre-alpha multiplayer runs as a listen server: one player hosts a session and is the authority for it. The client connects directly over UDP; the web portal exists only to hold your account and your characters. A true dedicated server is roadmap work.

Step one

Create an account and a character

The game server exchanges your join ticket for a character payload from the backend. Without an account and at least one character there is nothing for it to load, and the connection is refused.

Step two

Launch against the host

Pass the host's endpoint on the command line. From the unpacked client directory — the hostname below is the public host, for when it runs a hosted session:

RYVAKAI.exe ryvakai.com:7777

Port 7777/UDP is the only public game port. If your network blocks outbound UDP, the client will not connect, and no amount of retrying will change that.

The public test server is not up continuously. If the status widget on the account portal shows no live server, there is no live server — it is not a display problem on your end.

05 — Changelog

What landed in 0.1

The first vertical slice. This is the list of systems that exist in the repository, not a roadmap.

0.1.0-alpha.3 — First playable build

Published
  • First cooked, playable Windows client published, installed and verified end-to-end through the launcher.
  • Movement Lab: a grey-box traversal test level — sprint lane with distance markers, jump blocks, mantle ledges, slopes, a wall-run gallery, a wall-jump corridor and a slide ramp.
  • Listen-server multiplayer: one player hosts, the host is the authority for the session.
  • Native fallback keymap (WASD, mouse, Space, Shift, Ctrl, Q, E) so the build is playable with zero authored input content.
  • Launcher 0.1.2: swap-aside installs so a failed or locked update never guts a working build, retry on mid-stream download drops, verify detects a build tree missing its executable.

It is a movement test slice: expect placeholder visuals and a single level. The point of downloading it is to tell us how the movement feels.

0.1 — Vertical slice

Pre-alpha

Traversal

  • Slide, wall-run, mantle, climb and dash implemented as custom movement modes with client prediction and extended saved-move data, so they survive a client correction.
  • Deterministic wall and ledge probes derived independently on client and server from identical trace parameters — never replicated, so a disagreement resolves as an ordinary movement correction.
  • Every traversal tunable exposed as designer-facing data. No literals in the movement code.

Combat

  • Light and heavy attacks, block, dodge, hit reactions and stagger, driven from authored attack definitions rather than hard-coded timings.
  • Parry adjudicated 100% server-side: the server holds the attack timeline and the defender's window and stamps the request on arrival.
  • Server-side melee traces and a lock-on targeting component whose legality is decided from world transforms, not from the client's view.
  • A blend-weighted camera mode stack — local and cosmetic, never trusted by any check.

Abilities & Techniques

  • Attribute set carrying Vitality, Stamina and Veil, with a single damage execution as the only thing that writes Vitality.
  • Natively declared gameplay tags for every ability, state, cooldown, cost, Essence, Form and modifier — no runtime string matching.
  • Six Techniques composed from data assets across five Form classes: Gale Step, Ember Arc, Bastion Rise, Storm Needle, Mirror Echo, Veil Mend.
  • Ability cost and cooldown reconciliation: the client predicts the cost for responsiveness, the server reapplies authoritatively, the client corrects.

Survival

  • Six gatherable resources with depleting, jitter-respawning harvest nodes. Item grants are server-only.
  • Inventory, equipment and server-validated crafting, with no client-side crafting path at all.
  • Building: client-side ghost preview and snapping, server-side re-derivation and validation, per-region persistence to PostgreSQL.

World & AI

  • Server-authoritative day/night cycle and a clear/rain weather chain, published cheaply to game state.
  • Archetype-driven enemy behaviour states with a global round-robin scheduler under a hard per-frame cap.
  • A per-target attack token pool so a group commits one attack at a time, plus delayed radius-limited ally alerts and squad focus.
  • Varkuun, the first boss: a three-phase encounter running on the ordinary enemy stack with no boss-only damage or health path.

Backend & persistence

  • Accounts on argon2id, JWT access tokens, rotating single-use refresh tokens with reuse detection that revokes the whole session family.
  • Character create/list/soft-delete, and authoritative state save with optimistic concurrency — a stale write is refused rather than silently applied.
  • Dedicated-server registry with heartbeats, presence tracking and a join-ticket claim flow.
  • Redis-backed rate limiting, an admin API with an audit trail on every action, and Prometheus metrics.

Tooling

  • In-game debug panel and console commands for every shipped system.
  • Reversible numbered database migrations; the schema is never hand-edited.

Known limitations in 0.1

Read before downloading
  • The playable client is a movement lab: one grey-box test level with placeholder visuals. It is not the open world, and it does not pretend to be.
  • Multiplayer is a listen server — one player hosts and is the session's authority. A true dedicated server needs a source-built engine and is roadmap work.
  • Production levels, animation, audio and materials are not built. Code paths and hooks exist; the assets are placeholders.
  • Character meshes are single-view reconstructions with no skeleton and no skin weights. They cannot be animated.
  • Character data may be wiped between builds without warning. Treat every test character as disposable.
  • Behaviour at 120 ms latency with packet loss is part of the definition of done for each feature, but the slice as a whole has not been load-tested at population.