首页
/
每日頭條
/
遊戲
/
通過遊戲設計了解機器學習算法
通過遊戲設計了解機器學習算法
更新时间:2026-09-02 13:56:11


通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)1

來源 | 異步

前段時間大火的國産遊戲——《太吾繪卷》,由于創新的玩法和精良的制作一度廣受好評,然而随着玩家遊戲的深入和時長的積累,發現該遊戲在玩的過程中遊戲外的問題很多很多。


首先是存檔速度慢,然後是密集的計算導緻功耗大量增加,風扇速度高居不下,甚至在高配置設備中也變得越來越卡。

究其原因,還是開發人員對于算法的理解問題。

通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)2


該遊戲存檔是用的json,太吾繪卷在每個月存檔時,都要把所有的數據在磁盤上重寫一遍。實際上,大多數遊戲公司正确的做法是隻寫入變化的部分而不會全量寫入,而太吾繪卷的做法是把很多不變的,預設好的東西也全部重新寫入,必然導緻存檔時占用了極大的空間。


同時,存檔中有大量的0,這說明開發者不知道什麼叫“稀疏矩陣”,結合之前的全量寫入,這無疑又加劇了存檔緩慢的問題。


通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)3

所以算法和數據結構有多重要的呢,它足以讓一款大火的遊戲變得不再具有吸引力,哪怕你其他方面做得再好。帶來了這麼大的影響,恐怕遊戲開發組接下來應該考慮更換程序員的事情了。

著名計算機科學家尼古拉斯·沃斯(Niklaus Wirth)有一句在計算機領域人盡皆知的名言“算法 數據結構=程序”(Algorithm Data Structures=Programs)。


算法這麼重要卻沒有引起國内頂級程序員的重視,不得不說這是一個遺憾。


通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)4


其實,要想學習算法,方法大于努力,以下三個思路和方法可以指導你更好的學習算法:


一.記住算法思想,記住算法結構。


這個是數據結構與算法學習最基礎的部分。


如果你把算法和數據結構系統的過了一遍,那你應該能夠明确這些基本的概念和一些初步的延申問題,什麼是數組,堆棧,隊列,鍊表,字典樹以及哈希表以及相關的問題,這裡所說的記住,是指在自己的腦海中形成長久的記憶。例如以下實用問題:

常見的堆棧面試問題

· 使用堆棧計算後綴表達式

· 對堆棧中的值進行排序

· 檢查表達式中的括号是否平衡


那麼,記住數據結構又需要記住哪些呢?

第一步:記住數據結構最直觀的東西


第二步:記憶某個數據結構的同時,還要記住數據結構的定義,性質與特點。例如在學習哈夫曼樹的時候。


定義是WPL最小的二叉樹。特點:(1)沒有度為1的結點(2)n個葉子結點的哈夫曼樹共有2n-1個結點(3)哈夫曼樹的任意非葉節點的左右子樹交換後仍是哈夫曼樹。


在知道它的定義後,我們可以自己去設計一個算法。如果自己沒想到,在看到先人的解決辦法後,更要随手存下來,去記住它。


通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)5


二、用編程語言實現數據結構的算法


很多時候,理解一個算法後,很容易在紙上去模拟一個算法的實現過程。


但,具體實現,則是另一回事。一定得先自己思考,然後再去看書中給的編程語言實現。這一過程已經不屬于“數據結構與算法”的内容了。而是你綜合素質的體現,如何真正理解問題和用編程技巧實現,很考驗自己。


這一過程,很難靠記憶。需要在不斷敲代碼的過程中去體會一些直覺上的東西。如何用遞歸解決問題,如何使用循環,如何使用"哨兵”等等等等。當然,敲完後需要去思考總結,看看能不能總結出一些”小套路“并記住。


總之,實踐出真知

通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)6


三、記住特定情況特定的算法搭配


每介紹一種數據結構,都可以聯系一個實際問題來作為“引子”,回答了“這種數據結構為什麼會出現”。

比如上述案例中提到的稀疏矩陣,通俗地說,如果邊的數量接近于與頂點的數量呈線性關系,那麼這個圖就是稀疏圖,例如,具有n個頂點和O(n log n)條件的圖一般被認為是稀疏圖。


這些東西,我們也須理解記憶。每一數據結構都有其特性,去解決某一類問題,我們需要去記憶,去感悟。


威著作,助力學習


通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)7


本書是作者Tim Roughgarden(斯坦福大學的教授,主要教授的課程有計算機科學、管理科學與工程。著有圖書《算法詳解(第1卷):算法基礎》)結合在斯坦福大學教授算法課程的實際經驗編寫的系列教程中的第二本。


主要介紹圖搜索及其應用,最短路徑算法以及一些數據結構(如堆、搜索樹、散列表和Bloom過濾器)的應用和實現。


本書是作者Tim Roughgarden(斯坦福大學的教授,主要教授的課程有計算機科學、管理科學與工程。著有圖書《算法詳解(第1卷):算法基礎》)

