2022-09-30 17:03
有没可能相比其他的方式,编译状态下,if的时候效率是最高的呢?
2022-09-30 23:27
剧情游戏最直接和最有效的方法就是if,几乎不可能取代,剧情游戏和什么PK游戏不一样,很特殊,它整个剧情都是各种判断和剧本堆起来的
2022-09-30 14:28
一个个学了点设计模式就来装B,还策略模式,hashmap,hashmap能代替所有if?hashmap比if性能还高?
2022-09-30 08:24
代码优化的成本 很高。
2022-09-29 19:07
本来只有一个if, 后来有需求加了个if, 后来后来就赚钱了.
2022-09-30 08:22
不是 它这个是剧情游戏,剧情游戏只有剧本,而用户的选择又非线性,只能大量if,这才堆起来了多结局
2022-09-29 17:26
策略模式、装饰者模式、观察者模式、桥接、外观、状态、中介。。。。。。
2022-09-29 09:47
一个全球玩家验证的游戏,就有他存在的理由,用if else没毛病
hxz
2022-09-28 20:19
游戏逻辑不就是靠if堆起来的么? 做过游戏的都知道, 不大量使用if根本不能按时完成策划文档的需求. 最后锅来了: 程序不按我文档写代码!
2022-09-29 03:16
剧情游戏就不可能不使用大量if
2022-09-28 16:24
然而,这并不影响人家赚的盆满钵满。技术人不要因技术而着魔了,忘记市场的本质。
2022-09-29 03:17
剧情游戏就不可能不使用大量if的,因为剧情游戏必须判断剧本和用户选择之间的关系,而这个关系是非线性的
2022-09-28 15:48
这么多if也有可能是工具生成的代码哦
2022-09-29 03:16
剧情游戏就不可能不使用大量if的
2022-09-28 15:08
游戏优化需要时间
2022-09-29 03:18
剧情游戏就不可能不使用大量if的,因为剧情游戏必须判断剧本和用户选择之间的关系,而这个关系是非线性的。这个关系非常复杂
2022-09-28 14:50
if最简单
2022-09-29 03:17
剧情游戏就不可能不使用大量if的,因为剧情游戏必须判断剧本和用户选择之间的关系,而这个关系是非线性的。
2022-09-29 09:58
别把技术菜当本事,即便是GTA 6也不能逃避那坨屎山一样的代码
2022-09-23 15:48
妈哟,这东西也有人讨论。你换hashmap,是丝毫不提hashmap是怎么防撞库,怎么做hash的啊?自己没实现过,不要轻易评判,显得很无知。。
2022-09-23 16:25
根本不可能用map一下子解决的,除非你整出个多复杂的map,那么多选择,无一例外全部是if堆起来的 剧情游戏和其他传统游戏完全不一样
2022-09-23 16:26
就算真能减,能剪掉的也是非常少的一部分,大部分if根本无法清楚,剧情游戏有剧本的,所有结局全部是if堆起来的,那是一个相当复杂的非线性关系
2022-09-23 14:52
当代码到几十万,几百万的时候,有这些问题是很正常的情况,用这个来证明写的程序员烂或者公司烂我觉得只能说明这个真他x的牛啊。
2022-09-23 15:36
小编完全在造流量,我只能说,牛
2022-09-23 14:45
每次玩游戏都在想那么多对话选项的选择不会都是大量if条件吧,没想到还真的是
2022-09-23 15:35
肯定是,毫无疑问
2022-09-21 16:41
标题真厉害,就泄漏了部分非常早期的视频与代码。没想到被你说成这个样子
2022-09-22 18:18
oschina多次在这种新闻发表自己的不专业言论。。擅自评价他人代码,却从来没有参与过对方的项目开发,也从来没考虑过 实际情况可能远远超出自己所臆测的情况,擅自解读热点事件,发表涉及敏感开源政策,google,鸿蒙系统的主观言论,制造舆论,制造矛盾,昨天我和oschina编辑吵了一架 然后把我踢了(发表涉nvdia过度解读主观言论),呵呵,我原以为是审核者吃干饭去了,没想到是监守自盗,还反问我为什么不评价?我不评价的反而变成颠倒是非了,它评价变成负责了?笑话。。。官媒都不敢这么牛
2022-09-21 11:07
所以感觉可以整个图数据库进去
2022-09-21 12:03
没用,就算弄了图,小编肯定要说,这玩意还得弄个图这么复杂的数据结构。。而且会涉及到更多的复杂的图搜索算法,还是没有直接if判断性能高啊,再说这也只能说可以优化,实现方式不只是if,并不意味着用if有什么问题。大多数情况下,这种游戏的自由度完全就是对剧情的各种if堆起来的,再怎么减少也不可能消除大量if。。小编完全就是在造流量
2022-09-20 17:40
🤣有幸写过橙光
2022-09-20 17:41
还有renpy
这么多if,用map改写下不行吗?
2022-09-20 17:01
怎么map?选项之间完全没有任何线性关系,你根本不知道这种剧情游戏的自由度有多高。。map就算可以也会变得无比复杂的map
所谓的分支嵌套,本质就是一个树而已。参考一下url的path设计模式。透过现象看穿本质。
2022-09-20 17:34
你知道剧情游戏么?你用过文字交互式小说创作工具么?都是各种判断堆出来的。
2022-09-20 17:34
你确定是一个树?你把剧情游戏想的太简单了。
2022-09-20 17:40
1
2022-09-20 17:41
你确定是一个树?你把剧情游戏想的太简单了。真要比的话,是很多个树。。剧情游戏和其他不正经动作游戏 一个怪物记个分,设置几个属性,HP血条怎么怎么着的那种。。完全不一样。。判断用户触发过哪些剧情点,拥有哪些线索。。然后判断核实应该触发下一个剧情。。。判断不同剧情触发之间的非线性关联性。。然后判断剧情序列,什么时候应该触发什么结局。。检查通关所需要的元素是否齐全。。还得判断什么样的剧情序列,决定什么样的结局
2022-09-20 17:41
(是的,多结局整个剧情分支加起来,有一百多个决策点有的,玩完整个剧情需要好几个小时。。有的更复杂的也不排除有几千个决策点。。你想的太简单了。。这个判断是完全非线性的 几乎非if不可。。ink这种是最简单的剧情游戏,也叫交互式小说,本质也是各种if,只不过脚本给它封装了而已
2022-09-20 17:42
l
2022-09-20 17:43
返校 DLC 都是这样做的 这种剧情技术上根本不可能不用大量的判断,ink也是,你根本就不懂好吧,这种剧情游戏的自由度 唯一需要参考的就是剧本,它必须要判断剧本和用户选择之间的关系,而这种关系,是一个相当复杂的非线性关系,就返校和DLC来说都有至少一百多个剧情分支点了。。一棵树?想多了,一颗森林还差不多
2022-09-20 17:45
有的剧情全套下来 几个小时甚至好几天才玩的完整个剧情。。你确定判断少?本来玩剧情游戏的就是享受剧情本身和自由度多结局,你以为多结局这么来的?天上掉下来的?剧情游戏和其他那些乱七八糟的游戏完全不一样
2022-09-20 17:46
大多数剧情游戏对第一次玩的玩家来说是很难玩的,我玩返校和DLC还是在网上朋友和剧情攻略的帮助下完成的
一个森林也就是一个大点的树。再多的决策点也就是多一点树的分支而已。能用if表达,就能用树来映射。把嵌套代码,变成平面代码。
2022-09-20 18:25
那请你写一个返校出来,或者DLC这种,我看你怎么样映射写?能写出来小编肯定要说【这祖传的十多级映射是想干嘛】,这典型的造流量抬杠看不出来?而且映射效率有时候比if低多了,除非是嵌套循环,否则if的判断是O(1)常数级别
2022-09-20 14:54
用if本身没错吧,就是不是资深开发不敢改而已。
2022-09-20 17:03
不是不敢改,而是根本改不了,这种剧情游戏的用户选择序列组合多的要死,越复杂的剧情结局越多的剧情,判断数量是成倍的增长
2022-09-20 14:07
我教R星写代码?你也配?
2022-09-20 17:01
不懂不要装懂 这种剧情游戏自由度高的很 必然存在大量的判断和if。。
2022-09-20 12:18
多结局开放式剧情游戏,大量if几乎是不可避免的,很多交互式开放式小说,和动画小说剧情游戏,也是这么做的,因为用户的选择之间几乎没有逻辑关系,要判断所有的选项、剧情分支和选项,出了使用大量的if外没有更好的办法,建议不懂得多了解下剧情游戏再说。有那么多开放式交互小说创作工具不去了解,还有那么多动画小说,剧情游戏可以参考,这种情况有多少个分支就有多少个判断,整个加起来大量判断一点都不奇怪
2022-09-20 10:13
自导自演?
2022-09-20 12:20
小编根本不懂剧情类多结局游戏,大量判断几乎是不可能避免的,有很多人自以为自己聪明,觉得别人都是。。。小编只是想蹭流量而已
2022-09-20 09:55
gta5的19.8亿次if精简了没😂
2022-09-20 12:22
不可能避免的,因为gta我印象中走的是剧情类多结局风格,和一般的交互式小说有相似特点,不同的在于它的剧情配合动画。而且交互方式有所不同。。用户的不同动作和选择完全没有逻辑关系,完全是非线性的,不同的选择会触发不同的剧情分线,大量的判断是无法避免的,这么复杂的剧情,这么多判断很正常
2022-09-23 10:03
不是不用if,而是用一些其他方式替代,比如最常见的hashmap之类的就能处理很多条件分支。有人反编译GTA5后改了源码,启动时间从6分钟减到1.5分钟,就是利用了hashmap,https://news.mydrivers.com/1/742/742674.htm。而且我说的是执行次数,也不是if个数,比如遇到for循环if判断,执行次数可能指数级暴涨,简单来说还是代码写的太烂
2022-09-23 12:27
for循环嵌套确实会导致性能指数级别下降,但if不会,另外你说的hashmap替代,先不说那只是你自己的方法而已,就算真的做出来难道不会变成十层map嵌套??这是一个相当复杂的非线性关系,if的非循环性能是非常高的,另外 每个人都有自己的编程思路,我们没有资格代替工程师去评价一位研发工程师/开发人员的实现。另外,剧情游戏的剧情和用户选择之间的非线性关系,完全是if堆起来的,没有大量的if,就不可能成就剧情游戏的多结局。。不说这种动画游戏了,就是你写文字交互式小说游戏,还是各种if堆起来的,在某些情况下if还比你map的搜索快得多。。请问下当你面对几十个甚至几百个几乎没有任何关系的用户选项的分支点时,你的map要怎么写?不要做键盘侠。。你评价别人代码写的烂时,你自己的能力也高不到哪去。。。项目不是你开发的,我们没资格说三道四。。开发涉及到很多现实因素,不是你想怎么做就怎么做
2022-09-23 12:30
而且你发的链接,那部分之所以可以优化是因为那是内购商店的部分代码,所以可以用map替代,但是请问你,各种剧情用户决策点也可以用map替代吗?完全不可能
2022-09-23 12:33
另外 你的if在汇编里显示是一个简单的比较指令+条件跳转语句,这种语句远比复杂的算法要更容易被执行,你不懂汇编吧
2022-09-23 12:45
if在汇编确实是比较简单的比较指令+跳转语句,但是如果这个量是百万次或者上亿次,这个比较也很费时间,hashmap可以把这个比较减少到几次或几十次。虽然不是所有场景都可以用hashmap替换,但很多可以明显替换的场景,R star完全没去做。
2022-09-23 15:38
你猜猜剧情游戏那么多选项怎么做的?我告诉你吧 完全是if堆起来的,只能说你从来没想过剧情游戏的特殊性,你以为多结局天上掉下来的,有这种情况在正常不过了,能缩减的if数量,怕是很小的一部分,大部分if根本减不了
2022-09-23 12:34
综合来说 小编就是在制造流量 这种事就不应该评价
2022-09-23 12:37
剧情游戏的多结局完全靠if堆起来的,而且它的大量if全是分散的,唯一需要参考的就是剧本,完全不可能剪掉if,除了一些内购商店的可以删外(很少有剧情游戏🈶内购商店,因为根本没必要,gta可能是例外,那种判断是少数了),大部分删不了。
kbm
2022-09-20 09:36
就一个游戏,天天炒作。
2022-10-08 11:14
就?一个被千万人运行过的大型程序,不比那些没用的app强多了
2022-09-20 09:06
看来if是gta传统了,上回搞出的循环if自己都不敢删
2022-09-20 09:54
查下这段代码还是上次那个程序员么?!
2022-09-20 12:18
多结局开放式剧情游戏,大量if几乎是不可避免的,很多交互式开放式小说,和动画小说剧情游戏,也是这么做的,因为用户的选择之间几乎没有逻辑关系,要判断所有的选项、剧情分支和选项,出了使用大量的if外没有更好的办法,建议不懂得多了解下剧情游戏再说。有那么多开放式交互小说创作工具,还有那么多动画小说,剧情游戏可以参考,这种情况有多少个分支就有多少个判断,整个加起来大量判断一点都不奇怪
2022-09-20 12:47
RockStar知道GTA有这么深的内涵么?那看来给GTA5提出修改if修改意见的黑客可以out了,还是你懂得多。
2022-09-20 14:05
我了解过剧情游戏的创作 我甚至下载过Ink这种文字交互式小说创作工具 我甚至玩过动画小说之类的剧情游戏
2022-09-29 13:45
为什么不用策略模式呢?把 if 的条件拆解为 不同的策略 key,再将策略集机遇 map 管理,无论是可扩展性还是可阅读性都是优秀的。 所以我觉得 避免大量 if 不是不可能,而是那些程序员的设计模式还是没有学到家。
2022-09-20 12:19
多结局开放式剧情游戏,大量if几乎是不可避免的,很多交互式开放式小说,和动画小说剧情游戏,也是这么做的,因为用户的选择之间几乎没有逻辑关系,要判断所有的选项、剧情分支和选项,出了使用大量的if外没有更好的办法,不懂得多了解下剧情游戏再说。有那么多开放式交互小说创作工具不去了解,还有那么多动画小说,剧情游戏可以参考,这种情况有多少个分支就有多少个判断,整个加起来大量判断一点都不奇怪
回复 @
{{emojiItem.symbol}}
返回顶部
顶部