国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

游戲代碼應(yīng)該追求優(yōu)美,還是能跑就行?

0
分享至



游戲代碼的道與術(shù)。

今年我玩了近百個(gè)小時(shí)的《哈迪斯2》,其中一部分時(shí)間是在游戲的文件夾中度過的。

樂趣在于,《哈迪斯2》的大量核心邏輯、技能數(shù)值和關(guān)卡流程都是用Lua腳本編寫的,這些文件直接以純文本形式存在于游戲目錄中,可讀性很高,任何玩家都可以輕松閱讀、理解。

換句話說,進(jìn)入磁盤文件尋找contents/scripts,這其中的將近480個(gè)文件、50多萬行l(wèi)ua代碼,就像一本細(xì)致的游戲設(shè)定集,讓你能夠深入了解游戲的各個(gè)系統(tǒng)包含有哪些內(nèi)容,又是怎樣運(yùn)作起來的。

比如說,眾所周知“哈迪斯”系列以文本量大著稱,十分注重劇情故事和人物塑造,而在這些文件中,就可以找到所有角色的全部對(duì)話。


對(duì)劇情有興趣的玩家在翻看時(shí),得做好“劇透”的準(zhǔn)備

清晰易讀的另一個(gè)好處是,不僅便于開發(fā)者后期對(duì)游戲的維護(hù)和拓展,同時(shí)也給與玩家更多操作的可能——因?yàn)橛螒驍?shù)值清晰可見,所以修改起來無非就是改動(dòng)下數(shù)字,幾乎不費(fèi)功夫;Mod作者也不需要進(jìn)行復(fù)雜的逆向工程,還能結(jié)合開發(fā)者留下的注釋作為教程,難怪游戲在玩家社群中被稱為“對(duì)Mod”最友好的游戲。



12月剛剛在玩家社區(qū)引起熱議的人氣Mod《扎格列歐斯之旅(Zagreus Journey)》就是個(gè)挺典型的例子。

這個(gè)大型Mod允許玩家直接操縱2代主角墨利諾厄重新體驗(yàn)1代的全部冒險(xiǎn),不僅全面復(fù)刻了1代的關(guān)卡、敵人,還調(diào)整適配了戰(zhàn)斗機(jī)制,全面支持阿卡那牌、忠誓任務(wù)、信物等系統(tǒng),新增了數(shù)十種收集資源與大量劇情故事。



如果不是《哈迪斯2》的“代碼底子”足夠好,很難想象MOD作者能夠單槍匹馬在不到一年的時(shí)間里完成這么大的工作量。

這當(dāng)然是游戲的開發(fā)商Supergiant Games有意為之。早在2020年的初代《哈迪斯》時(shí)期,其就在與玩家交流的問答環(huán)節(jié)提及:“游戲的許多方面都很容易修改,因?yàn)閿?shù)據(jù)都是公開的。”玩家能夠更改所有的文本和數(shù)字,并為游戲自由添加內(nèi)容不受限制。

而哈迪斯的口碑和熱度延續(xù),似乎也一定程度論證了“好代碼”的積極作用:不論從日后持續(xù)迭代游戲或是激活玩家參與內(nèi)容創(chuàng)作的角度,這些“背后功夫”都不是白做,還能夠賦予作品更廣闊的成長(zhǎng)空間。

所以說,游戲開發(fā)者有什么理由不去盡力優(yōu)化代碼呢?

1

還真有;蛘哒f,代碼“能跑就行”,至今仍是游戲行業(yè)中的一種普遍論調(diào)。

2024年的《小丑牌》拿獎(jiǎng)拿到手軟,儼然被行業(yè)視為風(fēng)向標(biāo),但其游戲代碼卻遠(yuǎn)不如游戲設(shè)計(jì)那么優(yōu)美,許多復(fù)雜的游戲邏輯,如不同小丑牌的效果疊加、分?jǐn)?shù)計(jì)算,都是直接用大量的、嵌套的if-else語句堆砌而成,導(dǎo)致代碼看起來原始且重復(fù)。





