AI小鎮(zhèn)真的是火,我們AI群里一天到晚在說小鎮(zhèn)的故事。
全名叫Aivilization,是一個由港科大研發(fā)的,結(jié)合人工智能、游戲機(jī)制與社會實(shí)驗(yàn)的開放式項(xiàng)目。
網(wǎng)址:aivilization.ai,可以創(chuàng)造一個屬于你自己的AI小人,據(jù)說已經(jīng)入駐了十萬個智能體。十萬嬉皮,便是我們每個人。
![]()
小鎮(zhèn)故事多,戀愛好幾波,甚至造了芯片好幾個?上班的我,心里癢啊。
![]()
下班迫不及待去打開,但是卡在登錄界面,一分多鐘才進(jìn)去,據(jù)說現(xiàn)在每天10萬人在玩,每人登錄一次,那就是要等待10萬分鐘,69天!都在這里loading!
![]()
而且離譜的是這個網(wǎng)頁游戲占內(nèi)存兩個G!
![]()
這兩個問題其實(shí)是一個原因,我們來分析下怎么辦
在 https://game.aivilization.cn/ 游戲頁面,按F12
這就打開了開發(fā)者工具,切到memory標(biāo)簽
![]()
把heap snapshot take下來
![]()
然后下載到本地文件夾
![]()
這就可以分析了:
native 類型對象:1864.40 MB (占比約 85.5%)
hidden 類型對象:293.79 MB (占比約 13.5%)
array 類型對象:10.93 MB
code 類型對象:4.91 MB
string 類型對象:2.86 MB
其中,native 和 hidden 類型對象占據(jù)了絕大部分內(nèi)存。這通常意味著游戲使用了大量的原生資源(如紋理、模型、音頻等)或存在大量未被 JavaScript 直接引用的內(nèi)部對象。
我們玩家自己能做的,就只有開啟硬件加速,關(guān)閉其他軟件,免得卡。(chrome默認(rèn)是開啟的)
![]()
給港科大開發(fā)者的技術(shù)建議
針對native和hidden對象占用大量內(nèi)存的問題,建議 AIVILIZATION 游戲開發(fā)者:
資源優(yōu)化:
紋理壓縮與尺寸優(yōu)化:檢查游戲中的紋理資源,使用更高效的壓縮格式(如 ASTC, ETC2, PVRTC)并確保紋理尺寸合理。對于不需要高分辨率的場景,使用低分辨率紋理。
模型優(yōu)化:減少模型的多邊形數(shù)量,使用 LOD (Level of Detail) 技術(shù),在不同距離下加載不同精度的模型。
音頻壓縮:優(yōu)化音頻文件大小,使用流式加載而非一次性加載所有音頻。
資源按需加載:避免在游戲啟動時一次性加載所有資源。根據(jù)玩家的進(jìn)度和場景需求,動態(tài)加載和卸載資源。
內(nèi)存管理與垃圾回收:
識別內(nèi)存泄漏:
hidden對象數(shù)量龐大可能暗示存在內(nèi)存泄漏。使用 Chrome DevTools 的“內(nèi)存”面板進(jìn)行多次快照對比,找出持續(xù)增長的對象,定位內(nèi)存泄漏點(diǎn)。對象池:對于頻繁創(chuàng)建和銷毀的對象(如粒子效果、子彈、UI 元素),使用對象池技術(shù)進(jìn)行復(fù)用,減少垃圾回收的壓力和內(nèi)存碎片。
弱引用:對于非關(guān)鍵性、可被垃圾回收的對象,考慮使用弱引用,允許垃圾回收器在內(nèi)存不足時回收它們。
及時釋放不再使用的資源:確保在對象不再需要時,顯式地解除引用,讓垃圾回收器能夠回收其占用的內(nèi)存。特別是對于大型數(shù)據(jù)結(jié)構(gòu)、DOM 元素、事件監(jiān)聽器等。
3. JavaScript 和 DOM 優(yōu)化:
減少 DOM 操作:頻繁的 DOM 操作會消耗大量內(nèi)存和 CPU。盡量批量操作 DOM,或使用虛擬 DOM 技術(shù)。
優(yōu)化 JavaScript 代碼:避免創(chuàng)建不必要的閉包,減少全局變量的使用,優(yōu)化循環(huán)和數(shù)據(jù)結(jié)構(gòu)。
說人話就是:
給游戲“減負(fù)”:
精簡物品:把你游戲里的圖片、3D模型、聲音都壓縮一下,讓它們變得更“小”。
按需取用:不要一進(jìn)游戲就把所有關(guān)卡的東西都搬進(jìn)房間。玩家玩到哪里,再把那里的東西拿進(jìn)來,離開時再放回去。
學(xué)會“打掃整理”:
找出垃圾:檢查一下是不是有些東西用完了,但程序忘記“扔掉”了,導(dǎo)致垃圾(內(nèi)存泄漏)越堆越多。
循環(huán)利用:像子彈、技能特效這種要大量重復(fù)使用的東西,最好準(zhǔn)備一個“回收箱”(對象池)。用完就放回去,下次直接從里面拿,而不是每次都造個新的再扔掉。
簡單說,就是讓資源更精簡,并養(yǎng)成用完就釋放的好習(xí)慣,這樣內(nèi)存占用自然就降下來了。
最后說說游戲體驗(yàn)吧!
比起2023年的斯坦福AI小鎮(zhèn)(25個ChatGPT組成的虛擬世界),確實(shí)是有改進(jìn)的,但肯定是在斯坦福的靈感之上做的創(chuàng)新。

