[魯蛇] 企劃提出的構想常常被程式打槍?

作者: 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對平衡的理解也是前人那套那就又是另一個故事了但是一來我不認同,二來我想睡覺,所以先這樣吧附上我算的固定移動,獲勝機率相同" target="_blank" rel="nofollow">
然後睡覺之前最後一瞥發現我忘了攻速問題所以會修正成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