結合在斯坦福大學教授算法課程的實際經驗編寫的系列教程中的第二本。

主要介紹圖搜索及其應用,最短路徑算法以及一些數據結構(如堆、搜索樹、散列表和Bloom過濾器)的應用和實現。

通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)8

通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)9


查看目錄

第1章 圖的基礎知識

1.1 基本術語

1.2 圖的一些應用

1.3 圖形的度量

1.3.1 小測驗1.1鄰接矩陣

1.4.3 和小測驗1.3零代價的基本算法


2.1.3 高層思路

2.2.2 BFS正确性和運行時間

2.2.5 的答案

2.3 計算連通分量

2.3.1 (無向圖連通分量)算法

2.3.4 UCC小測驗2.2的僞碼

2.4.3 什麼時候存在拓撲順序

2.5.3 的拓撲排序

2.5.5 小測驗2.3為什麼要使用深度優先的搜索

2.6.3 一個例子

2.6.6 和小測驗2.6蝴蝶結

2.7.3 一些前提條件

3.1.3 的答案

3.2 Dijkstra算法

3.2.1 一種虛假的簡化

3.3.2 Dijkstra選擇正确的數據結構

4.1.2 其他操作

4.3 堆的應用

4.3.1 應用:中位值維護

4.4 Dijkstra算法的提速

4.4.1 維持不變性

4.4.4 數組形式的堆

4.5.3 操作

4.5.4 操作

4.6 本章要點

4.7 章末習題

挑戰題

編程題

第5章 搜索樹

5.1 有序數組

5.1.1 搜索樹的屬性

5.3.2 (高度)時間内實現Search

5.3.4 和Max

5.3.5 時間内實現OutputSorted操作

5.3.8 強化的搜索樹支持Select的答案

*5.4 平衡搜索樹

5.4.1 的答案

*6.4 更多的實現細節

6.4.1 負載和性能

6.4.2 管理散列表的負載

6.4.3 選擇散列函數

6.4.4 選擇沖突解決策略

6.4.5 小測驗6.6的答案

6.5 布隆過濾器的基礎知識

6.5.1 布隆過濾器支持的操作

6.5.2 布隆過濾器的應用

6.5.3 布隆過濾器的實現

*6.6 布隆過濾器的啟發式分析

6.6.1 啟發式假設

6.6.2 部分位被設置為1

6.6.3 假陽性率

6.6.4 結束語

6.6.5 小測驗6.7的答案

6.7 本章要點

6.8 章末習題

編程題

附錄A 快速回顧漸進性表示法


部分習題答案

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
與地下城相關遊戲
與地下城相關遊戲
不思議地下城是一款畫風清新唯美,上手簡單又有趣的Roguelike遊戲。随機地下城的玩法有趣又休閑。繼承了Roguelike随機地下城的特點,卻又大幅降低了上手難度和死亡懲罰,對新手玩家非常友好。有興趣的小夥伴可以去嘗試一波,一定會體驗到不...
2026-09-02
這是十款當年最棒的單機遊戲
這是十款當年最棒的單機遊戲
這是十款當年最棒的單機遊戲?作為一個忠實的遊戲玩家來說,都會追求一些比較最新最熱門的遊戲,那麼我們本期的内容短暫,就為廣大遊戲愛好者們,推薦七款當前最新,最熱門的大型遊戲,這些作品,當前有很多玩家在體驗,我來為大家科普一下關于這是十款當年最...
2026-09-02
王者榮耀29賽季即将要上線的皮膚
王者榮耀29賽季即将要上線的皮膚
各位小夥伴們你們也一定看到收集沖刺鑰匙兌換周年慶蛋糕碎片的活動,但根據之前官方的放言:”甄姬的新皮膚遊園驚夢可以免費獲得!”恰好現在又出現在二周年的活動裡,大家聯想一下是不是甄姬的新皮膚遊園驚夢呢?那我們就先看一下活動内容吧。總之沖刺鑰匙能...
2026-09-02
英雄聯盟手遊艾希出裝符文攻略
英雄聯盟手遊艾希出裝符文攻略
英雄聯盟手遊艾希出裝符文攻略?,我來為大家科普一下關于英雄聯盟手遊艾希出裝符文攻略?下面希望有你要的答案,我們一起來看看吧!英雄聯盟手遊艾希出裝符文攻略
2026-09-02
最适合和兄弟一起玩的射擊遊戲
最适合和兄弟一起玩的射擊遊戲
你玩過在狹小空間裡消滅僵屍動作射擊遊戲麼?今天推薦由HOMAGAMES推出的以抵禦僵屍為背景的俯視角動作射擊遊戲《ZombieDefense》(僵屍别過來)。玩家在遊戲中扮演末世之下在有限區域内的幸存者,射殺僵屍保護自己免受侵襲,發現新的區...
2026-09-02
Copyright 2023-2026 - www.tftnews.com All Rights Reserved