游戲開發(fā)者LocalThunk曾經(jīng)直言不諱《小丑牌》的底層代碼是用“希望和夢(mèng)想粘在一起的”,頗有些“俺尋思這可以,沒想到真的能行”的自嘲意味。

當(dāng)時(shí)也有不少遺憾的聲音,表示這樣的底層代碼使得《小丑牌》難以隨著時(shí)間的推進(jìn)進(jìn)化、拓展機(jī)制。

然而在相關(guān)討論中,經(jīng)常是支持者占了上風(fēng)。一方面,大量的if-else語句在代碼效率上固然不算好,但同時(shí)也具備容易理解的優(yōu)勢(shì),這使得玩家能夠相對(duì)輕松地在核心玩法框架不變的前提下添加新的小丑牌。

另一方面,不少游戲開發(fā)者都站出來解釋,如果代碼能夠正常運(yùn)行,那么就沒必要鉆牛角尖。例如一位曾供職過R星的獨(dú)立開發(fā)者就表示:“要記住目標(biāo)是發(fā)布游戲,而不是編寫最簡(jiǎn)潔、最優(yōu)雅的代碼。”



這些支持者大多認(rèn)為,只要代碼能跑,便于調(diào)試,并且沒有嚴(yán)重影響性能,那就已經(jīng)合格——大多數(shù)情況下,只要達(dá)成上述條件,玩家也不會(huì)在意游戲背后的代碼如何運(yùn)作。


就說飛沒飛吧

事實(shí)上, LocalThunk最終也是這么達(dá)成了自我和解:“它并不完美,但我知道每個(gè)東西在哪里,而且我是唯一需要維護(hù)它的人,所以這對(duì)我來說很有意義。如果它很蠢但是有效,那么它就不蠢!”

LocalThunk原本就只是一位業(yè)余游戲開發(fā)者,在游戲開發(fā)過程中神經(jīng)一直繃得很緊。根據(jù)其自己發(fā)表的開發(fā)記錄,《小丑牌》完成之前,他已經(jīng)長(zhǎng)期焦慮、失眠,甚至一度因焦慮癥發(fā)作去了醫(yī)院。

可以想象,在開發(fā)者光是為了構(gòu)思創(chuàng)意、實(shí)現(xiàn)創(chuàng)意就已經(jīng)費(fèi)盡心神的情況下,很多時(shí)候是無暇顧及“精修”代碼的。

不是所有人都擁有高超的編程技術(shù),對(duì)于創(chuàng)意工作者,花費(fèi)時(shí)間在代碼上,往往意味著打磨創(chuàng)意、填充內(nèi)容的時(shí)間被擠占。

真要以代碼水平去要求《小丑牌》的話,此消彼長(zhǎng)下,游戲的創(chuàng)意水平大概率達(dá)不到今天的高度,甚至連游戲能否正常發(fā)布都得打個(gè)問號(hào)——這其實(shí)是大多數(shù)獨(dú)立游戲都會(huì)面臨的問題。

很多玩家今天耳熟能詳?shù)淖髌,?shí)際上都充當(dāng)過編程的反面教材!秱髡f之下》作者在處理對(duì)話系統(tǒng)時(shí)使用了一個(gè)巨大的switch語句,導(dǎo)致游戲中的每一個(gè)對(duì)話分支、每一個(gè)角色的每一句話,幾乎都堆在一個(gè)幾萬行的超大函數(shù)里;《蔚藍(lán)》的主角控制邏輯包含了超過5000行代碼,攀爬、跳躍、沖刺、物理判定、動(dòng)畫切換,全部擠在一個(gè)文件里;初代《我的世界》的Java代碼也是出了名的隨性混亂,致使游戲底層架構(gòu)臃腫,后續(xù)花了多年時(shí)間重做。



知名程序員、id Software創(chuàng)始人之一約翰·卡馬克曾舉證:“我兒子說‘寫代碼不過是if、else和for循環(huán)而已’”

離中國(guó)玩家更近的一個(gè)例子或許是《太吾繪卷》。對(duì)不少國(guó)內(nèi)玩家而言,這是一款具有劃時(shí)代意義的產(chǎn)品,感情很深,既是因?yàn)樗?dāng)初閃電般的迅速崛起,也是因?yàn)樵谀侵髮?duì)游戲正式版的漫長(zhǎng)等待。

