原创浏览器游戏 · 为 Web 而生
01 · Game Center
精选互动游戏
在浏览器里免费体验可选择走向的互动故事——无需下载。
- 可玩的原创游戏
- 28
- 工程文章
- 19
- 最近游戏更新
- 2026-09-29
这些数字直接来自当前发布的游戏注册表与工程博客,不是营销估算。每个游戏详情页同时公开发布时间、更新记录、当前限制与制作信息。 了解制作团队与运营主体
一套用于构建 Web 游戏的基础设施
etaWorldOS 不只是游戏目录,而是一套 Web 游戏构建基础设施。核心是浏览器原生的 3D World Builder:可以塑造地形、放置体素与 GLB 模型、搜索共享游戏资产、添加在线音乐,并从可编辑主题模板开始创作。
编辑器背后是一套可复用的游戏资产底座:模型、纹理、音频、着色器、加载器,以及自托管的 vendor 运行时资源。它把“打开空白浏览器”到“拥有一个可玩的 3D 世界”的路径变得具体、可检查、可复用,不需要 Unity 导出,也不需要单独的原生 App。
游戏中心是这套基础设施的验证层:节奏赛车、塔防、斯诺克、坦克大战等原生 Web 游戏都遵循同一套浏览器优先原则。工程博客则继续拆解渲染、物理、相机、着色器和资产加载等系统。
看看你能在这里玩到什么、做到什么
博客最近更新
Zero art assets — building every polygon, texture, and shader in code
Pokémon of the Forest ships no GLB files, no PNG textures, no baked normal maps. Every creature is marching-cubes-meshed from Wyvill metaballs at boot; every leaf is a 2D-canvas Bézier fill baked into a CanvasTexture; every terrain patch is an analytic heightfield sampled onto a PlaneGeometry; every skin material is a MeshPhysicalMaterial with a custom subsurface-wrap term injected via onBeforeCompile. This post walks the seven techniques that let a browser game with ~24k lines of TypeScript render Pallet Town without downloading a single texture.
A Pokémon chapter as a 120-line typed state machine
Pokémon of the Forest's opening chapter — pick a starter, catch three research bugs, upgrade your net, cross the meadow, find rare bait, defeat the guardian — runs on a single ChapterDirector class that accepts a discriminated-union event and either advances a step, mutates a side condition, or rejects the event with a typed error code. No flags scattered across the codebase, no "did we already do this" audits, no invalid save states.
How Infinitown fakes an infinite city with 81 chunks and mod 9
The infinite-scrolling town in our Infinitown gamecenter port isn't procedurally generated — it's a Möbius carpet. A 9×9 pool of pre-built chunks maps onto a 9×9 grid of fixed container slots through modulo arithmetic, and camera drags rebind slots to different pool entries instead of spawning new geometry. This post walks the four moving parts (pool, containers, mapping, drag event) and explains why the whole system holds together with zero allocations at runtime.
常见问题
Q01浏览器里能玩 3D 游戏吗?需要下载什么吗?
游戏中心以浏览器原生 Web 技术为主,页面通过普通 URL 直接打开,不需要单独安装游戏客户端。实际加载速度和功能支持会因浏览器、设备与网络而不同。
Q02什么是 Three.js?用它做的游戏够流畅吗?
Three.js 是用于构建 Web 端 GPU 加速 3D 体验的 JavaScript 库,支持实例化、材质、光照和后处理等常见实时渲染能力。具体帧率取决于场景复杂度、浏览器、GPU 和设备。
Q03这些浏览器 3D 游戏在手机上能玩吗?
不少游戏提供响应式布局和触屏控件,可在移动浏览器中运行。画质、性能和具体交互效果会因设备、浏览器版本、屏幕尺寸和每款游戏的复杂度而不同。
Q04需要注册账号才能玩吗?
当前游戏中心的公开游戏可以从浏览器直接打开。排行榜、跨设备进度等依赖账号的功能,仅在相应游戏提供这些能力时需要登录。
Q05除了游戏还有什么?
除了原创游戏,还有 3D World Builder、带许可证与来源信息的游戏资产库、图片转 3D 工作流,以及记录渲染、物理、相机、资源加载和版本迭代的工程博客。这些内容围绕同一条 Web 游戏制作链路。
Q06游戏是怎么做出来的?有技术复盘吗?
有。工程博客里对每一个非 trivial 的系统都有复盘:700 行代码的开普勒太阳系、WebGL 实时流星雨、纯浏览器端 SGP4 卫星轨迹追踪,以及每款游戏的物理、相机、着色器工作细节。想自己上手做类似东西,博客是最快的入门材料。

