任天堂社长访谈之《超级马里奥3D大陆-名制作人大集结》(下)

【Claude Code · VibeCoding】13|实战演示:水果消消乐 VibeCoding 用「水果消消乐」走一遍 VibeCoding:提示、生成、试玩、改需求、再生成。 阅读详情

原文地址:点我

“对手”

岩田聪:

这次开发周期不像之前的游戏那么长,但是我感觉内容还是非常丰富。为什么你认为你能做出现在的成绩?

林田宏一:

这次,我们东京软件开发部门(Tokyo Software Development Department)决定不像做其他游戏那样总是长跑,而是用短跑来开发。一开始,我们就像是“让我们在短时间内开发一款最好的游戏吧!”

岩田聪:

噢。

林田宏一:

然后我们能想的只有“如何才能在短期内完成呢?”,而且大家都没有好的想法。当时我们甚至想要去掉游戏中的电影元素和BOSS战。但是我们又都认为这样做不好,所以我们换了一种思路。与其想“如何在短时间内去做一个最好的游戏”,我们倒不如想“我们能在这么短的时间做些什么?”

岩田聪:

这种思路的转变起效果了吗?

林田宏一:

当然!我们重新思考怎么样的电影元素才能表现的我们想要表达的东西,而不是删除电影元素,而且我们也尝试了重新组合各种元素或者动作,即使是同一种敌人,也会有不同的打法。我们像制造FC上的超级马里奥那样来制造这个游戏。


岩田聪:

通过重新组合各种元素就能有完全不同的游戏体验,初代的《超级马里奥兄弟》真心是个很好的例子。

林田宏一:

是的。这次,我们决定好好利用游戏素材,所以在开发过程中目的一直很明确,没有迷失方向。

宫本茂:

在游戏的开发过程中,即使总的开发周期不同,但是总的专注在游戏本身上的时间不会差很多。当然,不同类型的游戏开发时间上是会有些不一样,但是这次的开发效率特别的高。

岩田聪:

我觉得主要是你在项目的一开始就有了很明确的目标。

宫本茂:

是的。自从有了开发《超级马里奥银河2》的经验后,我们知道设计哪些元素会是白费功夫,所以我们能非常专注在那些我们必须要做的东西上。

手冢卓志:

当然,因为整个团队才有这样的结果。一般来说我们开始一个新的项目都需要创建一个新的团队加入新的成员,但是东京软件开发部门很少更换成员,并且以一种独特的方式在发展。所以我认为员工之间长久而产生的默契和他们良好表现是重要因素。

岩田聪:

原来如此。不管怎么说,这次的内容比我一开始预想的要多的多。为什么会这样?是不是因为方向比较明确所以你们有时间一个接一个的增加新要素?

林田宏一:

我觉得是这样的。工作的时候我经常会说“把那个加进去!把那个加进去!”,所以在游戏中融入了各种各样员工们的意见后,最终游戏达到了比较大的容量。

岩田聪:

这就像“给它也加个尾巴!给它也加个尾巴!”(笑)(译者注:出现于访谈一)小泉欢晃先生,从你的角度来看,在开发过程中什么时候出现了突破性的进展?

小泉欢晃:

这次主要是由林田宏一先生来负责,而我只是负责协助。一开始我告诉他在游戏中加入《超级马里奥银河2》中有趣的元素,并且在短时间内完成。我甚至告诉他不需要加很多新的内容。一开始的计划是只包含一种能增强(power-up)马里奥威力的道具。

林田宏一:

狸猫装马里奥。

小泉欢晃:

是的。不过我们不是一直局限于狸猫装马里奥和裸眼3D,还留出了一部分的时间来评估做出来的游戏的质量,在会上有员工想出了回旋镖马里奥。当我看到所有员工都自愿在游戏中加入他们自己的想法时,我想“他们真的成长了。”

岩田聪:

通常来说当你在项目中加入新内容时,开发周期都会拖长。为什么这次没有出现这样的情况?

小泉欢晃:

一个原因是林田宏一有能力分辨哪些新内容是没有必要的。如果一个idea看起来不会开花结果,他就会立即舍弃。


