西西河

主题:救赎(盗梦空间,含剧透,慎入) -- 见证风的方向

共:💬4 🌺22
全看分页树展 · 主题 跟帖
家园 【原创】Inception:新瓶装旧酒(剧透,慎入)

这个片俺是这样解毒滴

======================================

外链出处

Carrie同学的日志里提到这个片子,手里的票花不完,刚才就跑出去瞧了一眼。前几天看到有人在twitter上写了个有意思的评论

《盗梦空间》就是一层一层的函数调用,在内存中表现为一个栈结构,如果任务失败,堆栈溢出,就被扔到迷失域,等着被垃圾收集吧!

当时我还没看这个片,凭记忆立时回推了一下:“其实10年前的《The 13th Floor》早就有这个构思了。” 刚才一看果不其然,创意基本上是拷贝《The 13th Floor》,即便没看过《The 13th Floor》的,也总该看过《黑客帝国》三部曲吧?记得N年前珍妮芙洛佩斯还拍了个叫《入侵脑细胞》的,不过没看过,不好说是不是也是基于同一创意。摘一段jungleford去年在西西河发的老帖草稿的一部分

电影《黑客帝国》(The Matrix)描绘了“真相党”们所为之泪流满面的一个“真相世界”:我们看到的一切都是unreal,我们都被洗脑了,“信Neo,得真相;信真相,得永生”。然而另有一部知道的人可能远少于《黑客帝国》的电影,叫《第十三层楼》(The 13th Floor,港台翻译为《异次元骇客》),没看过的朋友请原谅jungleford稍微剧透一下下(因为刚看完马亲王的“再谈剧透的艺术”,1,2,3,大家跟我一起默念:“祥——瑞——御——免——”):某高科技实验室有一套无比牛B的虚拟现实系统(或者叫梦境系统,灵境系统),某天该实验室的一个科学家被杀,某帅哥成为嫌疑犯,帅哥发现科学家留下的字条说他发现了一个惊天秘密,他把秘密藏在实验室的虚拟系统当中,帅哥跑到装置中催眠,进入了虚拟系统,穿越到20世纪30年代,并且发现了两个人跟科学家及其老婆长得一模一样,然后经过多次穿越,帅哥终于知道了这个“惊天秘密”,他及其他所生活的这个世界也是虚拟出来的!帅哥绝望地开车来到了科学家“生前”所暗示的某个地点,在这个世界里,军方设置了一个障碍在这个地点说是“军事禁区”,任何人不得进入,然而当帅哥无视这一警告翻过去的时候,真的就看到了他所在的这个“世界”的边界!帅哥崩溃了,开始追杀科学家的老婆,当他就要得手的时候,突然穿越回了这个“世界”的创造者所在的那个高层世界,在这个高层世界里,他、科学家和科学家的老婆都活得好好的,就当一切尽在和谐中的时候,影片突然像显示器断电一般停止了,似乎在暗示这个“高层世界”也不过是另一个“更高层的世界”的虚拟作品而已。这个片我也大概是八九年前看的,细节记得不是很准确,请原谅。类似的故事还一再被小说家们演绎着,古龙在《萧十一郎》当中也构造了一个异曲同工的“玩偶世界”:萧十一郎在山庄的一个屋子里看到一个大型的盆景模型,有什么什么样的风景和人物,然后当他第二天醒过来推开房门一看傻眼了,外面的风景人物跟那个盆景模型一模一样,还以为自己真是格列佛到小人国来了,结果男猪脚经过冷静的分析,找到某个房间,推开门一看,盆景就原样摆在那儿,只不过是故意布置成外景的缩微罢了。

点看全图

外链图片需谨慎,可能会被源头改

所以我倒是觉得这个片子算是某种程度上的翻拍。不过编剧在旧酒之外又添加了两个新元素来裱这个新瓶:

1. 调用返回值:或者也可以称为“栈顶元素返回状态”。

在玩家需要从梦境中醒来时,他们要提前约定一个唤醒他们的信号,本片中第一段辅助剧情侵入斋藤(渡边谦)梦境,信号是“水”;在后面的主剧情中侵入菲舍尔的四层梦境,信号则是一段音乐和失重状态。(我们姑且称为的)“梦栈”中所有过程的返回值都必须匹配才行,一个程序员都知道的基本常识是,如果是强类型语言编写的程序,

int i = func1(a,b,c,d,e,f,g);

int func1(a,b,c,d,e,f,g)

{

...

return func2(a,b,c,d,e,f,g);

}

int func2(a,b,c,d,e,f,g)

{

...

return func3(a,b,c,d,e,f,g);

}

int func3(a,b,c,d,e,f,g)

{

...

return func4(a,b,c,d,e,f,g);

}

int func4(a,b,c,d,e,f,g)

{

...

return value;

}

这段代码中,所有函数调用的返回值都必须是整型。那么我们可以把函数func1~func4看成是菲舍尔的四层梦境,参数a~g看成是参加游戏的七个玩家(被侵入者菲舍尔、盗梦者柯克、柯克的助手、伪装者、催眠者、造梦者小美眉、以及“老板”斋藤),从程序设计角度,这个梦境系统不能是值传递的,不然对菲舍尔的“洗脑”或“植入”都只能在一个梦境(术语叫“作用域”)当中生效,跳出任何一个梦境菲舍尔都又重新回到进入梦境之前的状态,所以梦境系统必然是地址传递引用传递方式

2. 唤醒者

这是该片创意元素中的另一个重要约定条件。即进入每一层梦境之前,外面必须要留一个人来守护和唤醒其他玩家,这样每进入一层梦境,玩家人数都应该减1才对,因此上面那个函数调用过程正确的行为应该是

func1(a,b,c,d,e,f,g)→func2(a,b,c,d,e,f)→func3(a,b,c,d,e)→func4(a,b,c)

------------------→func2(a,b)

进入第四层的是柯克、小美眉、菲舍尔,唤醒者是伪装者(俺对老外名字一向没记性);进入第三层的是柯克、小美眉、菲舍尔、伪装者、斋藤,唤醒者是柯克的助手;进入第二层的是柯克、小美眉、菲舍尔、伪装者、斋藤、柯克的助手,唤醒者是催眠师;进入第一层的是所有七个玩家,唤醒者是一个空姐。片子里还留下了一个倒叙开头的结局,斋藤死在了第三层梦境,出不来了,柯克为了把老板拉出来以便让其能够醒过来帮忙入境而不被条子抓起来,一直呆到了(我猜应该是第二层)梦境中斋藤变老(我认为这个表现还不如库布里克在《2001漫游太空》里那个男猪角最后的衰老来得震撼),这就是上面的“ func2(a,b)”。

片子继续延续老套的所谓“悬念结尾”——摩尔留下来的陀螺到底是一直转下去还是会停下来?柯克回家到底是梦还是真实?其实这还不如上面《第十三层楼》里最后系统断电来的更干脆呢。

关键词(Tags): #盗梦空间
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河