← 返回 深渊之眼 — Eye of the Abyss
最后更新:2026年10月31日

隐私政策

深渊之眼 — Eye of the Abyss(https://eye-of-the-abyss.gamestrategists.com)

一句话

这是一款单机解谜游戏,不是一项需要您账号的服务。本站不要求注册,不索取姓名、邮箱、手机号或定位,也不把您的进度存在我们那儿。您走到第几幕、冲浪过哪几个虚构站点、拿到哪些档案、在调查笔记里敲了什么,全都只留在您自己这台设备的浏览器里。

本站由 alphaBETA DEV(GameStrategists)运营。关于这一页的任何疑问,写信到 privacy@gamestrategists.com 就行——这个地址不会收到我们的群发:本站没有接入任何发件系统,页面上也没有可以提交的表单,回信是人写的。

本机只写五个键,各管一件事

进度写在 eye-of-the-abyss-save 这一个键里。为了让您关掉标签再回来还能接着玩,游戏需要的是那九项:currentLocation(此刻在哪个站点)、currentPageId(哪一页)、currentAct(第几幕)、foundClues(拿到的档案)、readEmails(读过的邮件)、solvedPuzzles(解开的题)、unlockedSites(解锁了哪些站点)、notes(您调查笔记里那段话)、currentTime(故事里的时间,默认 2026年5月1日 08:00——那是剧情钟,不是您设备的钟)。除此之外它不往里写别的。顶层另有 version 与 timestamp 两项,后者是写入那一刻您设备的毫秒时间,同样只留在本机。

那九项里只有 notes 是您写的字。foundClues 存的不是编号,而是档案条目自己那一整段(标题、正文、关键词——与游戏数据文件里一字不差);readEmails 与 solvedPuzzles 只存编号。您在答案框里敲的那串字符不会被留下:答对时它当场被清空、只记「这道题解开了」,答错时根本不触发保存。

另外四个键各管一件独立的事:

打开站点本身一个键都不写。2026-10-31 用真实浏览器把 /、/en/、/privacy、/about 各开七秒、连跑五轮,二十次 localStorage 读数全是空的。再往下走才落键:勾掉开场那一屏提示并点「进入游戏」,落下的是 arg-intro-eye-of-the-abyss;在标题屏点一下「开始调查」,eye-of-the-abyss-save 才出现,里面正好是那九个字段(currentLocation、currentPageId、currentAct、foundClues、readEmails、solvedPuzzles、unlockedSites、notes、currentTime);arg-audio-eye-of-the-abyss 要等您按过静音才写,值是 muted 或 on;eye-of-the-abyss-lang 要等您按过那个语言按钮才写。同一次实测里还把那个键预置成 zh 再直取 /en/,落回的是英文界面(documentElement.lang 取到的是 en,语言按钮写的是「中文」)。

四个结局里,最后一条是唯一把「收集」变成条件的门

本作有四个结局。侧栏那个分母只数 42 份可收集档案,不把 15 道题并进去——把两串混在同一格就会印出「57/42」这种永远满不了的分母。第四条路「回望」要求 42 份读齐才亮:2026-10-31 用游戏自己的存档格式做过对照,灌满 42 条时结局屏出现、gs_achievements 落键,写进去的是 {"gameId":"eye-of-the-abyss","gameName":"Eye of the Abyss","endingId":"ending-truth","endingTitle":"结局:回望","date":"2026-10-31"};少给 1 条时同一个入口被拦住,徽章键没出现,分母印的是 41/42。此外终局那一段还要先拿到 ending-options 与 final-choice 这两份档案,否则会先弹一句「你还没有准备好做出最终选择」。

八段会谈录音不占任何存储:它们是按「当前第几幕」现算出来的(sessionForAct(currentAct)),所以存档里没有一个字在记录您听过哪几段。

读到坏档会怎样

读回来这一步套了 try/catch:那串 JSON 解析不了,就当作没有存档;解析成功但顶层缺了 version 或 gameState,同样当作没有。这两种情况下标题屏照旧给您「继续调查」和「重新开始」两个按钮(那个键确实在),但点下去读不回来,游戏就退成开新的一局。如果存档在、只是里面某个字段缺了,各字段取自己那个默认值(第 0 幕、空的证据与谜题列表、三个一开始就开着的站点、空白的笔记、剧情钟 2026年5月1日 08:00)。

这一页故意不写「我们有校验机制保护您的数据」那种漂亮话:本作没有校验和,也没有服务器重试。坏档的处置是从头开始,而不是把您没写完的东西发到哪儿去再看一遍。

「重新开始」清掉什么、不清掉什么

标题屏那个「重新开始」和结局页上那个同名按钮走的是同一条路:它先删掉 eye-of-the-abyss-save 这一个键,再从第一幕落一份新存档。它不会先问您第二次——这一点跟某些站「确认之后才清」的写法不同,我们把它写清楚,是为了让您知道按下去会发生什么。已经拿到的结局徽章、静音偏好、「开场提示看过没有」「上一次选的语言」都不跟着清。

要全部清掉有三条路:其一,上面那个「重新开始」(只清这一周目的进度);其二,在浏览器里清除本站点的站点数据,五个键一起带走;其三,用不保留本地数据的隐私模式游玩,关掉标签就没有了。

提交答案、站内搜索、翻档案都不经过网络

十五道题的可接受答案就写在游戏自己的数据文件里。您在输入框里敲的那串字符,是在浏览器里先做一次归一化——去首尾空格、转小写、把全角数字与字母折成半角、把顿号句号这类中文标点折成 ASCII、去掉装饰性的引号和省略号、把分隔符前后的空格收掉、末尾的句点逗号不算——然后跟那一题的接受值比三种形状:原样相等;去掉所有分隔符之后相等;或者把它拆成一组条目后与答案的组成项完全相等(顺序随便、标点随便,但既不能少一项也不能多一项,任何地方都没有部分得分)。比完就丢弃。这十五题全是文本输入,没有一次请求是为了「验证答案」而发出的。

站内检索查的是一份随游戏一起打包的本地索引:83 条条目(42 份档案、17 封邮件、24 个虚构站点),每条都同时带着中英文的标题、正文与关键词,比较在这台机器的内存里以「小写之后是否包含您输入的那串」做完。没有搜索后端,没有查询日志。

那 24 个可以自由冲浪的站点(疗养院门户、私人博客、幸存者论坛、监控档案……)也一样:它们的每一页都写在自己的数据文件里,随幕解锁,不向任何地方取。

游戏运行时不会向本站发送任何数据:源码里 fetch、XMLHttpRequest、sendBeacon、WebSocket 各 0 处,也没有任何表单可以提交。本站给每一份页面都发了一条内容安全策略(2026-10-31 线上响应头与本地产物逐字相同,755 个字符),其中 form-action 'self' 与 object-src 'none',也就是说这个页面结构上就没有一个能把您的数据发往别处的表单。要说全:同一条 CSP 的 connect-src 放行的是 https:,所以「数据不出去」这件事靠的是代码里根本没有那类调用,不是靠 CSP 拦着——我们宁愿把这层区别写出来,也不写一句 CSP 替我们兜底的假话。

结局那一屏有一个「分享我的通关」按钮。按下去走的是浏览器与系统自己的分享面板;这台设备不支持分享面板时退成「把一句话复制进剪贴板」,那句话是本站预先拼好的作品名、结局名与本站地址。两步都要您自己点,复制走的内容不发往任何地方,本站也读不到您把它贴去了哪儿。

声音、画面与字体都在您这一边算

本作没有一个音频文件需要下载(产物里 .mp3/.wav/.ogg/.m4a 各 0 个),全部声音是用 Web Audio 在您机器上现场合成的:一段棕噪声循环过一道 200 Hz 的低通滤波器当疗养院的底,两条持续音落在 45 Hz 与 67.5 Hz,一个 0.025 Hz 的低频振荡器把这道滤波器的截止频率来回推(四十秒一个来回),每 11–23 秒随机落一次心跳、玻璃或纸页的声音。那道要破的摩尔斯电码也是合成的——800 Hz 的纯音按点与划排出来,没有任何录音文件。

那块音频引擎只在您有过一次真实手势之后才创建——点掉开场那一屏提示,或者任意一次按下鼠标、键盘。没有那一次手势,本站连一个音频节点都不会存在,也不会因此向您索要任何权限:本站的响应头里还有一条 Permissions-Policy,把定位、麦克风、摄像头、支付与 USB 全部置空(2026-10-31 线上读数:geolocation=(), microphone=(), camera=(), payment=(), usb=())。

站内所有图片都放在本站自己的 /images/ 目录下(当前产物 26 个文件:18 个 .jpg 与 8 个 .webp),全部从 eye-of-the-abyss.gamestrategists.com 发出,不向第三方取图。CSS 里没有 @font-face,产物里没有任何指向 Google Fonts 的引用(那几个域名只出现在 CSP 的放行名单里,页面与脚本一次都没向它们发过请求),中文用的是您系统自己的字体。本站也没有 service worker:产物里没有 sw.js,所以不存在一个在后台替您缓存或请求东西的脚本。

这一页与游戏页各自向谁发请求

2026-10-31 用真实浏览器把 /、/en/、/privacy、/about 各打开七秒、连续五轮,把全部出站请求与浏览器里的 cookie 逐条记下。二十次读数里没有一轮出现下面两项之外的第三方主机。广告那一路每轮走到的深度并不一样,所以我们按端点分开计数,不写「每次都会」。

除这两项之外,本站没有 Google Analytics 一类的站方统计,不加载 Google Fonts,没有社交插件、没有像素、没有再营销脚本。若以后接入新的第三方服务,会先把这一页改准再上线。

广告脚本会加载,但游戏画面里那块版位目前是关着的:广告组件在挂载前就被一个开关挡住,所以屏上不会出现一个空着的广告框(2026-10-31 实测:首页与 /en/ 挂载后,那个写着「广告」的框各 0 个、屏上可见的广告盒也各 0 个;页面里剩下的那一张零尺寸隐藏容器是广告脚本自己插入的,不是本站摆的版位)。账号状态一变,这一句跟着变。

儿童与题材

本作的题材是心理悬疑与恐怖:心理医生林默收到一位病人的求助信,信里夹着他母亲 2003 年在鹤川疗养院的值班表。他回到那栋楼,在十九盘磁带、一份空气采样报告和一段被抽走的调查记录之间,查清那场火到底烧掉了什么。它不面向十三岁以下儿童,也不向任何年龄层的玩家索取身份信息或联系方式。

它包含跳切、突然音效、画面闪烁与低频压迫感,所以进入游戏之前有一屏题材提示,要您自己勾上「我已阅读上述提示,自愿进入这段虚构体验」才进得去;这一屏在标题页随时可以重看(那个按钮写的是「游戏提示 / 免责声明」),封面上的标签依次是「虚构作品」「恐怖 / 惊悚」「建议佩戴耳机」。本站没有任何按年龄筛的功能,也没有可被筛掉的访客档案。

这是谁的项目,怎么联系

本站是独立开发者 alphaBETA DEV(GameStrategists)的个人项目:没有账号系统,没有可以被调取的个人档案,也没有能针对某一个人关掉的开关。

隐私相关的问题请写信到 privacy@gamestrategists.com;一般联系与技术故障走 联系我们 那一张页。本页正文改动时,上方「最后更新」的日期会一起改准——那个日期取自这一页正文在版本记录里最后一次真正被改动的日子,不是手写的。


Last updated: 31 October 2026

Privacy Policy

Eye of the Abyss (https://eye-of-the-abyss.gamestrategists.com)

In one sentence

This is a single-player puzzle game, not a service that needs an account from you. The site asks for no registration and never requests your name, email address, phone number or location, and we do not keep your progress on our side. Which act you have reached, which fictional sites you have surfed to, which files you have collected and what you typed into the investigation notebook all stay in the browser on your own device.

The site is run by alphaBETA DEV (GameStrategists). If you have any question about this page, write to privacy@gamestrategists.com — that address will never receive a mailshot from us: the site is not wired to any sending system and there is no submittable form on it, so replies are written by a person.

The device gets five keys, each with one job

Progress lives in the single key eye-of-the-abyss-save. So that you can close the tab and carry on later, the game needs exactly those nine items: currentLocation (which site you are on), currentPageId (which page), currentAct (which act), foundClues (files collected), readEmails (mail read), solvedPuzzles (puzzles solved), unlockedSites (sites unlocked), notes (the text in your notebook) and currentTime (the story clock, which defaults to 08:00 on 1 May 2026 — it is the in-fiction clock, not your device's clock). Nothing else is written into it. The save object also carries a version and a timestamp at the top level; the latter is your device's clock in milliseconds at the moment of writing, and it stays local too.

Of those nine, notes is the only text you wrote. foundClues does not store ids but each file's own entry (title, body, keywords — byte-for-byte the same text that ships in the game's data files), while readEmails and solvedPuzzles hold ids only. What you type into an answer box is never kept: on a correct answer it is cleared on the spot and only "this puzzle is solved" is recorded, and a wrong answer does not trigger a save at all.

The other four keys each do one separate thing:

  • arg-intro-eye-of-the-abyss only records whether you have seen the content warning on the opening screen; its value is 1;
  • arg-audio-eye-of-the-abyss stores a single value, whether the ambience is muted or on;
  • eye-of-the-abyss-lang records whether zh or en was chosen the last time you pressed the language button. But every page this site opens looks at the address first — /en/ is English, / is Chinese — so that key never switches you back to another language;
  • gs_achievements stores the badge you are shown on the ending screen: game id, game name, ending id and title, and the date it was reached (a local date string such as 2026-10-31), so the next playthrough can draw it.

Opening the site itself writes nothing at all. On 2026-10-31 a real browser opened /, /en/, /privacy and /about for seven seconds each, five rounds in a row; all twenty localStorage readings were empty. Keys only appear once you go further: ticking the warning and pressing "enter the game" writes arg-intro-eye-of-the-abyss; pressing Start Investigation on the title screen is what creates eye-of-the-abyss-save, containing exactly those nine fields (currentLocation, currentPageId, currentAct, foundClues, readEmails, solvedPuzzles, unlockedSites, notes, currentTime); arg-audio-eye-of-the-abyss waits until you press the mute button and then holds muted or on; eye-of-the-abyss-lang waits until you press the language button. In the same run we also pre-set that key to zh and went straight to /en/: the page came back in English (documentElement.lang came back as en, the language button reading "中文").

Of the four endings, the last one is the only gate that turns collecting into a condition

There are four endings. The denominator in the sidebar counts the 42 collectible files only and does not fold the 15 puzzles into it — merging the two lists would print an impossible fraction like "57/42". The fourth road, Looking Back, only lights up when all 42 have been read. On 2026-10-31 we ran that against the game's own save format: seeded with all 42 the ending screen appears and gs_achievements is written, holding {"gameId":"eye-of-the-abyss","gameName":"Eye of the Abyss","endingId":"ending-truth","endingTitle":"结局:回望","date":"2026-10-31"}; seeded with one fewer, the same entry point is refused, no badge key appears and the denominator reads 41/42. The final passage additionally requires the two files ending-options and final-choice, otherwise you get the "you are not ready to make the final choice" notice first.

The eight session tapes consume no storage at all: they are computed from the act you are on (sessionForAct(currentAct)), so not one byte of the save records which tapes you have listened to.

What happens when the save is corrupt

Reading it back is wrapped in try/catch: if that JSON cannot be parsed it is treated as no save, and if it parses but the top level is missing version or gameState it is treated as no save too. In both cases the title screen still offers you Continue and Restart (the key is genuinely there), but pressing Continue cannot read anything back, so the game falls into starting a new one. If the save exists but one field inside it is missing, each field falls back to its own default (act 0, empty clue and puzzle lists, the three sites that are open from the start, an empty notebook, story clock 08:00 on 1 May 2026).

This page deliberately avoids the reassuring sentence about "verification mechanisms protecting your data": this game has no checksum and no server-side retry. A corrupt save is dealt with by starting over, not by sending what you had not finished somewhere else so it can be looked at again.

What Restart clears, and what it leaves alone

The Restart button on the title screen and the identically named one on the ending screen take the same path: they delete the single key eye-of-the-abyss-save and then write a fresh save from the first act. They do not ask you a second time — that differs from how some sites gate the same action behind a confirmation, and we spell it out so you know what pressing it does. Your earned ending badges, the mute preference, "have I seen the warning" and "the language I last picked" are not cleared with it.

To remove everything there are three routes: that Restart button above (it clears only this playthrough); clearing site data for this site in your browser, which takes all five keys with it; or playing in a private/incognito window that keeps no local data, in which case it is gone as soon as you close the tab.

Answers, search and the archives never touch the network

The accepted answers for all fifteen puzzles are written into the game's own data files. The string you type is first normalised in the browser — trimmed, lower-cased, full-width digits and letters folded to half-width, Chinese punctuation such as the enumeration comma folded to ASCII, decorative quotes and ellipses dropped, spaces around separators collapsed, trailing sentence marks ignored — and then compared against that puzzle's answer in three shapes: identical as-is; identical once every separator is stripped; or, when the answer is a list, split into items and matched as a complete multiset, where order and punctuation are free but nothing may be missing and nothing extra may be added. There is no partial credit anywhere. Afterwards the string is discarded. All fifteen puzzles are plain text input, and not one request is made in order to "verify" an answer.

On-site search queries a local index packaged with the game: 83 entries (42 files, 17 emails, 24 fictional sites), each carrying both its Chinese and English title, body and keywords, and matching happens in this machine's memory as "does the lower-cased text contain what you typed". There is no search backend and no query log.

The 24 sites you can surf freely (the sanatorium portal, the personal blog, the survivors' forum, the surveillance archive, and so on) work the same way: every one of their pages is written into the game's own data files, unlocked act by act, fetched from nowhere.

While the game is running it sends nothing to this site either: the source contains 0 occurrences each of fetch, XMLHttpRequest, sendBeacon and WebSocket, and there is no form to submit. Every page is served with a Content Security Policy (2026-10-31: byte-identical between the live response header and the built file, 755 characters) which includes form-action 'self' and object-src 'none', so this page is structurally missing a form that could post your data elsewhere. To be complete about it: the connect-src in that same policy allows https:, which means "your data does not leave" rests on the code containing no such call, not on the CSP blocking one. We would rather write that distinction out than let a CSP take credit for something it does not do.

The ending screen has one Share my win button. Pressing it hands a message to the browser's or the operating system's own share sheet; where the device has no share sheet it falls back to copying a sentence to the clipboard, and that sentence is composed by us from the game name, the ending title and this site's address. Both steps need your own click, whatever you copy is not sent anywhere, and we cannot see where you paste it.

Sound, pictures and fonts are computed on your side

Not a single audio file has to be downloaded (the built site contains 0 files each of .mp3, .wav, .ogg and .m4a): every sound is synthesised on your machine with Web Audio. A loop of brown noise runs through a 200 Hz low-pass filter as the floor of the sanatorium, two drones sit at 45 Hz and 67.5 Hz, and a 0.025 Hz low-frequency oscillator pushes that filter's cutoff back and forth — one round trip every forty seconds — while a heartbeat, a glass or a page lands at random every 11–23 seconds. The Morse code you have to break is synthesised too: an 800 Hz pure tone arranged into dots and dashes, with no recording behind it.

That audio engine only creates its context after one genuine gesture from you — dismissing the warning screen, or any mouse or key press. Without that gesture not a single audio node exists on this site, and nothing is therefore asked of you as permission: the response headers also carry a Permissions-Policy that nulls geolocation, microphone, camera, payment and USB (2026-10-31 live reading: geolocation=(), microphone=(), camera=(), payment=(), usb=()).

Every image on the site lives under its own /images/ directory (currently 26 files in the build: 18 .jpg and 8 .webp) and is served from eye-of-the-abyss.gamestrategists.com; no picture is fetched from a third party. The CSS declares no @font-face and the build contains no reference to Google Fonts (those domains appear only in the CSP allow-list; pages and scripts never sent a single request to them), so Chinese text renders in your own system font. This site has no service worker either: there is no sw.js in the build, so nothing is caching or requesting on your behalf in the background.

Who this page and the game pages each send requests to

On 2026-10-31 a real browser opened /, /en/, /privacy and /about for seven seconds each across five consecutive rounds, recording every outbound request and every cookie the browser ended up holding. In none of those twenty readings did a third-party host appear beyond the two below. The ad path does not reach the same depth in every round, so we counted per endpoint rather than writing "every time".

  • Google AdSense (pagead2.googlesyndication.com, googleads.g.doubleclick.net, ep1/ep2.adtrafficquality.google): appears on the two game pages only; across five rounds neither explanation page reached it. Counted apart: pagead2 on all five rounds of both / and /en/; googleads.g.doubleclick.net on 4 of 5 for each; ep1 on 3 of 5 for / and 2 of 5 for /en/; ep2 on 2 of 5, and only for /. The only cookie the browser then holds is test_cookie@.doubleclick.net (3 of 5 rounds on /, 2 of 5 on /en/) — across all ten explanation-page rounds, not one cookie. Serving and personalisation are controlled by Google under its own policies: it may use cookies or similar identifiers such as DSID to serve and measure ads, and may pick ads based on your browsing history in this browser. You can turn personalised advertising off in Google ad settings, read each vendor’s cookie explanation and opt-out at aboutads.info, or simply block and clear third-party cookies in your browser. Policy: Google privacy policy.
  • Cloudflare Web Analytics (the beacon at static.cloudflareinsights.com, reporting to /cdn-cgi/rum on this site's own address): injected into every HTML document by the hosting platform, present in all five rounds, this page included. It reports aggregated page views and performance metrics only; this site gets no per-visitor detail. Policy: Cloudflare privacy policy.

Beyond those two there is no first-party analytics such as Google Analytics, no Google Fonts, no social plug-ins, no pixels and no remarketing scripts. If a new third-party service is ever added, this page is corrected before it goes live.

The ad script does load, but the slot inside the game is currently switched off: the ad component returns before it renders anything, so no empty ad frame ever appears on screen (measured 2026-10-31: after mounting, both / and /en/ had 0 boxes labelled “AD” and 0 visible ad boxes; the one zero-sized hidden container left in the page is inserted by the ad script itself and is not a slot we placed). This sentence changes together with the account status.

Children and subject matter

The game is psychological suspense and horror: Lin Mo, a therapist, receives a plea from a patient with his mother's 2003 duty roster from the Hechuan Sanatorium tucked inside. He goes back to the building and, between nineteen tapes, an air-sampling report and a page withdrawn from the investigation file, works out what that fire actually burned down. It is not directed at children under thirteen and asks no player, of any age, for identity or contact details.

It contains jump cuts, sudden sound effects, flashing frames and low-frequency pressure, so there is a content-warning screen before you can enter, which you have to tick yourself — "I have read the notice above and choose to enter this fictional experience". That screen can be reopened at any time from the title page (the button is labelled Game notice / disclaimer), and the cover carries the labels Fiction, Horror / Thriller and Headphones recommended in that order. There is no age-gating mechanism on this site, and therefore no visitor profile that could be gated.

Whose project this is, and how to reach it

This site is the personal project of solo developer alphaBETA DEV (GameStrategists): there is no account system, no personal file that could be pulled up, and no switch that could be thrown against one particular person.

Privacy questions go to privacy@gamestrategists.com; general contact and technical faults go through the Contact page. When the text of this page changes, the "Last updated" date above is corrected with it — that date is taken from the version history of this page's own text, not typed in by hand.