林田宏一:

好吧,其中很多的点子都是我自己的,所以你能看出这些都是我杀死无数脑细胞的结果。(笑)

小泉欢晃:

你自己的想法是最难取舍的。让我印象深刻的是他能做到这一点。我认为这样才保证了项目的进度。

林田宏一:

其中的一个任务是在规定的时间内做出最有效的游戏,所以我们想到了组合现有的游戏素材。比如,我们之前为《超级马里奥银河》设计了飞行器马里奥,从无到有,花了很长的时间,但是组合火球马里奥和敌人的回旋镖后,产生了回旋镖马里奥。这是我挑选idea的方法。

岩田聪:

哈…这个方法真是…

宫本茂:

看,这就是我一贯的设计思路!

林田宏一:

我跟你还差的很远…(笑)让我想到这种方法的一个主要原因是我在游戏研讨班的授课经验。分析和传授宫本茂先生制作游戏的方法帮助我整理思绪,豁然开朗,然后用于实践。如果教给学生连自己都做不到的事情的话那我就不是一个称职的老师了。

宫本茂:

所以授课给了你压力?(笑)

林田宏一:

是的。(笑)

岩田聪:

向别人解释你明白的事情是非常重要的。一旦你向别人解释你所掌握的东西时,你会发现你的理解会是多么的千疮百孔。开设游戏研讨班的的一个目的就是通过成为一个老师,来锻炼重要的能力,通过整理你的想法来更加深入的了解游戏制作。还包括发掘和培养新人。

林田宏一:

是的。我想这是我们能在这么短的时间内制作出内如如此丰富的游戏的一个原因。

岩田聪:

因为你在研讨班上当老师,所以你必须身体力行你所教的东西。或许这就是你为什么能这么冷静做出艰难决策的原因。也正是因为你在研讨班上的经验才有了这个有效的方法。

林田宏一:

每天都有可以测试的版本也是能赶上项目进度的重要原因。我每天都可以玩到新的版本,所以每天都很向往能早点来上班。工作有趣。

宫本茂:

一个游戏有节奏的开发进度会鼓舞开发者。而且,东京软件开发团队真的非常有机动性。当我从京都去东京检查游戏进度,并且提供了各种修正的建议,他们能在当天就完成修改。所以我们在当天就解决问题,不需要等待,开发进度就加快了。

林田宏一:

我认为沟通效率低是最大的问题。除了每个成员的努力工作外,我想能尽量多的增加沟通效率是非常重要的。

岩田聪:

是的。整个项目就是如何处理每个人的时间问题。

林田宏一:

对此,我处理的很小心。

手冢卓志:

如果我反馈意见给林田宏一先生,马上能得到反应并修正。这种快速的来回回复让我很享受。

岩田聪:

是的,当能得到快速反馈的时候工作就变得不那么无聊了。

宫本茂:

工作就改这样嘛。

岩田聪:

林田宏一先生,我也是一个宫本茂观察者,但是,你也是!而且有趣的是我们两个都是有程序员背景的宫本茂先生学习者。我们是对手!(笑)


林田宏一:

好吧…(笑)

宫本茂:

你们俩都指出了不同的地方,这让我很想提高自我!(笑)

岩田聪:

今天的讨论极其有实用性啊!

宫本茂:

这样真的没关系吗?比起关于游戏的访谈,这次更像是一本游戏开书的内容啊!(笑)



什么是“踩”

岩田聪:

现在我们来好好谈谈《超级马里奥3D大陆》吧。对此你们有什么引以为豪的东西推荐给玩家吗?

林田宏一:

这个游戏设计了帮助系统。顶帮助砖块的话会出现无敌树叶,而且手冢卓志先生非常喜欢这个设定!(笑)

手冢卓志:

是的。我自己不是很擅长玩电视游戏。在我无计可施的时候无敌树叶出现的恰到好处。它不是让我直接过关,所以还是要很努力的闯关。但是下次你就会想自己闯过卡关的地方而不借助帮助道具。