不少人可能還記得,回望2018年,《太吾繪卷》的代碼水平最初是被當(dāng)作神話或是傳說來傳播的。游戲制作人茄子只看了一個(gè)月Unity教程就上去寫游戲,結(jié)果“蛐蛐大神保平安,綠皮逆練代碼無BUG一遍過”,游戲順利發(fā)布并引發(fā)轟動(dòng)——事實(shí)是,游戲出色的成績(jī)和一言難盡的代碼水平構(gòu)成了鮮明的反差,繼而成為其最早的一大記憶點(diǎn)。



如果故事只到這里,那么或許還稱得上因禍得福。但EA上架的《太吾繪卷》和上線時(shí)已經(jīng)趨于完成的《小丑牌》處境并不相同,游戲的玩法框架要更自由,茄子本身也還有更多的想法要去實(shí)現(xiàn)。

這就導(dǎo)致原本的代碼無力承載,茄子則在游戲大獲成功后迅速表態(tài)希望“把游戲里千瘡百孔的代碼一一修補(bǔ)起來,為大家?guī)硪粋(gè)在程序上,更強(qiáng)健、穩(wěn)定、高效的好玩的游戲”。

后來《太吾繪卷》花了那么大力氣去償還技術(shù)債務(wù),大概也是意識(shí)到,“差代碼”有時(shí)能夠使得一款好游戲更早順利發(fā)布,但同時(shí),“好代碼”能創(chuàng)造更多可能,讓一款好游戲變得更好。

2

好的代碼能發(fā)揮什么作用?

2024年與《小丑牌》有并駕齊驅(qū)之勢(shì)的《動(dòng)物井》,開發(fā)者Billy Basso歷時(shí)七年,基于C++自行開發(fā)游戲引擎。最終,這款畫面精致、動(dòng)態(tài)光影復(fù)雜的2D像素游戲,安裝體積被壓縮到極致的33MB。

由于代碼高度自研且沒有任何冗余的第三方庫(kù),Basso能夠?qū)τ螒虻母鱾(gè)方面進(jìn)行完全的掌控,同時(shí)也滿足了他構(gòu)建和理解底層系統(tǒng)的樂趣。

比如游戲中讓玩家印象深刻的視覺效果和光照,他表示沒有采用單一的著色器,而是使用了約50個(gè)小的獨(dú)立技術(shù),包括動(dòng)態(tài)陰影、邊緣光照、水體效果、流體系統(tǒng)等等。


Basso在GDC上的技術(shù)分享

最終,這種優(yōu)美的底層代碼為游戲的解謎提供了物理層面的深度,也從根本上影響了游戲核心的解謎機(jī)制。

玩家或許不會(huì)直接審視代碼的好壞,但更好的代碼確有可能為玩家?guī)砀鼮閮?yōu)質(zhì)的游戲體驗(yàn)和更深刻的印象,就像Basso曾表示《動(dòng)物井》還可以做到更。骸叭绻抑廊藗儠(huì)如此印象深刻,我可能會(huì)更加努力地縮小它”。

也可以說,當(dāng)游戲的核心玩法樂趣高度依賴代碼的復(fù)雜功能時(shí),后者的存在感難免愈發(fā)明顯。

高自由度的《Noita》以技術(shù)著稱,游戲只設(shè)定下物質(zhì)的基本規(guī)則,如水遇火變蒸汽,酸腐蝕木頭,剩余的一切交給玩家自行探索,從中誕生出了各種超乎預(yù)想的玩法和戰(zhàn)術(shù)。



其玩法核心的背后是自研的“Falling Sand”引擎:屏幕上的每一顆像素——無論是流動(dòng)的液體、燃燒的火焰還是被炸碎的巖石——都具備獨(dú)立的物理屬性和化學(xué)反應(yīng)邏輯。

