看板 LoL作者 rainnawind (正太學研究者雨颯)標題 [閒聊] 拳頭工程師分享梅爾反彈是怎麼做出來的時間 Sat Dec 20 23:00:16 2025
【身為拳頭公司程式設計師,我是如何實現梅爾的反彈的? -嗶哩嗶哩】
https://b23.tv/kZvbXd5
Up主是Riot現役程式工程師
(注意!不是設計師)
也是梅爾技能的技術開發者
分享了他是怎麼實現設計師要求的技能反彈這效果的開發過程
。本來柔伊的技能組就想做反彈,但當時技術無法實現
。初版梅爾的反彈技能更接近賽垃圾的偷大,儲存和施放是分開的
但是被設計師嫌這個版本無法做到瞬間即時反饋的效果,所以又重弄
。梅爾的核心技術是從犽宿風牆的飛設物檢測魔改出來的
。但一開始純粹統一往一個英雄方向反彈
會讓艾希W這種多個指向物全部射回她身上
所以工程師怎麼解決呢?
把 他 們 都 當 成 例 外 分 開 重 寫
幾十個技能效果全部當特例
respect
。然後後面又為了實測中發現梅爾的反彈會讓玩家混淆
搞了一個實時渲染功能,讓所有彈回去的技能變成金色
本來開發端甚至沒有實時渲染這項技術功能
還找人家軟體公司合作最後才完成
懶人包:設計師得給碼農磕頭的科技業鬼故事系列
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.188.182 (臺灣)
※ 作者: rainnawind 2025-12-20 23:00:16
※ 文章代碼(AID): #1fHhe2-5 (LoL)
※ 文章網址: https://www.ptt.cc/bbs/LoL/M.1766242818.A.F85.html
→ link5566: 印度人跟中國人完全沒有創造力 只會魔改5F 12/20 23:06
→ asd860079: 真的不要靠北工程師寫的爛 提這鬼需求的設計師沒被打死就不錯了6F 12/20 23:06
推 jeff666: 不愧是拳頭公司wwww8F 12/20 23:07
推 EQQD: 屎山程式碼就是這樣來的9F 12/20 23:07
推 qd6590: 看到都是特例 頭超痛==10F 12/20 23:08
→ dos01: 系統會越來越肥就是這些東西搞出來的11F 12/20 23:13
→ a10304025: 這樣代表每一次出新角色 梅爾也要重新更新16F 12/20 23:25
推 fff417: 看完只感嘆果然是老遊戲了18F 12/20 23:27
推 YOnew: 以後這邊出bug就一個一個改 讚喔24F 12/20 23:32
→ NoPush: 夜曲之前有確定的是Q的那團黑是一堆小兵,黑影消失等於小兵死掉,造成在遇到特朗德時就產生會讓
特朗德瘋狂回血25F 12/20 23:33
→ OPkid: 拉基PM32F 12/20 23:37
推 rhox: 設計師:我覺得這樣會很好玩,你做看看33F 12/20 23:39
※ 編輯: rainnawind (36.230.39.201 臺灣), 12/20/2025 23:42:58
→ rainnawind: 這樣好像有語病 不是"所有"都當特例重寫
他指得是艾希W like的那種多重投射物的技能
比如泡麵頭W 原本按邏輯都會從發散 反彈時變成集中這樣就太鬼了 所以"這類"技能才全部被拆開來重寫35F 12/20 23:45
推 engelba: 其實這樣才好寫 疊床架屋 反正壞也是壞梅爾= =39F 12/20 23:52
推 kiolp: 原始程式代碼太古老了 只好一項一項加進去41F 12/20 23:57
推 target8917: 跟軟體的架構有關阿 沒遇過這類問題的都覺得很好解42F 12/21 00:02
推 kevin50263: 這種堆積出來的屎山代碼 只要寫出來的人離職了 後面接替的人都會很痛苦43F 12/21 00:06
推 alpho: 光看敘述就覺得屎山代碼 ...45F 12/21 00:07
推 jeff666: 好寫是好寫阿 可是後面維護跟修改的話很痛苦46F 12/21 00:08
噓 c871111116: 笑死 拉10坨屎還能吹
這狗屎還能commit難怪整天產出垃圾50F 12/21 00:21
推 PetrVanis: 本來就只能這樣寫 程式又不是天馬行空就可以套用可以跑又可以兼顧平衡52F 12/21 00:25
推 jeff666: 都那麼大公司又不是路邊小公司 寫之前好好規劃下吧54F 12/21 00:26
→ negotiates: 設計師真的應該學寫程式 我每次聽到莫名其妙要求都會覺得很幹55F 12/21 00:26
→ WindSpread: 你要往前改 抽積木可能垮一堆 只好不停蓋違建了58F 12/21 00:35
推 kevin50263: 以後出新英雄的邏輯就是 先看技能能不能符合梅爾的反彈程式 不行就在寫多一條程式碼 繼續疊床架屋59F 12/21 00:40
推 hasroten: 還以為有甚麼神技 原來是屎山代碼61F 12/21 00:47
推 samhou6: 以後有其他交互導致BUG就好玩囉62F 12/21 00:49
推 pimachu: 暴力解永遠是你最後的手段64F 12/21 01:02
推 slackychase: 樓上那個小兵的那被設計師證實是假的了 有空可以去看那個訪問65F 12/21 01:11
→ relax1000: 上面當然給過.會覺得上面不給過絕對沒待過科技業69F 12/21 01:14
→ s111228s: 你是要寫出超幹爆屌的代碼然後超時還是寫一坨屎但準時,選前者的肯定是好研究者,選後者的肯定是好員工71F 12/21 01:21
推 LeoYuri: 蠻屌的 哈哈哈哈 不亞於一個個判斷1-1000的質數75F 12/21 01:25
推 Yuebaitw: 垃圾PM 我工作量又增加了76F 12/21 01:26
推 ntr203: 見證屎山代碼的出生77F 12/21 01:31
推 Csongs: 辛苦工程師了,代表每出一個英雄就要特例83F 12/21 02:46
推 NTUCS: 爛code85F 12/21 03:13
推 HJC6666: 設計師的美好幻想都要工程師絞盡腦汁86F 12/21 03:19
推 jkok103427: 嗯,好寫,然後以後的角色要必須跟梅爾交互,又要全部一個一個寫,哈哈 好寫88F 12/21 04:16
→ aw7square: 只能說來拳頭工作真的是對遊戲很有熱誠很有愛心錢跟大廠畢業不是很多 這老哥CMU本科畢業還來搞這種屎山
跟大廠比也*92F 12/21 04:45
推 icelocker: 一個個既能單獨寫喔 靠北 等於以後有新英雄出來的話梅爾也得跟著動刀耶 可以預期以後會BUG滿天飛了101F 12/21 08:21
噓 tim9527: 堆疊屎山 然後繼續領高薪 笨色PM==104F 12/21 08:38
推 wolver: 屎的代碼 完全不意外105F 12/21 08:44
推 howdo1793: 是自以為很了不起想炫技其實是在暴露自己短絀嗎= =106F 12/21 08:52
推 qk3380888: 為了這招感覺用超多記憶體
要存施術者的數值 方向 然後還要加金色108F 12/21 09:15
推 james3510: 能這樣硬拼有的沒的還能保證低配備能跑
其實底子還算不差?110F 12/21 09:46
推 jay228: 跑固定的程序硬體負擔不大
記憶體也應該只用存場上的英雄技能就好
反正過幾年等AI進步 到時候讓AI重寫二代就行
170個英雄的技能組 靠人去寫怎麼寫都會有BUG的
新英雄也不一定會有多重彈道 LOL也不一定剩幾年
只要能運行的方法就是好方法112F 12/21 09:58
推 Rosor: 這串一定一堆人沒寫過程式...118F 12/21 10:10
→ Tenging: 重寫有重寫的好處
這才是人比ai值錢的地方119F 12/21 10:17
推 geniusw: 底層code很爛121F 12/21 10:20
推 saviora: 寫之前要怎麼好好規劃? 前面已經堆疊這麼多
後面的人只能見招拆招了
剛建這專案時也沒想過這個遊戲能夠活下來吧123F 12/21 10:30
推 weliche: 你用現在的眼光看當然覺得屎山代碼 你覺得當初開發的那幾個會想的到後來要出這幾種機制的英雄 ?127F 12/21 10:56
推 dahIia: 屎山代碼又更屎山了129F 12/21 10:57
推 chuegou: 所以以後新英雄都要再新增例外 科科科131F 12/21 11:36
推 rb19yyds: 靠AI重寫喔 我連叫AI讀之前的測試和production code來產生新的測試 他都能寫出一陀大便了
別神話AI了132F 12/21 11:37
推 coolmayday: 每做一支新英雄就得確認賽勒斯維爾戈梅爾這三隻的互動 我是工程師肯定問候設計師全家 鍵盤甩他臉上135F 12/21 11:42
推 rb19yyds: 畢竟一開始就沒想過會有這種需求 後面要趕上開發進度 一定只能疊床架屋137F 12/21 11:47
推 DotSea: 一路switch case 到底 夭壽140F 12/21 12:11
推 CPULE: 不是 你這樣手刻 那新增腳色不就要全這樣做142F 12/21 12:25
推 roncarrot: 厲害,原來是屎山代碼堆出來的角色143F 12/21 12:32
推 JaccWu: 有新例外就再刻代碼144F 12/21 12:40
推 saviora: 下次有設計師再敢設計這種大量互動英雄就直接尻過去145F 12/21 12:41
推 Bachi87: 設計師都這樣出一張嘴 要求一堆嗎?太狗幹了吧147F 12/21 12:54
推 QoGIVoQ: PM是用什麼心情把這些狗屎寄信給RD的148F 12/21 13:01
→ rinppi: 現實是很多時候真的只能這樣疊出來XD150F 12/21 13:17
推 jhforever: 漂亮 這種code 一律ctr+a del處理151F 12/21 13:19
推 st2k8: 好笑歸好笑要預留未來的擴展空間本來就是很麻煩的你什麼都想到好永遠都寫不完
更不用說設計師還可以搞出花樣什麼是根本想不到153F 12/21 14:02
推 weliche: 所以才需要那種同時會設計又同時會程式的 那個縮寫我忘記了156F 12/21 14:17
推 heybro: IT鬼故事158F 12/21 14:22
推 st2k8: 工程師每年的生日願望都要留一個希望設計師還沒玩過dota2的meepo159F 12/21 14:24
→ tim201227: 好的設計本來就不一定要考慮怎麼實現 實現就工程師的事 考慮實現難易度才是本末倒置161F 12/21 14:25
推 weliche: 你完全說反= = 好的設計就是要考慮怎麼實現
不考慮怎麼實現跟老闆話唬爛差在哪163F 12/21 14:27
→ icd8ppl: 怎麼會有人覺得有更好的方案啊165F 12/21 14:30
推 weliche: 完全不考慮怎麼實現叫不負責任166F 12/21 14:30
→ icd8ppl: 有沒有寫過程式啦,你找一百個工程師,會有一百零一個用跟他同樣的做法167F 12/21 14:31
推 st2k8: 反正最後都是要溝通的,玩笑放一邊當初需要多少功能就寫多少是很正常的,為了活過十幾年增加內容到需要暴力魔改也是很正常的169F 12/21 14:32
→ weliche: 新入職的只能在後面跟著疊阿 不然怎麼辦172F 12/21 14:32
→ tim201227: PM開規格 RD負責做出來 做不出來再回頭討論
但設計師本質就是設計角色 頂多說有考慮實現會更好173F 12/21 14:32
推 weliche: 你都說有考慮會更好了 那怎麼會不用考慮175F 12/21 14:36
→ st2k8: 什麼架構要多乾淨擴展性要多好都是理論,而且這理論還是沒有真正共識的176F 12/21 14:38
→ weliche: 畫個飛碟叫工程師造出來 你覺得現實嗎
甚至設計角色要考慮更多 數值、入手難易 更多方方面面 怎可能光靠想像力天馬行空隨便設計178F 12/21 14:38
推 coolmayday: 所以PM就是開一堆沒經過腦袋的規格才這麼人人喊打181F 12/21 14:41
→ st2k8: 我覺得你有點滑太遠了,他說的大概就賽垃圾維爾戈這種程度的吧
做不到還是會被打槍或妥協但不影響你提出來討論182F 12/21 14:43
→ coolmayday: 出去隨便跟客戶畫餅 然後就把承諾的規格丟給RD 要RD想辦法生出來 沒生出來不干我PM的事 生出來肯定是把案子接回來的我大PM最大功臣 沒錯 就是一堆這種低能PM186F 12/21 14:45
→ tim201227: 這又不是接案子 而且我明明有說不行再討論…
預設兩端都溝通不良 那當然只有工程師自己當設計師190F 12/21 14:47
推 firingmoon: 靠北這個用skill[a,b]就能解決的事情192F 12/21 14:57
噓 pilor: RD:拉基PM193F 12/21 15:27
推 BusterPosey: 還好吧 能正常運行的就不要改 你想全部打掉弄個簡潔的一定會觸發一堆BUG 進入DEBUG地獄194F 12/21 15:28
推 zyic: 跟史一坨的代碼196F 12/21 16:20
噓 q123038468: 反彈真的是弱智技能 真的應該把這設計師開除198F 12/21 16:28
→ CannonLake: 能跑就沒問題 遇到新屎怎麼辦 寫一百種衛生紙解決阿199F 12/21 16:45
推 mathrew: 屎山程式碼,辛苦後面的新人了201F 12/21 17:09
--