但是关卡本身设计的非常紧凑,所以游戏的紧张度还是很高。无敌树叶能很好的帮组玩家闯过一个关卡中无法通过的地方。



岩田聪:

怎么会想出无敌树叶的?

宫本茂:

来自一个测试人员。

林田宏一:

是的。那个测试人员卡在某个关卡,我们建议直接使用P-翅膀跳过这关,但是测试人员说:我不想直接跳过,我想玩这关。然后我们认为如果一直是狸猫装然后是无敌状态的话那个测试人员一定能简单过关。手冢卓志先生也说这个道具很棒,所以当时我们就觉得这个道具能发挥比较大的作用。

手冢卓志:

一般来说,那样的道具太强大了,但是对那些不太擅长玩电视游戏的人来说,这样贴心的游戏元素会有意想不到的效果。

岩田聪:

这个道具出现的条件是什么?

林田宏一:

当你失败5次后就会出现。这也是和手冢卓志先生商量的结果,一开始我们计划是失败8次后才会出现。

手冢卓志:

8次感觉太多了,出于一个玩家的直觉,我建议5次。

岩田聪:

这让我想起了以前在《新超级马里兄弟Wii》中关于“失败多少次才会出现超级向导”的激烈讨论。这是你们之前打算使用8次的原因?

林田宏一:

是的。基于《新超级马里兄弟Wii》,我们本来设计的是8次后出现无敌树叶,16次后出现P-翅膀。

岩田聪:

但是玩家可能早在失败16次前就放弃了。

林田宏一:

是的。(笑)我们也觉得手冢卓志先生建议的5次和10次听起来更加合理些。无敌树叶能让你破坏任何东西,所以很像NDS上的《超级马里奥兄弟》巨人蘑菇。

岩田聪:

又一个手冢卓志先生的“有乐趣就没关系!”的例子(笑)

林田宏一:

可能因为引起了他的共鸣。

岩田聪:

这次,你做了“用户试玩评估”(user's viewpoint evaluation)。你收到哪些各种各样的意见?

#用户试玩评估:任天堂评估新产品的系统。制造部门的员工以玩家的身份试玩游戏并且给出评估报告。

林田宏一:

我们收到了很多作为新手玩家的意见,然后也再一次让我意识到无敌树叶和P翅膀的影响力。我认为之前觉得马里奥系列很难的玩家这次都能够玩到最后。

宫本茂:

反馈结果着实给了我们很大的信心。很多反馈都表明不管是老手还是菜鸟想要过关的欲望都在不断膨胀。

林田宏一:

非常感谢他们。

岩田聪:

宫本茂先生,这个游戏中令你满意的地方是什么?

宫本茂:

“踩”这个动作。到目前为止的3D超级马里奥系列中,我们主要关注于游戏的在三维空间中的表现力。但是这次,我们想做制作一个玩家乐于“踩”的游戏,所以我们不断的改进这个动作。

岩田聪:

你重新定义了什么是“踩”。

宫本茂:

差不多。要清晰的定义“踩”真的很难。为了让玩家能有踩到东西的感觉,需要加入一些非现实元素。

岩田聪:

这样玩家玩起来会更加自然一些。

宫本茂:

是的。在《超级马里奥3D大陆》中,马里奥在空中的时候也能变换方向。这在现实世界里是不可能做到的,但是这对让玩家觉得踩到了东西非常重要。

我以前一直反对在游戏中加入一些非现实的动作。我说过绝对不允许能让马里奥在空中变换方向。但是当我试玩后,我意识到这是个很大的改进,后来就同意了。

林田宏一: 

我补充一点:在初代的《超级马里奥兄弟》中,如果你在跳跃时按相反的方向键,马里奥还是面向跳时的那个方向,但是从《超级马里兄弟3》开始,你就可以变化方向了。

这可能是因为加入了狸猫装马里奥的关系。如果用狸猫装在空中变换方向但是还是朝向原来方向的话就会很奇怪,所以我们加入了空中变换方向的动作。而且在《超级马里奥3D大陆》中加入这个设定后,“踩”就边得容易了。

宫本茂:

我对从玩家的角度更正马里奥的动作感到很满足,这让《超级马里奥3D大陆》更有2D超级马里奥的味道。我觉得以后我们可以大量鉴戒这个经验。


岩田聪:

你这么深入的参与到开发过程中一定很有意思。

宫本茂:

这是第一款裸眼3D的超级马里奥,所以尝试各种新点子非常有趣。

岩田聪:

有点“第一次吃螃蟹”的味道。

宫本茂:

是的。我真的很高兴大家能想出一些我以前会觉得难以接受的想法。就好像这么就是我工作中的精神食量。

岩田聪:

听到这些是不是让你想起了以前你们制作《超级马里奥64》和其他游戏的时光?

小泉欢晃: 

是的,的确。对于新事物,没有正确的做法因为没有前人做过,所以取决于当事人的决策。但是当时是宫本茂先生决定什么该做,什么不该做,我只是依赖他的决策。

岩田聪:

你觉得这个游戏怎么样,手冢卓志先生?

手冢卓志:

我的话,当我第一次玩这个游戏的时候,我觉得可能无法通关。当你玩的时候,你会下意识的移动N3DS,这样的话裸眼3D效果看起来就模糊了。在上一次的“社长访谈”中说过,我们后来加入了宫本茂先生建议的Normal View(译者注:《马里奥赛车7》中使用的技术,在比赛中玩家一般主要关注自己的赛车,这样只要让赛车一直处于屏幕中央,两个眼睛就会得到相同的图像,而不会出现重影),这样裸眼立体3D就感觉好多了。

林田宏一:

我很高兴他能发现这一点。作为开发者我们一直关注于其他内容而没有发现这个问题,但是幸好后来我们找到了一个不会让马里奥在裸眼立体3D下有重影的答案。

手冢卓志:

我学到了很多,尤其是我之前碰到难的关卡很快就会放弃的想法。

岩田聪:

从一个马里奥系列的开发老兵说出这样的话还真是挺奇怪的。(笑)

宫本茂:

手冢卓志先生是EAD软件开发部门的总经历,但是他说“最后我终于理解N3DS了。”好吧,那个距离对他来说正好。

大家:

(笑)


2D和3D完美融合的未来

岩田聪:

最后,请你们从各自的角度来说一下想对粉丝们说的话吧。先从林田宏一先生开始好了。

林田宏一:

这个游戏是专门为N3DS制作的,所以我们应用了很多功能,比如裸眼3D,擦身通信,这些都没有在以前的马里奥系列中实现过。而且游戏中有一关向《塞尔达传说》致敬的关卡。我们也尝试了俯视的视角,这些也从未在之前的马里奥中出现过。


宫本茂:

从上往下看的话就只能看到马里奥的帽子了!(笑)

岩田聪:

这样就不用设计从上往下看的马里奥模型了。

林田宏一:

但是当我们实现这个设计后,得到了手冢卓志先生非常好的反馈。而且我们想“这绝对是《塞尔达传说》,”然后我们就像是在说,“加到游戏里!”

岩田聪:

噢,又一次“加到游戏里,加到游戏里!”(笑)

林田宏一:

而且我们制作了烛台,如果你用火球马里奥将它们全部点燃的话,你会听到那个经典的声音。

岩田聪:

哈?你们也加入了那个声音?

林田宏一:

是的。(笑)

岩田聪:

毕竟,今年是塞尔达传说系列25周年!(笑)小泉欢晃先生,你参与了所有3D超级马里奥系列的制作,请说下你想对粉丝说的话吧。

小泉欢晃:

我从《超级马里奥64》开始参与,到现在的话已经15年了。和其他的同事一样,这次我感觉自己又回到年轻的时候了,每天工作都很有乐趣。参与游戏开发的经历比游戏本身更加有趣。

游戏开发中可能会走很多的弯路,但是这个游戏把握了所有我们现有成功的技术,鉴戒了之前失败的经验。很好的体现了2D和3D马里奥中好的部分,但是毫无疑问也是3D马里奥处于巅峰的一部作品。



岩田聪:

这个游戏也是3D马里奥的集大成者。

小泉欢晃:

是的。游戏中很多体现《超级马里奥64》和《超级马里奥阳光》的地方,大家可以去寻找这些地方。我想这个游戏会对下一个超级马里奥游戏起抛砖引玉的作用--是全新制作,还是融合现有优点。

岩田聪:

手冢卓志先生呢?

手冢卓志:

这个游戏像是一个与2D马里奥合作的项目,所以会包含各种2D马里奥中的道具和敌人,好像是想告诉人们,“看,这就是它们在3D下的样子!”。我感觉我们正在向2D马里奥玩家介绍新的东西。我想把从《超级马里奥3D大陆》里获得的经验应用到下一个2D马里奥游戏中去。



岩田聪:

2D和3D马里奥都能从这个游戏中获得一些东西。

手冢卓志:

是的。我想我们能把在这个游戏中想到的点子以另一种方式应用到2D马里奥游戏中去。

林田宏一:

非常感谢。请务必要做!(笑)

×岩田聪:

最后,宫本茂先生呢?

宫本茂:

这个游戏中玩家即使没开裸眼3D也能进行游戏,但是打开的话会更有乐趣。希望这个游戏能让玩家习惯于在三维空间下进行游戏。这也是这个项目想要达到的一个目的。

而且,我们想很多人第一次接触马里奥是通过《超级马里奥64DS》。当持续玩后,你就会逐渐变得厉害并且被游戏所吸引。



岩田聪:

很多人通过探索的方式来知道他们需要做什么,但是也是在这个过程中完成了需要做的事情。

宫本茂:

《超级马里奥64DS》在美国的销量是日本的4倍,所以很多美国的玩家其实都习惯于玩3D马里奥。基于这个背景,这样说也不错“3D的马里奥很难,所以我们做得更像2D的马里奥”,但是事实上不是这样的,只是不是每个人都很习惯3D罢了。

岩田聪:

是的。

宫本茂:

所以试着去玩一次吧。有些人说“3D马里奥很难玩”,但是另一些已经玩过的人会说“你可以在地图上来回行走,去尝试各种探索,很有趣”。我希望人们能去玩一下这个游戏,因为很简单,而且很有趣。我是真心不会说谎的!(笑)

岩田聪:

因为在《超级马里奥3D大陆》中,在你察觉到以前,你已经在玩3D的马里奥了。

宫本茂:

不要让任何说3D马里奥难玩的人糊弄你。如果你真正去玩的话,一个更加充满乐趣的未来在等着你--我们也是!(笑)

大家:

(笑)

岩田聪:

这是一个不可思议的游戏。直到现在,人们都会分开讨论2D的马里奥和3D的马里奥,但是《超级马里奥3D大陆》结束了这种情况。2D和3D马里奥都是基于“想制作出有趣的游戏”的想法而制作的。我希望这个游戏能去掉2D和3D马里奥的隔膜。期待在未来“考古学家”会说“你知道吗,人们以前会把2D和3D马里奥分开来讨论。”


宫本茂:

我们的“考古学家”是怎么想的?

林田宏一:

哈,是的,这正是我所想的。(笑)

岩田聪:

作为宫本茂观察者的对手,林田宏一先生,让我们继续做出好游戏吧!

林田宏一:

是的,一定!(笑)

大家:

(笑)

岩田聪:

感觉今天的到来。

大家:

谢谢。




通过Python实现物联网金橙子自动打标 对于自家公司使用金橙子打标卡时,为了与生产线或者PLC联动等,往往需要对金橙子打标卡进行二次开发,而在二次开发中不得不涉及到MarkEzd.dll这个文件,而这个dll文件网上版本多不说,一般都没法直接使用,最后还不得不花大价钱购买专用库。而本文针对这个问题,涉法通过python来绕过MarkEzd.dll文件,直接进行自动化控制EzCad来实现联动,可应用于实际生产。文章最后拓展一下以物联网的形式,实现手机平台等登录网页,输入想要的印字内容后,远程打印的案例。 阅读详情

相关推荐

2019年7月28日解决战网BLZBNTBNA00000005BLZBNTBNA00000006BLZBNTBTS0000005DBLZBNTBTS0000004A 007D0 008A4 00840

Blizzard—Battle.net—2019年7月28解决战网BLZBNTBNA00000005BLZBNTBNA00000006BLZBNTBTS0000005DBLZBNTBTS0000004A 007D0 008A4 008402019年7月28日再次更新写在前面■■■ 排查网路问题 ■■■■■■ 排查电脑自身问题 ■■■■尝试重置internet设置■网络的设置和防火墙规则■如果还是不...

MCGC高质人类协作会-MCG贴吧 3万+

任天堂社长访谈之《超级马里奥3D大陆-名制作人大集结》(上)

原文地址:点我 “考古学家” 岩田聪: 今天,我召集了《超级马里奥》系列游戏的核心制作人(来聊一聊《超级马里奥3D大陆》)。林田宏一先生是第二次来了,这次我想问你一些这个游戏更详细的内容。 大家:我们都很期待这次讨论。 岩田聪:我直奔主题吧。《超级马里奥3D大陆》终于发售了。当初这个项目是怎么开始的? 小泉欢晃:在制作完成《超级马里奥银河2》后,林田宏一先生说过想要制作一款入门级

Karl的专栏 6136

gem5 prefetcher

最近在gem5上做预取实验,添加自己的预取算法,这里采用hardware stream prefetcher , 修改了几个bug才给实验调试通过,发文记录下实验过程。 gem5上添加自己的预取算法步骤: (1)路径gem5-master/configs/common/Caches.py下,开启预取:class L1Cache(Cache): assoc = 2 tag_late

编程邦 3844

游戏史上30位最有影响力的人

游戏史上30位最有影响力的人(一) 作者:GameSpy编辑部翻译:Dagou网址:http://www.gamespy.com/articles/march02/top30/3025/index.shtm游戏业已成为世界上发展最快、规模最大的娱乐产业之一,在它的成长历程上曾有许多人做出过自己的贡献,他们当中谁为游戏业带来的变化最大?谁是游戏史上最有影响力的人物? 我们把这个问题提交给了游戏开发者

东城雅阁 7023

学术类PPT制作总结

本文分享了科技类PPT的制作技巧,希望相关的信息能帮助到读者。

奇妙水果的技术博客,欢迎交流技术~ 2881

给STM32供电,别只接VDD和GND!VBAT、VDDA这些引脚不接会怎样?

本文深入解析STM32电源设计中VBAT与VDDA引脚的关键作用,揭示仅连接VDD和GND可能导致的ADC精度下降、RTC功能异常等问题。通过实测数据对比不同连接方案,提供包括滤波电路设计、PCB布局布线和双电源自动切换在内的实用解决方案,帮助开发者优化系统稳定性与性能。

weixin_30521161的博客 625

Blender图解教程:高仿版超级马里奥(一)帽子建模(附模型下载)

之前做过一个超简单不要Face版的马里奥,见《名场面临摹 之 马里奥·奥德赛】1 马里奥角色建模》。昨天偶然找到一个有正侧两视角的马里奥参考图,瞬间激发起艺术家老王的创作欲望,加上五一宅在家里,于是打算重新做一版马里奥。 效果图 文章目录效果图思路步骤1. 设置参考图2. 帽子主体3. 帽檐4. 给帽子增加厚度5. 帽徽 思路 马里奥的帽子,不难做,但也不好做。不难做因为它的结构并不复杂;不...

开发游戏的老王 5099

逆向CarPlay协议时,除了USB主从切换,你还需要注意这3个关键点

本文深入探讨逆向CarPlay协议时的3个关键点,包括MFi协议背景、多通道协同工作机制和协议分析工具的高级过滤技巧。特别解析了USB主从切换后的复杂交互过程,帮助安全研究员和逆向工程师更好地理解CarPlay协议的核心机制与潜在安全研究切入点。

weixin_29164497的博客 381

【我的文章索引】(12.3.14更新)

0iPhone自制小游戏 1. 《植物大战僵尸-植物连连看 for iPhone》    一 NDS 自制小游戏 1.《中国象棋DS》 2.《QQ连连看DS》   二 NDS 汉化游戏 1.《最后之窗-深夜中的约束》 2.《龙珠DS2》 3.《太鼓达人DS3》 4.《重装机兵3》 5.《冒险岛DS》 6.iPhone《太鼓达人Plus》 7.《太鼓达人DS2:七

Karl的专栏 1347

一文吃透 SAP HANA JSON Document Store:从架构到实战的完整指南

本文详细介绍了SAP HANA的JSON Document Store功能,包括其定位、架构、典型场景以及具体使用方法。文章首先分析了半结构化数据场景下传统关系模型的局限性,说明Document Store如何通过集合(Collection)存储JSON文档来提供灵活性。随后详细阐述了启用方式、SQL语法、与Column Store的联动机制,并提供了大量可直接复用的实战案例。特别强调了Document Store作为HANA内建服务的优势,包括企业级一致性、备份恢复等能力。最后给出了数据类型处理和跨引擎协

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 201

磁环电感参数计算

电感饱和是指当电感中的电流超过一定阈值时,电感中的磁场无法继续增加,而是达到一个饱和状态,导致电感的感应电动势减小或消失。电感通常由线圈组成,当通过线圈的电流不断增加时,线圈内部的磁场也随之增加。然而,当电流达到一定程度时,线圈的铁芯磁化达到饱和,无法进一步增加磁场强度。电感饱和的阈值取决于电感的结构、材料和尺寸等因素。通常情况下,电感的额定电流会标明其饱和电流值。一旦电感中的电流超过了饱和电流,电感将饱和并出现异常行为。当我们谈论电感饱和的时候,实际上是在谈论磁芯饱和——空心的电感永远不会饱和。

小幽余生不加糖 4030

【Unity知识速递】第7期 Unity 6.6 深度解析:WebGPU 正式版与 WebAssembly64,Web 游戏的内存革命

如何启用 Wasm64?需要注意的是,Wasm64 需要浏览器支持 Memory64 提案,目前主流浏览器的最新版本都已支持。一句话总结: Unity 6.6 用 WebGPU 转正、Wasm64 16GB 内存和渐进式加载三连击,将 Web 游戏的体验天花板又往上推了一大截——Web 平台不再是"妥协版",正在成为真正的一等公民。Unity 6.6 新增了 WebAssembly64(Wasm64) 构建选项,这可能是本次更新中对 Web 游戏开发者影响最大的一项升级。

crystal_WJT的博客 420

华为服务器BMC方式安装系统-官方文档解读

华为服务器BMC方式安装系统 安装完成之后我们有两种方式去安装系统, > 一、服务器连接显示屏、键盘、鼠标和启动盘去启动服务器安装系统(弊端:需要制作单独启动盘并且需要硬件资源) > 二、使用BMC方式安装系统,也就是说使用网线连接我们的笔记本和服务器的BMC口或者mgt口去进行安装。

王明的博客 4579

我给 DeepSeek 大肥鱼做了一款马里奥式闯关游戏

当全网都在把大肥鱼做成直播虚拟主播的时候,我决定给她做一款横版闯关游戏。

2301_79028807的博客 892

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

节日小游戏活动快速落地与高效转化技巧

比如,把平时验证过的消消乐、大转盘、接红包等经典玩法作为底子,只需要针对特定的节日(像春节、中秋)或者门店庆典,快速替换一套应景的UI素材和文案,再植入专属的节日福利。这种“旧瓶装新酒”的方式,能把开发周期压缩到极致,确保活动能踩着流量的爆发点准时上线。特别是对于实体门店,游戏通关后的奖励最好能直接引导到线下核销,比如“满100减20”的优惠券,这样能把线上的流量精准地拽进店里,形成实实在在的成交。这种基于熟人关系的推荐,比硬广有效得多,能迅速在朋友圈和社群里铺开,实现低成本的流量获取。

Hxzyxkf2016的博客 182

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Claude Code做Unity项目移植(三): 使用SKILL进行自动化Git提交

本文介绍基于ClaudeCodeSkill的Unity自动化Git提交助手——unity-git-commit,通过四大模块实现提交前的智能检查与安全修复:1)校验Git仓库状态;2)验证Unity项目文件(如排除Library/Temp,确保.meta文件完整);3)依据可配置的C#命名规范自动识别并安全修复命名问题(避免序列化、反射等高危场景误改);4)生成精准提交注释,但强制人工确认。全程仅本地commit,不自动推送或破坏性操作,保障安全。核心思想为“机械化工作交AI,关键决策留人工”,显著提升提交

