作者cowbaying (是在靠北喔)
看板GameDesign
标题[闲聊] thread-safe
时间Mon Jun 29 00:16:21 2015
出来缓和一下气氛(被巴...
注意到最近的游戏开发工具
较有名如GMS、UNITY或是COCOS-2D
会发现基本上就是只支援单执行绪
其实我觉得没什麽不好
毕竟在变数的共用上
如果发生同时存取或者该值应该存在而竟然不存在或者反过来的时候
Thread-Safe的观念就很重要
不过当然这几个工具都有支援multi-core的外挂或模组
在单纯使用Java开发Android游戏的情况中
还有synchronized这个关键字可以用
事实上这个关键字还是少用比较好
因为书上都这麽说?
不是的
因为这在设计不良的架构里会严重拖累到效能
说到这里
整个游戏的逻辑设计就显得非常重要
当回圈在循环的时候(跑一次回圈暂时定义成一个cycle)
因为会考虑到效能问题
子物件有不同处理资料的cycle
但是这样就成了一个问题
哪个要先执行?(当cycle数到了公倍数的时候)
这点在GMS或UNITY这类工具上
就必须注意物件执行的顺序
不然纵使程式码写对
但程式还是会出错
虽然游戏开发工具很便利
但是该有的逻辑一样是不可少的
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.127.231.87
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1435508184.A.2C4.html
※ 编辑: cowbaying (59.127.231.87), 06/29/2015 00:22:38
1F:推 azureblaze: MT开发除错很麻烦,所以这些非超专业的工具都会避免吧 06/29 00:26
2F:→ azureblaze: 当然那种得搾出每一滴效能的就会进去打混战了 06/29 00:27
3F:→ cowbaying: 是阿 不过还是可以用简单的状态改变去做同步的记号 06/29 00:27
4F:→ hodsala: 何谓支援? cocos2dx本身不就使用了多绪载图 只是可以 06/29 10:24
5F:→ hodsala: 选择不用 06/29 10:24
6F:推 LaPass: 我觉得MT比较好用,不过开架构时要有MT的知识,不然一定死 06/29 10:53
7F:→ cowbaying: 用MT跟在写parallel程式一样阿... 06/29 11:23
8F:推 littleshan: 现在的主流程式语言在设计上就是不利MT的 06/30 01:24
9F:→ littleshan: 所以大家就会觉得写MT很麻烦,实际上是用错了工具 06/30 01:26
10F:→ littleshan: 就像没有cuda/opencl的时代虽然还是可以写gpgpu 06/30 01:28
11F:→ littleshan: 但是工具不对,怎麽写都很麻烦又容易出错 06/30 01:28
12F:→ cowbaying: 有专门的工具? 哪一套分享一下 06/30 09:24
13F:→ dreamnook: +1 06/30 09:32