實(shí)現(xiàn)這種“像素級(jí)物理”需要極高水平的多線程架構(gòu)和數(shù)學(xué)建模,相應(yīng)的,開發(fā)團(tuán)隊(duì)設(shè)計(jì)了一套極其穩(wěn)健的實(shí)體組件系統(tǒng)(ECS),使得成千上萬個(gè)具備物理屬性的像素點(diǎn)可以相互碰撞、傳導(dǎo)溫度、發(fā)生相變。

從這個(gè)角度看,代碼已經(jīng)不止是實(shí)現(xiàn)創(chuàng)意的工具,而是作為創(chuàng)意本身與玩家發(fā)生交互。

放在過去,好的代碼往往是隱形的。就像一個(gè)人身體健康,那么一切都自然而然,只有哪個(gè)部位出了毛病,才會(huì)清晰感知到其存在。

但隨著游戲品類的豐富,開發(fā)者與玩家之間的關(guān)系拉近,代碼時(shí)不時(shí)也會(huì)浮出水面,作為開發(fā)者“研發(fā)態(tài)度”的象征,進(jìn)而影響到產(chǎn)品的對(duì)外形象。

像《戴森球計(jì)劃》早期做技術(shù)分享,就有玩家“恍然大悟”,都是模擬類游戲,為何戴森球十分流暢,隔壁天際線卻卡到不行。



包括前面提到的哈迪斯,也是因此收獲玩家盛贊,即便玩家可能看不懂代碼,但至少讀得出誠(chéng)意。



隨之而來的是,伴隨著游戲的長(zhǎng)線運(yùn)營(yíng),“優(yōu)美的代碼”也成為需要持續(xù)維護(hù)的對(duì)象。

舉個(gè)例子,好評(píng)如潮的模擬工廠流水線游戲《異星工廠》,至今保留著他們的Factorio Friday Facts每周博客文章,目前已更新到400多篇,事無巨細(xì)地與玩家分享詳細(xì)的更新內(nèi)容、開發(fā)見解、新功能和游戲機(jī)制,技術(shù)細(xì)節(jié)涵蓋從引擎改進(jìn)到代碼效率提升的方方面面。



這下,連代碼也成為維系玩家的紐帶了。



結(jié)語

回到最開始的問題,游戲代碼應(yīng)該追求優(yōu)美,還是能跑就行?

我在reddit上翻到一篇關(guān)于“好代碼”重要性的帖子,一位小有名氣的游戲制作人Tomas Sala和網(wǎng)友論辯了十來個(gè)回合,幾乎快演變?yōu)槿松砉,依舊難分勝負(fù)。

Sala堅(jiān)持“創(chuàng)意落地”優(yōu)先于“代碼優(yōu)化”,功能性雖然重要,但更關(guān)鍵的是向玩家提供一種獨(dú)特的體驗(yàn)。

以他自己的作品《堡壘:獵鷹戰(zhàn)紀(jì)》為例,就是以一種“又快又野”的實(shí)用方式寫出來的,結(jié)果營(yíng)收超過100萬——所以不要浪費(fèi)時(shí)間在“好看”的代碼上,為了在現(xiàn)代游戲市場(chǎng)中生存,需要盡快且低成本地驗(yàn)證思路。“Steam上95%的游戲不需要維護(hù),因?yàn)椴⒉怀晒,糾結(jié)于代碼完全是白費(fèi)力氣”。



網(wǎng)友則反擊,代碼做得越好,迭代與打磨玩法樂趣就更容易。優(yōu)化代碼、提升代碼能力,本質(zhì)上是一種對(duì)未來的投資,既能為今后作品做更好的鋪墊,也能有效避免后續(xù)的技術(shù)債務(wù)。

這背后倒是讓人體會(huì)到兩種并行的市場(chǎng)背景。一邊是3A沒落,獨(dú)立游戲來到行業(yè)地位高點(diǎn),從業(yè)人員更加崇尚“創(chuàng)意為先”。對(duì)于以機(jī)制創(chuàng)意或敘事驅(qū)動(dòng)的作品,“能跑就行”的代碼性價(jià)比高,因?yàn)槠浜诵镊攘υ谟凇包c(diǎn)子”,代碼只是完成創(chuàng)意的工具。

