尔乃美家累 发表于 2017-7-1 13:50

[转]论宁宁的码农力和staff的认真

http://overseas.weico.cc/share/3324727.html

New Game 第二季先行放送中,我们看到了宁宁亲第一次写代码开发游戏,遇到了造成闪退的 bug。这个 bug 是什么呢?好在这段 C++ 11 无论是代码风格还是注释都远超出一个才学几个月编程的人的水平,在佩服宁宁超强学习能力的同时,也使我们可以找一下这个 bug 究竟是什么。

第 30 行使用了一个 C++ 11 的 range 特性来实现迭代用来计算 debuff 后的伤害(这种优雅的代码,学学人家)。其中当血槽归零后,则触发 DestroyMe() 方法。DestroyMe 方法镜头只拍到一半,也就是播放处决动画的代码,我们可以理所当然的认为,播放完处决动画,就会回收怪物的对象。然而这里有个问题,触发 DestroyMe() 后计算血槽的循环并没有 break 跳出。这意味着,在播放处决动画过程中,如果再次攻击怪物,那么 DestroyMe() 会被触发两次,第二次触发时对象已经回收,找不到引用,会引发程序异常。

如何证明我们的猜测呢,我们发现动画的细节做得非常好。一方面是宁宁确实在怪物被杀死播放闪烁动画过程中又一次挥舞了手上的剑,另一方面是触发了 vctools dbgdel.cpp 52 行 _BLOCK_TYPE_IS_VALID_ 的报错还确实是非常常见的 Windows 上误释放了栈上的空间导致的。

妙啊妙啊。

----发送自 STAGE1 App for Android.

洗刷刷 发表于 2017-7-1 14:00

Android9 发表于 2017-7-1 14:12

宁宁不是测试吗?

Processed 发表于 2017-7-1 14:15

Android9 发表于 2017-7-1 14:12
宁宁不是测试吗?

二期进程序组了

→熙← 发表于 2017-7-1 14:27

现在科班出来的死大生,有这种良好风格的比例大不大

xingenge 发表于 2017-7-1 14:33

对号入座 发表于 2017-7-1 14:36

tiro_finale 发表于 2017-7-1 14:37

宁宁在大一就领悟了遇事不决转码农

sakaki59 发表于 2017-7-1 14:38

无聊者X 发表于 2017-7-1 15:16

严肃的业界作品,看了都想码农

熊起 发表于 2017-7-1 15:20

血槽归零后触发 DestroyMe 这做法本身就有问题吧。

xingenge 发表于 2017-7-1 15:43

xingenge 发表于 2017-7-1 15:44

对号入座 发表于 2017-7-1 14:36
这个地球上不就两种程序员嘛,三哥和其它......

不懂三哥水平

xingenge 发表于 2017-7-1 15:45

说实话那段调试我都没认真看,本身是轻快的,没想到还有研究

oz01 发表于 2017-7-1 16:37

C++11的range难道不是简单易用的典范吗C++11又不是所有特性都是高深烧脑的玩意,那些新特性说到底还是为了写代码方便

sourpotato 发表于 2017-7-1 17:01

oyss1225 发表于 2017-7-1 17:06

fantuanhtr 发表于 2017-7-1 17:18

coyove 发表于 2017-7-1 19:46

对于不受C++/C历史影响的新人来说,直接上手C++11反而学得更快

cqkxywj 发表于 2017-7-1 20:17

Toby_dak 发表于 2017-7-1 20:50

deviljz 发表于 2017-7-1 20:56

本帖最后由 deviljz 于 2017-7-1 22:45 编辑

认真说的话根本不是break的问题

这里是在处理debuff对伤害的影响吧?那么源伤害要计算完所有debuff对伤害的影响才是最终伤害,扣血应该在循环完所有debuff的影响之后才做。

xingenge 发表于 2017-7-1 22:14

Toby_dak 发表于 2017-7-1 20:50
业内的表示,11区阿猫阿狗都能做程序员PG。我已经不止一次看到跑业务的去写代码了。
日本软件开发最重要 ...
关键是安全性也不高 经常被艹爆 之前扳**机社的后台都被艹穿了
不过可能是因为很多人关注这一点 所以才能这样发现的吧 因为我们很多情报都是这样得来的……

xingenge 发表于 2017-7-1 22:16

气流季里 发表于 2017-7-1 22:46

xingenge 发表于 2017-7-1 22:14
关键是安全性也不高 经常被艹爆 之前扳**机社的后台都被艹穿了
不过可能是因为很多人关注这一点 所以才能 ...
国内安全性也一泡污...
就算是网易这样的大公司,163邮箱被人拖库,两亿多的明文密码被放到网上,我手里都有一份
前不久优酷也被撞库拖库,上亿的密码泄漏。
S1的赵小姐帖子也算是一个证明。
虽然国内互联网行业的发展规模仅次于美国,但从业人员的平均水平真不一定比11区高到哪去。

RedNax 发表于 2017-7-1 23:15

伊迪潘喵森 发表于 2017-7-1 23:27

从python之类转C++的话,刚开始学就用range用auto大概是相当正常的事……
两次Destory…………
写过C++的人大概100%的人都遇到过

sourpotato 发表于 2017-7-1 23:56

RedNax 发表于 2017-7-1 23:15
作为曾经呆过日本游戏公司的程序员来说一下,
现在日本开发人员的平均水平确实是低于我国的。
现在IT行业技 ...

