[鲁蛇] 企划提出的构想常常被程式打枪?

楼主: StupidGaGa (笨嘎嘎)   2014-03-10 13:24:30
如果不是此板讨论的方向,麻烦版主请删文,谢谢^^
本人是在假日没事自己写小游戏的程式鲁蛇,
没游戏公司上班过^^
最近在“www.你的新资.com”里的“火版”看到某三间游戏公司的文,
当然里面不少情绪性的字眼与八卦,这些不是我想讨论的范围,
里面有两句话这样写的,
“好的企划又怎样,程式一句不行、不能、不想、以前就是这样了直接打枪。
制作人一句要、不要、不然你想怎样完全没有要沟通的意思。”
就一个程式的角度来看,有点感触,
不管是不是在游戏公司上班,身为程式都会遇到这几个为难之处。
01. 好的企划又怎样,程式一句不行、不能、不想、以前就是这样了直接打枪。
也在“www.你的新资.com”里的“火版”看到,
某企划:“程式放大绝:‘这不在规划之内。’”,来打枪企划的构想。
以我的角度来看,我会觉得没有什么是程式写不出来的,
仅只在于“规画阶段”与“找对人”,
一旦到了正在CODING阶段,或者上线阶段,很难再改了。
个人常遇到的就是,需求有了,写出来了,一切如同机械表一样的完美运作,
然后就会有新的需求进来,当然,上头会希望你在“原本的架构上面新增功能”,
这时就陷入了地狱的无限循环,
新需求>改程式>新需求>改程式>…,程式不稳定,BUG一堆。
实务上“需求一直在变化”,
有些需求只要改个两行程式码就可以实现,
有些需求是要耗费长时间才有可能实现,
有些需求甚至要将架构整个重新设计才有可能实现,
更不用想说有些需求是要打掉重练才有可能实现…
身为一个程式,我知道需求会变,
我不会说“计画赶不上变化”,而是要“变化也是在计画之内”,
对于老鸟,上头的需求+基本上都会预先想出可能会改变的地方,然后再写,
对于菜鸟,上头有什么需求就写,不会预想有其他变化,直接写。
但是,再怎么老的鸟也是会有改不出来的东西…
不是老鸟能力不足,而是在“现在的架构”写不出来。
顺带一提,我也看过程式跟企划呛声过:
“这个功能就是写不出来,如果你可以你来写,我的薪水让你领。”
通常都是在系统上线了,然后又要求加某些做不出来的功能时,
才会听到这句话…
另外,说不想作的那个程式有点威猛~
02. 制作人一句要、不要、不然你想怎样完全没有要沟通的意思。
其实这也很为难,
我本身遇到的例子来讲,
上头直接说“别家有这样的功能,我们也要有。”
或者“别家没有这样的功能,我们就不要画蛇添足。”
为什么?因为客户的使用习惯,或者上头想打保守牌。
就一个很现实的层面来讲,
上头放绝:“今天没有那个功能,客户就不会买单,公司就没收入。”
如果是在规划阶段,程式一定没问题。
如果是改旧的系统,程式一定都会叫,因为有时真的很难改。
就上头的角度来看:
“我不管你怎么做,就是一定要出来,不然没收入。”
就下面的角度来看:
“在旧系统底下就改不出来,或会造成其他不可预计的错误,或不良好的使用者环境。”
不过,在实务上来讲,几乎都改的出来,只要不太夸张的需求。
有些是直接改旧系统,
或者不是改旧系统,而是写新的辅助系统,
但通常会有一些问题,如:更改所需时间过长、BUG、速度变慢、改太大使用者混淆…等。
常常上头有了突发奇想说要加某些功能,
评估后可行,但是所需时间太长,然后上头就说不要…
或者改完后,客户觉得难用,又改回之前的…
=======我是分隔线=======
有个旧文章:[请益] 游戏企划数值
题目如下:
玩家的血量都是 200,
战士攻击力 50 ,攻击距离为 1 ,攻击速度为 4。
弓箭手攻击 x ,攻击距离为 4 ,攻击速度为 1。
战士受到攻击时有50%的机率会加速,
缩短与弓箭手1/3的距离,请问弓箭手的攻击力要多少,
两个职业才会平衡?
很认真的看过之后发现不少人的答案都不同,
我的算法跟想法如下,麻烦请各位验证我的想法是否正确^^
文长,请注意。
个人题目解释:
1. 弓箭手与战士同时攻击
2. 攻击回合>移动回合>攻击回合>移动回合>…
3. 伤害per回合 = (攻击力*攻击速度)per回合
首先计算,
1. 以期望值来说:攻击X次后,战士才打得到弓箭手
每次受到攻击,50%的机率缩短与弓箭手1/3的距离
=> 以期望值来看,每次受到攻击缩短与弓箭手1/6的距离
=> 以期望值来看,每次受到攻击剩下与弓箭手5/6的距离
=> 问题:求 4*((5/6)^X)<1 ,问X最小需要多少?
=> 解答:X=8
=> 以期望值来看,攻击8次后,战士才进入到攻击距离
=> 所以第9次攻击时,战士才可以攻击到弓箭手
2. 战士要攻击Y次才可以解决掉弓箭手?
50*4*Y=200
=> Y=1
3. 综合1与2,经过9次攻击,战士才可以解决掉弓箭手,
为了平衡,在第9次攻击时,战士与弓箭手同时生命值为0,
那弓箭手的攻击力=Z?
9*Z=200
=> Z=200/9
=> 弓箭手攻击力为200/9(对一半)
4. 以下验证
第0回合:
战 __ __ __ 弓
0 1 2 3 4
======================
第1回合:攻击
战 __ __ __ 弓
0 1 2 3 4
弓箭手攻击次数:1次
战士攻击次数:0次,不在攻击距离内
弓箭手给予战士总伤害:(Z*1)*1
战士给予弓箭手总伤害:(50*4)*0
第1回合:移动
战 __ __ __ 弓
0 1 2 3 4
剩下距离距离=> 4*((5/6)^1) = 10/3 = 3又1/3 > 1
战 __ __ __ 弓
0 1 2 3 3又1/3
======================
第2回合:攻击
战 __ __ __ 弓
0 1 2 3 3又1/3
弓箭手攻击次数:2次
战士攻击次数:0次,不在攻击距离内
弓箭手给予战士总伤害:(Z*1)*2
战士给予弓箭手总伤害:(50*4)*0
第2回合:移动
战 __ __ __ 弓
0 1 2 3 3又1/3
剩下距离距离=> 4*((5/6)^2) = 25/9 = 2又7/9 > 1
战 __ __ 弓
0 1 2 2又7/9
======================
第3回合:攻击
战 __ __ 弓
0 1 2 2又7/9
弓箭手攻击次数:3次
战士攻击次数:0次,不在攻击距离内
弓箭手给予战士总伤害:(Z*1)*3
战士给予弓箭手总伤害:(50*4)*0
第3回合:移动
战 __ __ 弓
0 1 2 2又7/9
剩下距离距离=> 4*((5/6)^3) = 125/54 = 2又17/54 > 1
战 __ __ 弓
0 1 2 2又17/54
======================
第4回合:攻击
战 __ __ 弓
0 1 2 2又17/54
弓箭手攻击次数:4次
战士攻击次数:0次,不在攻击距离内
弓箭手给予战士总伤害:(Z*1)*4
战士给予弓箭手总伤害:(50*4)*0
第4回合:移动
战 __ __ 弓
0 1 2 2又17/54
剩下距离距离=> 4*((5/6)^4) = 625/324 = 1又301/324 > 1
战 __ 弓
0 1 1又301/324
======================
第5回合:攻击
战 __ 弓
0 1 1又301/324
弓箭手攻击次数:5次
战士攻击次数:0次,不在攻击距离内
弓箭手给予战士总伤害:(Z*1)*5
战士给予弓箭手总伤害:(50*4)*0
第5回合:移动
战 __ 弓
0 1 1又301/324
剩下距离距离=> 4*((5/6)^5) = 3125/1944 = 1又1181/1944 > 1
战 __ 弓
0 1 1又1181/1944
======================
第6回合:攻击
战 __ 弓
0 1 1又1181/1944
弓箭手攻击次数:6次
战士攻击次数:0次,不在攻击距离内
弓箭手给予战士总伤害:(Z*1)*6
战士给予弓箭手总伤害:(50*4)*0
第6回合:移动
战 __ 弓
0 1 1又1181/1944
剩下距离距离=> 4*((5/6)^6) = 15625/11664 = 1又3961/11664 > 1
战 __ 弓
0 1 1又3961/11664
======================
第7回合:攻击
战 __ 弓
0 1 1又3961/11664
弓箭手攻击次数:7次
战士攻击次数:0次,不在攻击距离内
弓箭手给予战士总伤害:(Z*1)*7
战士给予弓箭手总伤害:(50*4)*0
第7回合:移动
战 __ 弓
0 1 1又3961/11664
剩下距离距离=> 4*((5/6)^7) = 78125/69984 = 1又18141/69984 > 1
战 __ 弓
0 1 1又18141/69984
======================
第8回合:攻击
战 __ 弓
0 1 1又18141/69984
弓箭手攻击次数:8次
战士攻击次数:0次,不在攻击距离内
弓箭手给予战士总伤害:(Z*1)*8
战士给予弓箭手总伤害:(50*4)*0
第8回合:移动
战 __ 弓
0 1 1又18141/69984
剩下距离距离=> 4*((5/6)^8) = 390625/419904 < 1
战 弓
0 390625/419904
======================
第9回合:攻击
战 弓
0 390625/419904
弓箭手攻击次数:9次
战士攻击次数:1次
弓箭手给予战士总伤害:(Z*1)*9
战士给予弓箭手总伤害:(50*4)*1 = 200 => 弓箭手死亡
平衡:弓箭手死亡同时,战士也同时死亡
=> (Z*1)*9 = 200
=> Z = 200/9 = 22又2/9 (对一半的解答)
回头看题目
“请问弓箭手的攻击力要多少,两个职业才会平衡?”
由上面验证推导出公式:
8Z < 200 && 9Z >= 200
=> Z < 200/8 && Z >= 200/9
=> 200/9 <= Z <200/8
=> 22又2/9 <= Z <25 (解答)
如果弓箭手攻击力为整数,
解答为 23 与 24
作者: gino0717 (gino0717)   2014-03-10 14:32:00
www.22k.com
楼主: StupidGaGa (笨嘎嘎)   2014-03-10 14:45:00
不是www.22K.com,是我写的太隐含了吗?
作者: Killercat (杀人猫™)   2014-03-10 17:23:00
其实很常见的是 还没有prototype以前这理论听起来完美有了prototype以后发现这理论根本东落西落这时候倒霉的通常是程式 :D
楼主: StupidGaGa (笨嘎嘎)   2014-03-10 18:25:00
其实想转游戏业,虽然程式走到哪都会遇到一样鸟事但是看到薪资后,恩~现在的公司根本天堂>///<企划还是要会点基础程式,不然某些需求会让程式很无奈
作者: GoalBased (Artificail Intelligence)   2014-03-10 20:19:00
没有什么是程式写不出来的 <<完全不认同
作者: y3k (激流を制するは静水)   2014-03-10 20:58:00
楼上+1 而且程式有强者 也有鲁蛇如我 价钱不同这样XD
作者: cooper6334 (库波)   2014-03-10 21:18:00
那可以写一个能绕过密码解压缩档的程式吗
作者: LayerZ (無法如願)   2014-03-10 21:23:00
我是程式,企划要功能我会开时间给他,要不要做他会决定(死
作者: asleisureto (ASLE)   2014-03-11 00:16:00
理论上所有东西程式都做得到(包括破解密码) 只是时间和薪水问题XD
作者: azureblaze (AzureBlaze)   2014-03-11 00:33:00
包括理论上不可行的东西吗XD
作者: LayerZ (無法如願)   2014-03-11 01:03:00
推真的不是什么都做得出来..可能最近很少没听到太夸张的需求0.0 我家企划都好棒
作者: chargo (冻结的城市)   2014-03-11 01:08:00
经验上太夸张的需求通常不是来自企画 而是来自运营/老板/外部各方不知名大大的意见之类的或者: 企划被洗掉一批人 新来的想说应该要做成这样殊不知如果要这样做的话 要把已经盖好的三层楼拆了之类的
作者: chengchieh (cc)   2014-03-11 08:30:00
你遇过要压你时间又不讲道理只开需求的企划吗?我相信好的企划一定是可以接纳程式的建言的但是有些企划/业务..他们会用他们认知的方法去写程式"阿这个东西不是拉一拉就好了...""这个计算法有很难吗..你就拿什么什么去算嘛"'这个做不出来'.."老板说要"..'没办法'.."老板说要"没有构想不出来的需求...只有不足的时间跟理论~~
楼主: StupidGaGa (笨嘎嘎)   2014-03-11 08:53:00
通常我们家企划开了需求出来,程式都会估时间给他太夸张或做不出来的也会跟契话讲说为什么会做不出来不过通常关系到公司生存的需求都是要硬著头皮去做~基本上我们家企划与程式人都很好^^多沟通的话其实可以少掉很多心结跟不愉快之类的
作者: LayerZ (無法如願)   2014-03-11 10:08:00
他们开需求,我开时间,他们要压...那就请他们多拜拜保佑真的生的出来~_~
作者: jimmycool (北七)   2014-03-11 10:45:00
没有什么是程式写不出来的 <- halting problem表示:
作者: dreamnook (亚龙)   2014-03-11 11:19:00
如果沟通就能解决问题 那这世上哪会发生战争
作者: swijo (热风)   2014-03-11 11:28:00
所以有沟通技巧课啊
作者: dreamnook (亚龙)   2014-03-11 11:40:00
好啦 上个其实是我讲重话我个人认为起冲突的原因有60-70%是互不尊重专业
作者: rofellosx (鏖)   2014-03-11 11:41:00
这计算是企划要做的吧...企划将参数告诉程式去做
作者: dreamnook (亚龙)   2014-03-11 11:42:00
无论是企划觉得程式不这样就好 反之亦然特别在台湾真的很容易碰到认为写故事想主意就没事的企划XDD会给程式一种:事情是我想. 东西是我做.问题是我扛. 功劳是你拿?最后就变成恶性循环XD
作者: SEGAPSO (Dn)   2014-03-11 12:55:00
身为程式,原则是尽力去搭建企划所构筑的舞台但是在考量现阶段时程,人力,技术力可完成的情况下真的不妙,会提醒企划,您的舞台有机会变成断头台...
作者: LayerZ (無法如願)   2014-03-11 13:50:00
dream那种得就捅给他暴 出不来的东西你硬挤出来 对谁都没好处,我认真的..我好像误会什么了XDD 我是指时间不够作 上面硬要上
作者: chenglap (无想流流星拳)   2014-03-11 14:06:00
谁打谁的枪是看谁的实力强, 就是这样.
作者: LayerZ (無法如願)   2014-03-11 14:15:00
只是我有在想 究竟完成了多少"不可能的任务"才会这样题不可能的需求..不过再来就扯到职场问题了XDD
作者: Kenny1206 (钢弹宅肯胖)   2014-03-11 16:53:00
是目前写不出来还有在某段时间内写不出来...XDDDDD
作者: y3k (激流を制するは静水)   2014-03-11 18:01:00
企划写得很夸张其实还好 重点在不要射后不理刚愎自用写得很夸张代表他想像力强 只是缺乏经验 但是射后不理刚愎自用真的就是没救 连带拖垮整个团队
作者: dreamnook (亚龙)   2014-03-12 10:16:00
@chenglap 还有一种实力不是专业是手段...XD
作者: youtien (恒萃工坊)   2014-03-12 15:14:00
有一些相对于实力的力,可概称为虚力。
楼主: StupidGaGa (笨嘎嘎)   2014-03-12 17:04:00
还有一种力,叫做原力!?愿原力与你同在。(May the force be with you.)另外,我下面的算法到底有没有错误?还是有其他想法?
作者: dreamnook (亚龙)   2014-03-12 19:06:00
抱歉我没看...
作者: GoalBased (Artificail Intelligence)   2014-03-12 21:17:00
没看+1
作者: Killercat (杀人猫™)   2014-03-12 23:40:00
其实还没丢到老板桌上以前,都是可以谈的。企划丢什么天马行空的东西,跟程式聊聊其实多少会知道哪些对哪些错就怕那种先丢到老板桌上以后再来跟程式谈的.....其实我说句不客气的老实话,会做游戏的程式只有两种要不就是想洗经验,要不就是真的超有爱。这两种,都是应该要好好谈的,而不是去让老板压RD(游戏程式只有两种这句话指的是台湾游戏界)
作者: dreamnook (亚龙)   2014-03-13 17:26:00
2种都是疯子 想压疯子要有必死的决心!(重点错
作者: f1234518456 (...........)   2014-03-15 01:03:00
一天到晚提意见要改 你去叫盖房子的盖好说要重盖看看台湾要人改都想要今天提明天马上要 谁鸟你啊...
作者: kenandannie (朢)   2014-03-15 06:10:00
学数学的路过,你算的不对你用期望值的时候,固定了每次的移动为1/3单位跟原本的两者间1/3的距离有出入就算是固定为1/3单位好了平衡应该是两者获胜的机率相同应该要算累积机率,而不是期望值BTW,我用了固定为1/3单位下去计算,结果漂亮的有点恐怖阿我笨了,结果是二项式定理,漂亮是必然的去爬了原文,如果原PO对平衡的理解也是前人那套那就又是另一个故事了但是一来我不认同,二来我想睡觉,所以先这样吧附上我算的固定移动,获胜机率相同http://ppt.cc/-dI4然后睡觉之前最后一瞥发现我忘了攻速问题所以会修正成200/18=11.111111111至于前面因为都是弓箭手单方面射所以没差最后会影响的就剩攻击模式还有回合的问题了
作者: rofellosx (鏖)   2014-03-15 09:09:00
弓手可以往后跑不给战士杀.
作者: Ebergies (火神)   2014-03-15 09:34:00
弓手可以射到最后一格再往后跑, 等战士不追了回头射死他
作者: y3k (激流を制するは静水)   2014-03-16 06:23:00
如果考虑到弓手往后移的情况 那战士"突击"之类的中距离技能是否也该考虑进来 这样整个影响的点究竟会是这些技能还是数值?XD

Links booklink

Contact Us: admin [ a t ] ucptt.com