[魯蛇] 企劃提出的構想常常被程式打槍?
如果不是此板討論的方向,麻煩版主請刪文,謝謝^^
本人是在假日沒事自己寫小遊戲的程式魯蛇,
沒遊戲公司上班過^^
最近在「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
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.249.117.38
※ 編輯: StupidGaGa 來自: 60.249.117.38 (03/10 13:32)
※ 編輯: StupidGaGa 來自: 60.249.117.38 (03/10 13:34)
※ 編輯: StupidGaGa 來自: 60.249.117.38 (03/10 13:41)
推
03/10 14:32, , 1F
03/10 14:32, 1F
→
03/10 14:45, , 2F
03/10 14:45, 2F
→
03/10 17:23, , 3F
03/10 17:23, 3F
→
03/10 17:23, , 4F
03/10 17:23, 4F
→
03/10 17:23, , 5F
03/10 17:23, 5F
→
03/10 18:25, , 6F
03/10 18:25, 6F
→
03/10 18:26, , 7F
03/10 18:26, 7F
→
03/10 18:28, , 8F
03/10 18:28, 8F
推
03/10 20:19, , 9F
03/10 20:19, 9F
→
03/10 20:58, , 10F
03/10 20:58, 10F
推
03/10 21:18, , 11F
03/10 21:18, 11F
推
03/10 21:23, , 12F
03/10 21:23, 12F
推
03/11 00:16, , 13F
03/11 00:16, 13F
→
03/11 00:16, , 14F
03/11 00:16, 14F
→
03/11 00:33, , 15F
03/11 00:33, 15F
推
03/11 01:03, , 16F
03/11 01:03, 16F
→
03/11 01:04, , 17F
03/11 01:04, 17F
推
03/11 01:08, , 18F
03/11 01:08, 18F
→
03/11 01:08, , 19F
03/11 01:08, 19F
→
03/11 01:09, , 20F
03/11 01:09, 20F
→
03/11 01:09, , 21F
03/11 01:09, 21F
推
03/11 08:30, , 22F
03/11 08:30, 22F
→
03/11 08:31, , 23F
03/11 08:31, 23F
→
03/11 08:31, , 24F
03/11 08:31, 24F
→
03/11 08:31, , 25F
03/11 08:31, 25F
→
03/11 08:32, , 26F
03/11 08:32, 26F
→
03/11 08:33, , 27F
03/11 08:33, 27F
→
03/11 08:33, , 28F
03/11 08:33, 28F
※ 編輯: StupidGaGa 來自: 36.233.102.232 (03/11 08:52)
→
03/11 08:53, , 29F
03/11 08:53, 29F
→
03/11 08:54, , 30F
03/11 08:54, 30F
→
03/11 08:57, , 31F
03/11 08:57, 31F
→
03/11 09:02, , 32F
03/11 09:02, 32F
→
03/11 09:03, , 33F
03/11 09:03, 33F
推
03/11 10:08, , 34F
03/11 10:08, 34F
→
03/11 10:08, , 35F
03/11 10:08, 35F
推
03/11 10:45, , 36F
03/11 10:45, 36F
→
03/11 11:19, , 37F
03/11 11:19, 37F
→
03/11 11:28, , 38F
03/11 11:28, 38F
還有 22 則推文
→
03/11 18:02, , 61F
03/11 18:02, 61F
→
03/12 10:16, , 62F
03/12 10:16, 62F
推
03/12 15:14, , 63F
03/12 15:14, 63F
→
03/12 17:04, , 64F
03/12 17:04, 64F
→
03/12 17:05, , 65F
03/12 17:05, 65F
→
03/12 17:06, , 66F
03/12 17:06, 66F
→
03/12 19:06, , 67F
03/12 19:06, 67F
推
03/12 21:17, , 68F
03/12 21:17, 68F
推
03/12 23:40, , 69F
03/12 23:40, 69F
→
03/12 23:41, , 70F
03/12 23:41, 70F
→
03/12 23:41, , 71F
03/12 23:41, 71F
→
03/12 23:41, , 72F
03/12 23:41, 72F
→
03/12 23:42, , 73F
03/12 23:42, 73F
→
03/12 23:43, , 74F
03/12 23:43, 74F
→
03/12 23:43, , 75F
03/12 23:43, 75F
→
03/13 17:26, , 76F
03/13 17:26, 76F
推
03/15 01:03, , 77F
03/15 01:03, 77F
推
03/15 01:06, , 78F
03/15 01:06, 78F
推
03/15 06:10, , 79F
03/15 06:10, 79F
→
03/15 06:11, , 80F
03/15 06:11, 80F
→
03/15 06:11, , 81F
03/15 06:11, 81F
→
03/15 06:12, , 82F
03/15 06:12, 82F
→
03/15 06:12, , 83F
03/15 06:12, 83F
→
03/15 06:13, , 84F
03/15 06:13, 84F
→
03/15 06:14, , 85F
03/15 06:14, 85F
→
03/15 06:16, , 86F
03/15 06:16, 86F
推
03/15 06:27, , 87F
03/15 06:27, 87F
→
03/15 06:28, , 88F
03/15 06:28, 88F
→
03/15 06:28, , 89F
03/15 06:28, 89F
→
03/15 06:30, , 90F
03/15 06:30, 90F
→
03/15 06:34, , 91F
03/15 06:34, 91F
→
03/15 06:35, , 92F
03/15 06:35, 92F
→
03/15 06:36, , 93F
03/15 06:36, 93F
→
03/15 06:37, , 94F
03/15 06:37, 94F
結果一推人的算法都不一樣,哈哈哈
到底有沒有正解阿~"~
→
03/15 09:09, , 95F
03/15 09:09, 95F
推
03/15 09:34, , 96F
03/15 09:34, 96F
→
03/16 06:23, , 97F
03/16 06:23, 97F
→
03/16 06:23, , 98F
03/16 06:23, 98F
※ 編輯: StupidGaGa 來自: 60.249.117.38 (03/19 14:11)
討論串 (同標題文章)