另一邊,長(zhǎng)線運(yùn)營(yíng)成為行業(yè)常態(tài),保持游戲活力、維護(hù)玩家關(guān)系成為了大趨勢(shì)。再加上AI技術(shù)的發(fā)展,技術(shù)普惠進(jìn)一步降低了玩家參與游戲內(nèi)容創(chuàng)作的門檻,這又對(duì)游戲代碼提出了更高的要求。

而所謂的“好、壞代碼”,或許也只是南橘北枳罷了。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
揭秘朝鮮御用神秘組織“歡樂組”:成員全部是女孩,傳言很神秘

揭秘朝鮮御用神秘組織“歡樂組”:成員全部是女孩,傳言很神秘

科學(xué)發(fā)掘
2025-12-28 10:44:12
陳曉帶著,秦昊護(hù)著,郭京飛寵著,演了19部戲,終于紅了

陳曉帶著,秦昊護(hù)著,郭京飛寵著,演了19部戲,終于紅了

小椰的奶奶
2025-12-28 08:54:10
新娘子長(zhǎng)得像明星章子怡,新郎成了全村人的驕傲!

新娘子長(zhǎng)得像明星章子怡,新郎成了全村人的驕傲!

小李子體育
2025-12-27 13:59:56
中方制裁準(zhǔn)時(shí)開始,30道通牒發(fā)往美國(guó),直接叫停合作,財(cái)產(chǎn)全凍結(jié)

中方制裁準(zhǔn)時(shí)開始,30道通牒發(fā)往美國(guó),直接叫停合作,財(cái)產(chǎn)全凍結(jié)

文雅筆墨
2025-12-28 16:40:19
據(jù)說全球僅20例!巴西一女子在同一晚與2名男子發(fā)生了關(guān)系

據(jù)說全球僅20例!巴西一女子在同一晚與2名男子發(fā)生了關(guān)系

忠于法紀(jì)
2025-12-04 11:25:07
帕金斯:詹姆斯的肢體語言透露出沮喪,他與湖人的關(guān)系已到盡頭

帕金斯:詹姆斯的肢體語言透露出沮喪,他與湖人的關(guān)系已到盡頭

懂球帝
2025-12-27 20:20:08
保護(hù)心臟,朝左睡還是朝右睡好?醫(yī)生:若想心臟健康,做好...

保護(hù)心臟,朝左睡還是朝右睡好?醫(yī)生:若想心臟健康,做好...

袁醫(yī)生課堂
2025-12-25 07:34:23
陪睡陪玩只是冰山一角!萬達(dá)蒸發(fā)800億后,王思聰再次傳出大丑聞

陪睡陪玩只是冰山一角!萬達(dá)蒸發(fā)800億后,王思聰再次傳出大丑聞

民間平哥
2025-12-25 14:54:58
不再執(zhí)教全紅嬋?陳若琳生日,陳芋汐慶生,誰注意全紅嬋舉動(dòng)

不再執(zhí)教全紅嬋?陳若琳生日,陳芋汐慶生,誰注意全紅嬋舉動(dòng)

樂聊球
2025-12-28 11:46:04
時(shí)機(jī)已到,大陸開始收網(wǎng),2道通緝令發(fā)往臺(tái)島,臺(tái)當(dāng)局后果自負(fù)

時(shí)機(jī)已到,大陸開始收網(wǎng),2道通緝令發(fā)往臺(tái)島,臺(tái)當(dāng)局后果自負(fù)

特特農(nóng)村生活
2025-12-28 14:03:25
華為目前值得撿漏的一款手機(jī),從3699元降至2069元,100W+6000萬

華為目前值得撿漏的一款手機(jī),從3699元降至2069元,100W+6000萬

科技阿維
2025-12-26 18:42:00
得知美國(guó)向日本扔了原子彈,全延安都在慶祝,毛主席卻氣得拍了桌子:這是原則錯(cuò)誤!

得知美國(guó)向日本扔了原子彈,全延安都在慶祝,毛主席卻氣得拍了桌子:這是原則錯(cuò)誤!

史海殘?jiān)?/span>
2025-12-27 19:15:21
彈劾提案高票通過,鄭將接管臺(tái)灣事務(wù),統(tǒng)一或提前到來

