Redian新闻
>
无缝切地图的3D赛车游戏火了,小哥花16个月用JS打造,浏览器免费就能玩

无缝切地图的3D赛车游戏火了,小哥花16个月用JS打造,浏览器免费就能玩

公众号新闻
萧箫 发自 凹非寺
量子位 | 公众号 QbitAI

一位小哥耗时16个月打造的3D版赛车游戏,这两天忽然火了起来。

只需一个浏览器,就能驾车从森林、海滩,“无缝切换”到广袤的沙漠甚至平原:

无论春夏秋冬还是白天黑夜,也无论你用的是电动汽车、自行车(?)还是公共汽车:

甚至不想开的时候,还可以开启自动驾驶模式,感受一波“AI飙车”的快乐。

甚至有“自”行车&自动驾驶小巴

据小哥表示,这个名叫Slow Road的3D赛车游戏没有用到任何传统引擎,而是基于JavaScript编写的,无需登录就能直接在浏览器上运行。

要是电脑发出了吃力的声音,稍微更改一下渲染配置就能搞定。

网友们也是嗨得不行:此情此景怎能少得了经典BGM逮虾户(Deja Vu)

作者回复:我写代码时听的是10小时沉浸版

还有网友回忆起了自己几十年前做过的3D赛车游戏,这波属实“爷青回”了:

来看看它究竟是怎么实现的。

基于Javascript而非传统引擎搭建

与大多数3D赛车游戏采用Unity3D、UE等传统引擎不同,Slow Roads是基于JavaScript编写的。

具体来说,它采用了一个名叫Three.js的开源框架,相当于一个能实现3D效果的JavaScript库,基于原生WebGL运行,可以在大部分网页浏览器中搞定交互式2D/3D图形。

除了开头提到的随意切换地点、季节和天气以外,这个赛车游戏也可以随意切换各种车型和视角。

此外,考虑到不同电脑对浏览器的适配,这款赛车游戏还给出了不同级别的渲染设置,从“粗糙大色块”到更精细的树木和围栏都能生成。

要是有电脑显卡的话,还可以更改一下浏览器设置,给图形渲染加加速。

所以,这个赛车游戏中“任意变幻”的环境是如何生成的?

首先是生成环境地形

小哥采用了类似柏林噪声(Perlin noise)的自定义算法,来生成环境高度图(Heightmap,用于生成三维地形的图像),随后进行简单修改让山景看起来更逼真。

柏林噪声,Ken Perlin发明的自然噪声生成算法,经常用于在游戏和特效中生成随机内容,包括火焰、云彩、奇形怪状的岩石以及树木和大理石表面等。

高度图,图源维基百科

随后是制作赛道

选择地图上一个不太陡峭/凹陷的地方作为起点后,选择一个方向并测量周围高度图,以坡度最缓的路线作为道路中线,并给每个点注释上元数据,包括道路宽度、曲率等。

值得注意的是,如果赛道铺到一半出现“打结”的情况,也就是铺到一半撞到了一起,一定要想办法解决。这也是道路铺设最难的地方之一:

车在岛上狂转

接下来就是渲染环境了。

从图中来看,整体环境被分成了很多个分辨率10m的大型网格,最大视距1km²;靠近道路时,每个网格又会被分成5×5的较小网格。

越接近道路中线,渲染越精细,最终道路高度和底层环境高度之间会进行插值,尽量让它保持“无缝衔接”。

当然小哥表示,这种衔接并不是“真·无缝”的,但通常看不出来。

最后就是整个环境的渲染了,这里面也有一些小细节:

包括地面和悬崖纹理、基于柏林噪音做草色变化,以及给树木等植被加上简单阴影、在湖泊周围渲染更多树等。

除了环境之外,就是一些基础物理学的配置了,包括重力、表面摩擦力和动力学计算等。

不过为了节省性能,小哥忽略了提示牌和树木的碰撞。

此外,他也采用了更“平和”的电动汽车作为核心赛车手,因为这样一来就不需要考虑齿轮或RPM等部件,而音频和物理特性也更容易编写了。(小哥称:内燃机正逐渐过时!)

当然,随着这款游戏的关注度上升,他表示后续还会进行更多优化。

未来支持手柄和汽车模拟器

随着人们对这款游戏的好奇度提升,小哥也着重解答了几个热点问题。

例如,采用JavaScript编写游戏的原因,是因为小哥想改变人们对浏览器的“刻板印象”,它可以做到比查资料更广泛的事情,甚至还能更好地对游戏性能进行优化。