在我看来系统级的程序开发的难度要大于应用级的开发难度。欧美一开源,中国就创新。 中国的程序员不就喜欢在github上面抄抄抄么?日本对linux kernel的程序贡献要远高于国内。也有自己的游戏引擎。也有自己创新的网络开发框架ruby/ruby on rail。 日本互联网落后与国内是
1. 日本的人口远少于国内。
2.日本没有防火墙。

要说阿里巴巴和腾讯有什么独创牛逼的技术我是没有看出来。也许负载比较高。但是房子造得大不代表房子的技术
水准高。

伊迪潘喵森 发表于 2017-7-2 00:02

sourpotato 发表于 2017-7-1 23:56
在我看来系统级的程序开发的难度要大于应用级的开发难度。欧美一开源,中国就创新。 中国的程序员不就喜 ...



No.1        American                        57014(19.05%)                       
No.2        Unknown                         49607(16.58%)                       
No.3        German                        36838(12.31%)                       
No.4        English                         24019(8.03%)                       
No.5        Chinese                         17062(5.70%)                       
No.6        Russian                         11003(3.68%)                       
No.7        Japanese                        10993(3.67%)                       
No.8        Indian                        10637(3.55%)                       

tgzeror 发表于 2017-7-2 00:15

宁宁引擎

Toby_dak 发表于 2017-7-2 00:20

sourpotato 发表于 2017-7-1 23:56
在我看来系统级的程序开发的难度要大于应用级的开发难度。欧美一开源,中国就创新。 中国的程序员不就喜 ...

11区PG一样是抄好吗?
表面上11区拔尖的确实好看,但不能一叶障目。系统框架很重要,但PG占大头的是写应用的。实际去日本开发现场去看看,只有重要的几个系统框架负责人是正社员,剩下的要不就是外包要不就是派遣。让这些干几个月就换现场的PG去钻研掌握系统框架?根本就是不可能的事。不抄代码你认为他们怎么编码?
我们说的是平均水平。就算日本贡献度再高,一样被短板效应拉下来。

烟花缭乱 发表于 2017-7-2 00:29

sourpotato 发表于 2017-7-1 23:56
在我看来系统级的程序开发的难度要大于应用级的开发难度。欧美一开源,中国就创新。 中国的程序员不就喜 ...

不要看不起高可用跟负载均衡啊
重剑无锋,在指数膨胀的访问量面前保持基础性能稳定是极度重要的

xingenge 发表于 2017-7-2 00:47

气流季里 发表于 2017-7-1 22:46
国内安全性也一泡污...
就算是网易这样的大公司,163邮箱被人拖库,两亿多的明文密码被放到网上,我手里都 ...

我是感觉日本也有这种问题 只是国内人不知道而已…我还是相信国内的水平
你说的没错,这种东西确实应该安全性要更高一些,但是怎么说呢,给我的感觉就是,如果那些黑客想这么做的话,早就艹穿了……另外不太懂日本是不是一个账号可以牵连许多账号…

sourpotato 发表于 2017-7-2 01:05

烟花缭乱 发表于 2017-7-2 00:29
不要看不起高可用跟负载均衡啊
重剑无锋,在指数膨胀的访问量面前保持基础性能稳定是极度重要的 ...

京东和Alibaba都不是技术为本的公司都能做到的有什么难度。2005年就有暴雪的mmo的。任何留有简单粗暴发服务器,加带宽的解决方案的。我觉得难度比如何在限定的游戏机性能里面达到60fps难度要小。

sourpotato 发表于 2017-7-2 01:16

2005年南梦工推出一款游戏叫 idol master。里面的3d渲染2d技术实在做的非常精致。
总体而言日本和中国的程序员没有什么好比较的。跟欧美比较的都属于垃圾的级别。大哥不要说二哥。

超保温桶 发表于 2017-7-2 03:47

xingenge 发表于 2017-7-1 15:43
津崎水平很高啊,不是一般程序员能比的

就剧情表现来看
还不如这个 真的

超保温桶 发表于 2017-7-2 03:48

超保温桶 发表于 2017-7-2 03:54

洗刷刷 发表于 2017-7-1 14:00
C++的range,类似C#里的foreach?原来C++ 11才有这个功能啊

c#写多了再去读c++代码都觉着自己智障了

橘落叶 发表于 2017-7-2 09:08

sourpotato 发表于 2017-7-2 12:31

橘落叶 发表于 2017-7-2 09:08
bat这些公司的技术力把日本所有非外资的公司吊起来打没什么悬念,cs领域顶会有多少篇论文是日本人发的?阿 ...

vldb和sigmod都是互联网相关的数据库技术。阿里和腾讯是世界排名前10的it 公司。那是在巨大的中国人口和防火墙产生的商业奇迹。商业需求催生技术进步。中国人发的cs的paper也是全球第二。 但是尽管排名前10.对于计算机业界cs和ee 实质贡献少的可怜。可贡献过一门计算机语言,新的开发框架。连个有用的编辑器都没有吧。 还不是在别人的技术基础上填砖加瓦。
ruby是日本人的。lua是巴西人。python是荷兰人的。 c++的iso 委员会里面有中国人么?
中国人的市场基础比日本人好太多。尽管这样。se还不是世界第二的mmo ff14。
中国人那么好的市场基础就出个王者荣耀。
前面就说了。在软件开发上面。中国和日本跟欧美还有很大的差距。大哥不说二哥。
中国在互联网的技术上确实积累的还可以,我不否认。在技术上上跟随者而不是创新引领者。
no 2 ~ 10我不关心。没有意义。我只关心no .1
页: [1] 2 3
查看完整版本: [转]论宁宁的码农力和staff的认真