彈劾提案高票通過,鄭將接管臺(tái)灣事務(wù),統(tǒng)一或提前到來

咸魚金腦袋
2025-12-28 08:33:57
孫穎莎、王楚欽落選!樊振東陳夢(mèng)王曼昱入選虎撲十大運(yùn)動(dòng)員榜單

孫穎莎、王楚欽落選!樊振東陳夢(mèng)王曼昱入選虎撲十大運(yùn)動(dòng)員榜單

鯨鯡魚體壇
2025-12-27 22:05:06
南博風(fēng)波后續(xù):全網(wǎng)追查“借畫不還”的神秘老同志,揭開歷史迷霧

南博風(fēng)波后續(xù):全網(wǎng)追查“借畫不還”的神秘老同志,揭開歷史迷霧

公子麥少
2025-12-21 14:54:43
這次終于輪到美國(guó)“強(qiáng)烈反對(duì)”:46年了,就沒有受過這樣的窩囊氣

這次終于輪到美國(guó)“強(qiáng)烈反對(duì)”:46年了,就沒有受過這樣的窩囊氣

阿芒娛樂說
2025-12-28 17:20:07
營(yíng)長(zhǎng)打了兩仗,一次擅自行動(dòng),一次抗命出擊,毛主席:提三級(jí)使用

營(yíng)長(zhǎng)打了兩仗,一次擅自行動(dòng),一次抗命出擊,毛主席:提三級(jí)使用

老謝談史
2025-12-28 16:25:02
1854年,廣東土客大械斗,傷亡超百萬人,無數(shù)客家人被迫離開廣東

1854年,廣東土客大械斗,傷亡超百萬人,無數(shù)客家人被迫離開廣東

銘記歷史呀
2025-12-26 18:33:05
“早餐這么豐盛,女兒還翻白眼”,2.2w人怒了:讓她餓肚子上學(xué)!

“早餐這么豐盛,女兒還翻白眼”,2.2w人怒了:讓她餓肚子上學(xué)!

卷史
2025-12-26 21:18:25
葉童說:我知道他在香港當(dāng)保安收入很低,但我不會(huì)去看他。

葉童說:我知道他在香港當(dāng)保安收入很低,但我不會(huì)去看他。

特約前排觀眾
2025-12-28 00:15:06
2025-12-28 18:35:00
游研社 incentive-icons
游研社
為你帶來有趣而專業(yè)的游戲內(nèi)容
7031文章數(shù) 85859關(guān)注度
往期回顧 全部

游戲要聞

PS5到底還能戰(zhàn)幾年?外媒解析“買或等PS6”

頭條要聞

賴清德彈劾案通過 臺(tái)媒體人:2026年要讓賴輸?shù)矫撗?/h3>

頭條要聞

賴清德彈劾案通過 臺(tái)媒體人:2026年要讓賴輸?shù)矫撗?/h3>

體育要聞

83分鐘絕殺!曼城2-1年度收官:英超6連勝狂飆

娛樂要聞

白敬亭現(xiàn)身冰雪大世界 拍視頻還翻車了

財(cái)經(jīng)要聞

英偉達(dá)的收購(gòu)史

科技要聞

特斯拉將在華布局自動(dòng)駕駛?記者求證→

汽車要聞

理想的2026:L9不容有失,i9再戰(zhàn)純電?

態(tài)度原創(chuàng)

房產(chǎn)
教育
藝術(shù)
游戲
軍事航空

房產(chǎn)要聞

降維打擊!三亞CBD驚現(xiàn)“豪宅新王”,高端局要變天了!

教育要聞

434所保研大學(xué)名單公布!參加考研?不!去上這些保研大學(xué)

藝術(shù)要聞

郭沫若為何輸給康生?只因后者練過一部“百億法帖”,內(nèi)藏古人秘法

反復(fù)鞭尸!玩家讓《星鳴特攻》黑人女性一秒變女神

軍事要聞

與特朗普會(huì)晤前 澤連斯基亮明“紅線”

無障礙瀏覽 進(jìn)入關(guān)懷版