不过,目前这款游戏还没有开源。小哥表示,后续可能会开源部分子系统,如图形MOD接口等。

对于这款游戏的未来,小哥也立下了几个flag,包括在环境上,开发更多的越野地点、加入更多环境细节,包括建筑、动物、植物阴影、灯光效果等;

赛车上,加入更多的赛车皮肤和车辆类型;天气上,细化天气类型(下雨、下雪、刮风等),也进一步改善已有天气的效果;

功能上,将来会加入竞争模式和全球排行榜(包括限时竞速、比拼距离等),同时对系统进一步进行优化,未来适配手柄、赛车模拟器等。

你做好上班摸鱼的准备了吗?(手动狗头)

玩耍地址:
https://slowroads.io/

参考链接:
[1]https://twitter.com/anslogen

[2]https://news.ycombinator.com/item?id=33305234
[3]https://anslo.medium.com/slow-roads-tl-dr-a664ac6bce40
[4]10小时版逮虾户:https://www.youtube.com/watch?v=9ILQNSgE7mw

MEET 2023 大会启动

邀你共论智能产业穿越周期之道

今年12月,MEET2023智能未来大会将再度邀请智能科技产业、科研、投资领域大咖嘉宾,共同探讨人工智能行业破局之道。

欢迎智能科技企业参会,分享突破性成果,交流时代级变革,共襄盛会!点击链接或下方图片查看大会详情:

量子位「MEET 2023智能未来大会」启动,邀你共论智能产业穿越周期之道


点这里关注我 👇 记得标星噢 ~


一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~ 


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
最强安卓游戏掌机曝光!雷蛇高通打造,畅玩火爆游戏…最快下月上市已成功移植全球首例3D生物打印耳朵!3D Bio Therapeutics引领3D生物打印技术“可在浏览器端运行的Python”再发力于右任草书杜甫诗四十三首疯狂小杨哥花1亿买楼,抖音带货有多赚钱?切换内核后,Edge 浏览器如何涅槃重生?看了网红小杨哥花1亿合肥买楼,我读懂了稳坐富豪榜第2的张一鸣谷歌翻译停服?别慌,手把手教你一招修复 Chrome 浏览器无法翻译网页问题浏览器 DevTools 你真的会用吗?他的癌细胞都“饿死了”雇你花钱“数火车”?小哥花了一笔培训费,数了很多天才发现,不对呀?!屏蔽非自由软件的大型 JavaScript 脚本的浏览器扩展 | Linux 中国两个孩子的母亲失踪,家中留下血淋淋的景象,西米谷一家人急切地寻找答案羽坛三剑客之一:赵剑华如何在浏览器中启用深色模式 | Linux 中国小哥花钱买大牌包只为拆毁给网友上课:别心疼我的钱,擦亮你的眼,它不值!赛车游戏不开车、沉迷抽卡?这款6岁手游月收入2000万如何做到的了解3D世界的黑魔法-纯Java构造一个简单的3D渲染引擎从 0-70% 的市场份额,看 Chrome 如何重新定义了浏览器一年 303 个漏洞,Chrome 被评为『最脆弱』浏览器,Opera 最安全!网友:Opera 还有人用?马斯克看上的脑机接口公司:“意念控制”iPad发短信,浏览新闻无压力11 个有趣的 Firefox 浏览器扩展,改善你的浏览体验 | Linux 中国Chrome 浏览器将停止支持 Windows 7/8/8.1【劳工节】Texas Roadhouse 美式烤牛扒在面比米便宜的日子里预算有限?医脉通为您量身打造的EDC数据采集系统,少量经费就能搞!韩国小哥花式“造人”火了!1000w网友爆赞:好想和香蕉妹谈恋爱!如何在 Web 浏览器中启用深色模式 | Linux 中国3D版DALL-E来了!谷歌发布文本3D生成模型DreamFusion,给一个文本提示就能生成3D模型!价值9万刀的牛仔裤?小哥花重金买下破烂牛仔裤,坦言太值了!还要放到博物馆去展出...硬核观察 #756 浏览器广告拦截器明年将被削弱看了网红小杨哥花1亿合肥买楼,我读懂了张一鸣小哥花3万买了辆法拉利装X,竟然是丰田改装的??如今恐要坐牢!Hunt Good 周报|没想到都 2023 年了,浏览器还能有新玩法拼出仿真永生花、榫卯祈年殿、头文字D赛车,手残党秒变手工大佬
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。