在线体验 描述
Afterglow Grand Prix 是一款直接在浏览器里开的街机方程式赛车,六车同场:你和五名 AI 车手一起发车。三条赛道分别是日落下的 Afterglow International(3.4 公里、14 个弯)、雨夜里的城市街道 Rain City Streets(2.4 公里、14 个弯),以及以新加坡夜赛为原型的街道赛道(4.9 公里、19 个弯);时段可选日落、雨夜和晴夜,圈数和 AI 难度(简单、普通、困难、极限四档)也能自己定。
车库里的五辆车手感各不相同:AURUM GT 均衡好上手,AURELIA 起步爆发、出弯最快,NERINE 抓地最强、弯中最快,DELUSION ANGEL 最会漂移、攒氮气最快,VIRELIA 极速最高但转向偏沉。选车界面有两种场景可切换:赛车停在夜色里的维修区,或者在泛光灯下的赛道上高速飞驰,拖动鼠标可以转着看车。
每场比赛从一段电影式开场开始:先航拍发车格,再贴地推过车阵,最后给你的赛车一个特写,五盏红灯熄灭后起跑。比赛界面学的是赛事转播:排位塔、与前后车的间隔、比赛工程师给出的预计名次和胜率,超车、最快圈都会弹出横幅;赛道边的大屏也在实时转播这场比赛。冲过终点有方格旗、环绕镜头和烟花,最后是成绩单。
漂移越久,松开那一下的推力越大,火花从蓝变橙再变粉;漂移能攒氮气,留到直道上用最划算;贴在别人车尾能吃到尾流;冲出路肩压上草地会减速,碎石上更慢。五名 AI 车手性格不同:有人直线最快但弯里爱失误,有人是过弯好手、直线偏慢,也有人防守特别凶。
操作方式:W 油门,S 刹车 / 倒车,A / D 转向(方向键也行);按住空格漂移,按得越久甩得越狠;Shift 氮气,C 在近追、远追和座舱三种视角间切换,R 复位,M 静音,Esc / P 暂停。高速转向时点一下 S 也能甩进漂移。目前只支持桌面键盘,没有触屏和手柄操作。
推荐用 Chrome / Edge 113 及以上的浏览器(WebGPU);不支持 WebGPU 的浏览器会自动改用 WebGL2,两者都不支持时页面会给出提示。第一次进赛道要编译着色器,会多等一会儿。游戏界面为英文。
赛车与地标 · Tripo 生成
车库里的五辆赛车由美术用 Tripo 生成,再统一整理成游戏要的格式:轮胎都落在同一高度,四个车轮各自以轮毂为中心拆开,比赛里能转、也能打方向。赛道边的地标建筑同样由 Tripo 按参考照片生成,到了夜里,游戏再给楼体的窗户和底层商铺补上灯光。
为了几秒内就让人看到车,每辆车都备了两档模型:选车界面先加载一个面数约为十分之一、贴图 512 像素的轻量版,完整模型在后台下载,进度直接显示在选车界面上,下好就替换上去。完整模型的网格用 Meshopt 压缩,贴图用 KTX2 格式,加载时转成显卡原生的压缩纹理,省下显存。
除了这些模型,场景里的其他东西——赛道、护墙、看台、灯架、城市楼群、观众和天空——都是代码程序化生成的。新加坡赛道周边的楼群按 OpenStreetMap 开放地图数据里的真实建筑轮廓和高度拉起,数据之外不额外编造建筑;赛道边广告牌上的品牌全部是虚构的。
在浏览器里怎么跑起来
游戏没有用游戏引擎,直接基于 three.js 的 WebGPU 渲染器,材质、后期和雨滴粒子都用 TSL 节点写成;同一套代码遇到不支持 WebGPU 的浏览器,会自动切到 WebGL2。整个游戏是纯静态网站,构建后约 26 MB,大头是赛车和建筑模型。
夜赛主要靠灯光撑起来:赛道两侧的 LED 路灯和霓虹招牌用分簇光照处理大量点光源;湿路面有积水遮罩、逐像素粗糙度、平面反射和雨滴涟漪,雨丝是计算着色器驱动的粒子。后期依次叠加环境光遮蔽、泛光、雾、调色、胶片颗粒和抗锯齿,高速时再加一层径向速度模糊。
赛道边的大屏由一台虚拟的场边摄像机实时拍摄比赛:它抢到所跟车辆的前方,跟着车摇镜头,每 6 帧刷新一次 256×144 的画面,再叠上圈数条、排位塔和车手字幕;比赛结束时镜头锁定玩家,打出最终名次。
画质分低、中、高三档,分别调整渲染分辨率、阴影贴图尺寸、环境光遮蔽、路面反射和保留的灯光数量。所有着色器都在加载界面里预先编译,连终点的烟花也提前热好,比赛中途不卡顿。声音用 Web Audio:引擎、换挡、轮胎、风、雨和观众都是实时合成的,音乐和界面音效用的是 CC0 素材。