(斯坦福AI小鎮(zhèn))
AIVILIZATION里,不清楚是用的什么大模型,設(shè)定得很嚴(yán)謹(jǐn),問不出來。
開始我稀里糊涂把我的女神小人兒放進(jìn)去,然后發(fā)現(xiàn)她變成清潔工了?而且住的是救濟(jì)房?好尷尬!
![]()
后來才知道,最開始就兩種職業(yè)清潔工和服務(wù)員,要從底層做起。
![]()
設(shè)定很有意思,先選自己的MBTI性格,然后從清潔工做起,住救濟(jì)房,一步步想辦法往上卷。當(dāng)然空閑時間可以聊天交友談戀愛。
![]()
不過我選的ENFP,真的是佛系啊!目前我也很佛系,讓她自己打工玩,然后研究下怎么升級房子,怎么當(dāng)上CEO(不知不覺兩天已經(jīng)轉(zhuǎn)了3萬金幣了,也不錯嘛)
![]()
交友方面,我的天,她這一天都跟十來個人聊天交友了!
想想我自己,坐在工位寫代碼一天,說話不超過十句,有點(diǎn)白過了一天的感覺!
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
最后我問了她的人生目標(biāo),看了她今天寫的日記,有點(diǎn)感動
![]()
![]()
可能這就是ENFP的人生吧 ,探索,交新朋友,湊合打份工,開心每一天。對我來說,挺治愈的。
游戲音樂很治愈,我想,我后邊還是會每天看看她在干什么,跟哪些人聊了哪些趣事,僅此而已。
后記
人類xAI共生社會會是怎么樣?肯定比AI小鎮(zhèn)更為復(fù)雜,就像西部世界里一樣,分不清哪些是人,哪些是機(jī)器人,如這個開發(fā)者團(tuán)隊(duì)所說,在未來,AI可能不再只是工具。它們會有動機(jī)、偏好,甚至成為我們身邊的“同事”與“合作者”。
玩這個游戲,是在觀察我們自己,也是在觀察未來可能的AI生命,不斷探索新可能,活出精彩吧!
大夢一場的董二千先生。 推開窗戶,舉起望遠(yuǎn)鏡。
不刷短視頻,讀我的公眾號長文還讀完了?您真是一股清流!如果覺得寫得不錯,歡迎點(diǎn)贊、在看、關(guān)注。如果有不同看法,歡迎在評論區(qū)或者后臺留言討論。~
我是刀哥,曾在大廠工作過,出海創(chuàng)業(yè)者,深入研究AI工具和AI編程。關(guān)注我,了解更多AI知識!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(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.