Aman1984的博客 643

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Windows远程桌面实现之二十:实现 moonlight 游戏串流协议之(一)

本文介绍在xdisp_virt中集成Moonlight游戏串流协议的实现过程。基于开源项目Sunshine逆向的GameStream协议,作者从零研究并自研实现Moonlight服务端网络通信部分,涵盖mDNS设备发现、nvhttp/nvhttps加密通信、nvrtsp协议交互及三类UDP数据通道(视频、音频、控制)。重点解决多客户端并发问题,采用串行处理机制确保连接一致性。通过自定义证书验证与密钥管理,完成配对与安全通信,最终实现低延迟、高性能的游戏串流体验,显著优于WebRTC浏览器方案。

fanxiushu的专栏 166

二进制木马免杀-游戏嵌套与图标替换

二进制木马免杀-游戏嵌套与图标替换

2503_94637398的博客 236

Unity UGUI布局组件(LayoutGroup、ContentSizeFitter、LayoutElement)详解

UGUI 自动布局是一套的 C# 排版系统,和 Transform 原生锚点完全隔离;整套布局;最终输出只有对 RectTransform 的sizeDelta的赋值。

m0_63330263的博客 263

mark 黑塞《玻璃球游戏》

【最近在读黑塞的《玻璃球游戏》-“ai预言“ - 优快云 App】

