“漫长停顿”之谜——波利尼西亚先民在长达1700年的时间里停止向东太平洋扩张——长期以来一直令历史学家感到困惑。虽然迪士尼电影《海洋奇缘》歌颂了这一航海传统,但近期的考古研究为这些航海家为何在公元900年至1100年间突然重启迁徙提供了科学解释。 通过分析古湖泊和沼泽沉积物中的氢同位素,研究人员发现,西南热带太平洋在那个时期经历了2000年来最严重的干旱。这种气候变化是由南太平洋辐合带(SPCZ)的长期变动引起的,该变动改变了降雨模式。 随着汤加和萨摩亚人口的增长,这种持续的“干旱冲击”可能导致岛屿无法再支撑其生存,迫使他们寻求新的土地。这种环境压力,加上人口增长和先进的双体独木舟技术,引发了历史上最勇敢的探索时期之一。最终,东太平洋的迅速定居不仅是一项航海壮举,更是人类在面对气候驱动的资源匮乏时,展现出韧性与智慧的非凡应对。
1994年,顽皮狗(Naughty Dog)创始人安迪·加文(Andy Gavin)和杰森·鲁宾(Jason Rubin)寻求通过开发一款3D角色平台游戏来推动他们小工作室的发展。在从波士顿驱车前往洛杉矶的途中,他们构思了这个项目,并戏称其为“索尼克的屁股”(Sonic’s Ass),旨在解决创建一个玩家大部分时间都在盯着角色后背看的3D平台游戏所带来的挑战。
由于索尼PlayStation拥有优于土星(Saturn)和3DO等竞争对手的硬件,团队选择了它。当时团队规模扩大,加入了戴夫·巴格特(Dave Baggett)和环球影业副总裁马克·塞尔尼(Mark Cerny),他们的目标是填补市场空白。当时任天堂和世嘉都已经拥有了自己的标志性吉祥物,顽皮狗从中看到了机会,希望在当时缺乏旗舰角色游戏的平台上建立一个新的品牌。
为了克服3D视角固有的设计缺陷,他们尝试了多种摄像机角度,包括2D片段以及角色朝向屏幕奔跑的标志性“追逐”关卡。这一宏大的努力由两位年仅24岁且行业经验有限的年轻人主导,最终为传奇的《古惑狼》(Crash Bandicoot)系列奠定了基础。
一位安全研究员在 Motorola MR2600 路由器中发现了一个未经身份验证的远程代码执行(RCE)漏洞。该漏洞的利用主要依赖于两个缺陷:固件上传流程的绕过以及固件验证 API 中的身份验证失败。
首先,研究员发现固件上传端点对多部分(multipart)数据的处理不当,允许攻击者在未经身份验证的情况下上传恶意文件。其次,用于验证和刷写固件的 API 存在安全检查缺陷;它错误地使用了针对黑名单的精确字符串匹配,攻击者只需在请求 URI 后追加一个白名单字符串即可绕过该限制。
由于固件未经过加密签名,攻击者可以上传一个恶意镜像文件,路由器会在重启后自动安装并执行。局域网内的任何用户,或在开启远程管理功能的情况下,公网上的攻击者均可利用此漏洞。
研究员曾尝试向摩托罗拉报告这一发现,但 Motorola Mobility 和 Motorola Solutions 均表示对该产品不负责,目前该产品已停止服务。由于厂商不再提供支持,且更新基础设施已被废弃,研究员已将该漏洞公开披露。
《理解 Odin 编程语言》是程序员掌握底层概念的必备指南。该书由游戏开发者兼教育家 Karl Zylinski 撰写,内容涵盖从基础语法到手动内存管理、参数化多态和面向数据设计等高级主题。
Zylinski 不仅仅是在教授代码,更深入阐述了 Odin 设计背后的“缘由”,帮助读者成长为更精湛的开发者。该书凭借清晰的教学方式,在 Odin 社区(包括该语言的创始人 Bill "gingerBill" Hall)中备受推崇,是那些从垃圾回收语言转向底层开发的人员的理想资源。
该书目前已更新至 1.10 版本,并保持持续维护,定期根据语言变化和社区反馈进行更新。它提供易于阅读的便携式 HTML 格式,并可通过 store.zylinski.se 和 Itch.io 获取捆绑的电子书版本。无论你是初学者还是经验丰富的开发者,这本书都能为你提供一条结构化且易于理解的路径,助你精通 Odin 编程语言。
一位游戏开发者分享了他们的心血之作:将自研的 C++20“Mirage”引擎移植到初代 Xbox 上。作者明确表示,这是一个与他们在 Xbox 部门的专业工作无关的个人爱好项目,并详细阐述了将现代引擎(基于 Vulkan/C++20 设计)与 2000 年代初期遗留开发需求相结合所面临的巨大技术挑战。
为了使引擎兼容初代 Xbox SDK,开发者不得不回归到 C++98、Visual Studio 2003 以及古老的 CMake 版本。一个主要的障碍是数据优化;由于初代 Xbox 内存有限,作者必须通过复杂的流程,将现代 3D 模型(如虚幻引擎 6 的“Quinn”角色)通过 Blender 2.3 和 Maya 6.5 等过时软件进行转换,以生成 Xbox 原生的 `.x` 和 `.xbg` 文件。
该项目需要深入研究原始硬件文档,并手动编写基于汇编的顶点着色器。通过采用该平台原生且古老的工具链,而非使用现代自制方案,开发者成功实现了一套可行的工作流。该项目不仅是一次怀旧之旅,更是对游戏开发环境演变过程的一次严谨技术探索。