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

網(wǎng)易首頁 > 網(wǎ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)作起來的。

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


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

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

所以說,游戲開發(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)直言不諱《小丑牌》的底層代碼是用“希望和夢想粘在一起的”,頗有些“俺尋思這可以,沒想到真的能行”的自嘲意味。

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

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

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



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


就說飛沒飛吧

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

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

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

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

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

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



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

離中國玩家更近的一個(gè)例子或許是《太吾繪卷》。對不少國內(nèi)玩家而言,這是一款具有劃時(shí)代意義的產(chǎn)品,感情很深,既是因?yàn)樗?dāng)初閃電般的迅速崛起,也是因?yàn)樵谀侵髮τ螒蛘桨娴穆L等待。

不少人可能還記得,回望2018年,《太吾繪卷》的代碼水平最初是被當(dāng)作神話或是傳說來傳播的。游戲制作人茄子只看了一個(gè)月Unity教程就上去寫游戲,結(jié)果“蛐蛐大神保平安,綠皮逆練代碼無BUG一遍過”,游戲順利發(fā)布并引發(fā)轟動(dòng)——事實(shí)是,游戲出色的成績和一言難盡的代碼水平構(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í)能夠使得一款好游戲更早順利發(fā)布,但同時(shí),“好代碼”能創(chuàng)造更多可能,讓一款好游戲變得更好。

2

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

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

由于代碼高度自研且沒有任何冗余的第三方庫,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)這種“像素級物理”需要極高水平的多線程架構(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)品的對外形象。

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



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



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

舉個(gè)例子,好評如潮的模擬工廠流水線游戲《異星工廠》,至今保留著他們的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é)果營收超過100萬——所以不要浪費(fèi)時(shí)間在“好看”的代碼上,為了在現(xiàn)代游戲市場中生存,需要盡快且低成本地驗(yàn)證思路。“Steam上95%的游戲不需要維護(hù),因?yàn)椴⒉怀晒?,糾結(jié)于代碼完全是白費(fèi)力氣”。



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

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

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

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

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號”用戶上傳并發(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)推薦
2-0!英超創(chuàng)紀(jì)錄:水晶宮+森林晉級,9隊(duì)全進(jìn)歐戰(zhàn)16強(qiáng),有望拿3冠

2-0!英超創(chuàng)紀(jì)錄:水晶宮+森林晉級,9隊(duì)全進(jìn)歐戰(zhàn)16強(qiáng),有望拿3冠

體育知多少
2026-02-27 07:27:23
8記三分轟28+4,四號秀升歷史第一!助飛魚腩16戰(zhàn)13勝蛻變成黑馬

8記三分轟28+4,四號秀升歷史第一!助飛魚腩16戰(zhàn)13勝蛻變成黑馬

鍋?zhàn)踊@球
2026-02-27 11:37:19
中到大雪,局部暴雪!河南迎大范圍雨雪天氣,局部積雪深度可達(dá)12厘米,氣溫驟降近10℃,出行需防滑防凍

中到大雪,局部暴雪!河南迎大范圍雨雪天氣,局部積雪深度可達(dá)12厘米,氣溫驟降近10℃,出行需防滑防凍

大象新聞
2026-02-27 08:46:16
藏得太深!星鏈離不開的7家中國公司,每一家都是全球頂尖!

藏得太深!星鏈離不開的7家中國公司,每一家都是全球頂尖!

Thurman在昆明
2026-02-26 16:52:11
這次荷蘭沒話說了!中方正式宣布:更換國內(nèi)供應(yīng)商,從此不再合作

這次荷蘭沒話說了!中方正式宣布:更換國內(nèi)供應(yīng)商,從此不再合作

曉劗就是我
2026-02-26 15:50:07
你占過最大的便宜是啥?網(wǎng)友:我也是,撿漏一個(gè)老公

你占過最大的便宜是啥?網(wǎng)友:我也是,撿漏一個(gè)老公

帶你感受人間冷暖
2026-02-25 00:17:46
撒貝寧一家回武漢走完親戚返京!老婆太漂亮,龍鳳胎身高沒有隨爹

撒貝寧一家回武漢走完親戚返京!老婆太漂亮,龍鳳胎身高沒有隨爹

大中國
2026-02-26 18:05:01
新加坡住了一年才敢說:被吹上天的居者有其屋,其實(shí)是一地雞毛

新加坡住了一年才敢說:被吹上天的居者有其屋,其實(shí)是一地雞毛

天下霸奇
2026-02-24 08:09:25
沈陽富家千金身家十幾億,破產(chǎn)后賣2000萬奢侈品,餐廳打工已看淡

沈陽富家千金身家十幾億,破產(chǎn)后賣2000萬奢侈品,餐廳打工已看淡