2502_94306440的博客 192

Cocos Creator3.8.8 + Xcode27.2 编译运行失败

Cocos Creator3.8构建IOS工程后,使用最新的Xcode27.2版本进行真机调试,遇到C++标准库冲突,如is_floating_point、is_arithmetic和is_signed失败,以及webp对齐失败等问题。

HYNN12的博客 376

给 AI 一台贴图工厂:TexGen 程序化贴图引擎与 MCP 架构实践

但它很快就撞墙——一张贴图往往是多层叠加的:底色 + 噪波 + 砖缝 + 暗角 + 高光。所以 TexGen 的核心抽象是图层栈 + JSON 指令表codeTgSpec├── 几何: shape(8 种) + center / size / radius / rotation / cornerRadius├── 绘制: fill(7 种) + color / edgeColor / 渐变 + pattern + warp└── 合成: blend(11 种) + opacity / blur。

邹杭特的博客 369

【Unity基础】Unity输入与Time.deltaTime的使用原则

本文从 mousePositionDelta 与 GetAxis 出发,分析了Time.deltaTime的使用原则

Tealc 363

(开源)游戏攻略分享系统实战指南 基于 Java + SpringBoot + uni-app + Vue + MySQL

这是一个基于 Java + SpringBoot + uni-app + Vue + MySQL 构建的完整游戏攻略分享系统,功能持续优化中...游戏攻略管理 游戏分类管理 旅游资讯管理 用户管理 管理员管理

小小码农身兼魔法师职位!除你武器~ 307

【Unity高级】Unity URP:构建同时支持 2D 与 3D 场景的项目完全指南

本文介绍了如何在Unity项目里同时支持2D和3D场景

Tealc 415

itch.io 用开源模拟器 Ruffle 恢复 Flash 游戏支持

itch.io 创始人宣布平台已用开源 Flash 模拟器 Ruffle 重新实现 Flash 游戏支持,现有 2,581 款 Flash 游戏,开发者无需改动现有项目。

老孙正经胡说 103
上一篇: 任天堂社长访谈之《超级马里奥3D大陆-名制作人大集结》(上)
下一篇: Ultraedit替换语法-正则表达式使用方案
LuckilyYu
博客等级 码龄20年 72粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值