编程与软件工程fabiensanglard.net编辑精选
《另一个世界》游戏代码剖析
"Another World" (game) Code Review
2011 — 2016,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是 Fabien Sanglard 对经典游戏《Another World》(又名《Out of This World》)的代码审查,拆解其引擎如何用自研虚拟机运行字节码,并实现背景绘制等效果。文章面向想了解老游戏内部实现的读者,展示这款由 Eric Chahi 单人开发的游戏在技术设计上的巧思。
为什么经久不衰:它把一款艺术风格独特的经典游戏的技术内幕讲得清楚,揭示了早年单人在有限硬件上做出电影化效果所需的创造力,至今仍是游戏编程与复古技术的有趣案例。
HN 评论精选
补充了创作者 GDC 复盘和入门评论的延伸阅读。
如果你对游戏创作背后的故事感兴趣,原程序员 Eric Chahi 大约一年前在 GDC 做过一场复盘演讲;若你不熟悉这款游戏,还有一篇评论文章可读。
thristian查看英文原文
If you're interested in the story behind the game's creation, Eric Chahi (the original programmer) gave a postmortem talk at the Game Developers' Conference a year or so ago: http://www.gdcvault.com/play/1014630/Classic-Game-Postmortem-OUT-OF If you're unfamiliar with the game, there's an essay/review of it here: http://www.actionbutton.net/?p=431 (press the "fist" button at the top-right of the page to cycle through a variety of ironically ugly colour schemes until you find one you like)
指出游戏使用自研虚拟机和字节码,并惊讶早期硬件上也能接受 VM 开销。
我在翻看 Gil Megidish 的 JavaScript 移植版时,很惊讶它用了自己的虚拟机。里面有几个很大的 base64 编码数据文件,其余就是字节码,以及把绘制函数转成 canvas。我没想到“当年”能承受虚拟机的开销——我一直以为必须尽可能贴近硬件。
mrspeaker查看英文原文
I was pretty surprised to see it used it's own vm when I was rummaging through Gil Megidish's port to JavaScript - http://www.megidish.net/awjs/ There are a few huge base64 encoded data files, and the rest is just the bytecode, and converting the drawing functions to canvas. I was surprised that "back in the day" you could take the hit of a vm - I always thought you had to get as close to the metal as possible!
背景是程序化/慢速绘制而非位图,整体设计干净。
看到背景以慢动作绘制出来很有震撼力。当时我以为它们是位图,但知识不够,没意识到游戏体积有问题。整个游戏设计看起来非常干净。
lloeki查看英文原文
Seeing the background being drawn in slow-motion has quite a wow factor. At the time I assumed they were bitmap but did not know enough for the game size to raise a flag. The whole design of this game looks so clean.
强调其无文字叙事、电影化战斗、观察型谜题和单人开发的时代难度。
当年在 Amiga 500 上玩到时事先一无所知,它在艺术和机制上让我震撼:游戏没有一行文字却能把故事讲清楚;只有一种武器,但战斗富有创新和电影感;有些谜题完全依赖玩家观察和执行。它由一个人开发(当时没有 Unity/Unreal,互联网也不普及,游戏编程知识很难获得),是独特的成就。感兴趣还可读 Jordan Mechner 制作《波斯王子》的记录。
Kurtz79查看英文原文
Played at the time on an Amiga 500 without knowing anything about it beforehand, it blew my mind about what it was possible to accomplish with a videogame, from an artistic and mechanical standpoint. The story is told without a line of text, and yet you can easily piece together what's going on; there is a single weapon, but combat is innovative and cinematic; some puzzles are ingenious and based exclusively on player's observation skills and execution. The fact that it was developed by a single person (at the time, no Unity or Unreal Engine or ubiquitous Internet, knowledge about game programming was HARD to come by), makes it a unique feat. For those interested, another incredibly interesting and related reading is Jordan Mechner's recount of the making of Prince of Persia : http://www.jordanmechner.com/backstage/journals/
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选