牛牛叨史
2026-02-25 22:04:38
2026年正在崩盤的5個(gè)行業(yè)!聰明人早跑光了,傻子還在往里沖!

2026年正在崩盤的5個(gè)行業(yè)!聰明人早跑光了,傻子還在往里沖!

生活新鮮市
2026-02-17 10:37:00
湖人內(nèi)訌的元兇?米切爾:球員們厭倦和他打球,保羅:他不防守!

湖人內(nèi)訌的元兇?米切爾:球員們厭倦和他打球,保羅:他不防守!

你的籃球頻道
2026-02-27 09:49:26
火箭113-108魔術(shù)2喜2憂!謝潑德+史密斯太好用,阿門+電風(fēng)扇廢了

火箭113-108魔術(shù)2喜2憂!謝潑德+史密斯太好用,阿門+電風(fēng)扇廢了

籃球資訊達(dá)人
2026-02-27 11:33:07
火箭19分逆轉(zhuǎn)113-108客勝魔術(shù),杜蘭特40+8,謝潑德20分

火箭19分逆轉(zhuǎn)113-108客勝魔術(shù),杜蘭特40+8,謝潑德20分

懂球帝
2026-02-27 11:34:34
“太恐怖,iPhone半夜自己給陌生人打47分鐘電話!”

“太恐怖,iPhone半夜自己給陌生人打47分鐘電話!”

都市快報(bào)橙柿互動(dòng)
2026-02-25 11:28:41
《王牌特工》男主演“禿”然亮相驚呆網(wǎng)友,此前被稱為“英倫男神”,頭發(fā)茂密

《王牌特工》男主演“禿”然亮相驚呆網(wǎng)友,此前被稱為“英倫男神”,頭發(fā)茂密

紅星新聞
2026-02-26 20:22:15
ESPN:40歲吉布森與灰熊簽約2年,將成為NBA第35位40+球員

ESPN:40歲吉布森與灰熊簽約2年,將成為NBA第35位40+球員

懂球帝
2026-02-27 09:37:05
一級軍士長的地位有多高?相當(dāng)于什么級別?為何師長見了都得敬禮

一級軍士長的地位有多高?相當(dāng)于什么級別?為何師長見了都得敬禮

觀銳器
2026-02-26 22:20:40
最可惜的十位革命先烈,每一位都足以改變歷史

最可惜的十位革命先烈,每一位都足以改變歷史

【歷史客?!?/span>
2026-02-25 10:00:31
世預(yù)賽-中國臺(tái)北男籃爆冷大勝韓國 陳盈駿13+5+4林庭謙18分

世預(yù)賽-中國臺(tái)北男籃爆冷大勝韓國 陳盈駿13+5+4林庭謙18分

醉臥浮生
2026-02-26 20:55:30
18歲亞馬爾新歡曝光:21歲網(wǎng)紅 巴薩鐵粉!取代閨蜜上位

18歲亞馬爾新歡曝光:21歲網(wǎng)紅 巴薩鐵粉!取代閨蜜上位

葉青足球世界
2026-02-26 16:21:14
2026-02-27 11:51:00
游研社 incentive-icons
游研社
為你帶來有趣而專業(yè)的游戲內(nèi)容
7113文章數(shù) 85868關(guān)注度
往期回顧 全部

游戲要聞

棒雞小心眼?新游《馬拉松》屏蔽了友商游戲名!

頭條要聞

特朗普在白宮"宴請"奪金的美國男子冰球隊(duì):吃麥當(dāng)勞

頭條要聞

特朗普在白宮"宴請"奪金的美國男子冰球隊(duì):吃麥當(dāng)勞

體育要聞

一場必須要贏的比賽,男籃何止擊敗了裁判

娛樂要聞

繼網(wǎng)暴谷愛凌后 美國欲沒收其全部收入

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

魅族手機(jī),終成棄子?

科技要聞

英偉達(dá)業(yè)績亮眼仍跌5% 兩大因素成核心隱憂

汽車要聞

寶馬X5傳承版發(fā)布:給經(jīng)典G05的一場體面謝幕?

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

家居
手機(jī)
藝術(shù)
旅游
公開課

家居要聞

素色肌理 品意式格調(diào)

手機(jī)要聞

內(nèi)存價(jià)格暴漲!第一個(gè)撐不住的手機(jī)品牌出現(xiàn):魅族宣布暫停手機(jī)新品研發(fā)

藝術(shù)要聞

紫氣東來,好運(yùn)一整年!

旅游要聞

整整倆月!河南這家5A級景區(qū)對全國游客免門票

公開課

李玫瑾:為什么性格比能力更重要?

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