宅在家學不進去嗎?試試這些 GitHub 上簡單易學的遊戲專案吧
作者:HelloGitHub-小魚乾
這是本人宅在家裡的第 4 周,程式碼不想看,技術文章不想讀,都不能愉快學習了我還怎麼當一個優秀的需求消化師呢?有沒有什麼輕鬆地方法來學習技術呢?想起了小時候金山打字通,玩著玩著就學會了打字,Bingo!#用遊戲的方式來學習技術#,是時候找找 GitHub 上有哪些好玩的遊戲專案來邊玩邊學了。
- 重溫經典
- 重溫童年
- 全家桶·模擬器
Tips:文章中的專案分別涵蓋了 Python、機器學習、Java、JS、Go、Objective-C 類別,希望不同技術棧的小夥伴都可以找到自己感興趣的新專案。
一、重溫經典
1.1 植物大戰殭屍
GitHub 地址→https://github.com/marblexu/PythonPlantsVsZombies
PythonPlantsVsZombies 是 Python 語言編寫的植物大戰殭屍。
- 程式語言:Python
- 功能介紹
- PythonPlantsVsZombies 支援的植物型別:太陽花、豌豆射手、寒冰射手、堅果、櫻桃炸彈、雙重豌豆射手等;
- PythonPlantsVsZombies 支援的殭屍型別:普通殭屍、棋子殭屍、路障殭屍、鐵桶殭屍、毒爆殭屍;
- 專案使用 Json 檔案儲存關卡資訊,可獨立設定殭屍出現的時間和位置;
- 支援關卡開始時選擇上場植物;
- 支援夜間模式;
- 推薦理由:風靡一時的植物大戰殭屍關卡多、組合搭配多樣,拿它來學習 Python 練手是一個不錯的選擇。
1.2 地下城文字遊戲
GitHub 地址→https://github.com/AIDungeon/AIDungeon
AIDungeon2 是一個基於機器學習的地下城文字遊戲。
- 程式語言:Python
- 功能介紹
- AI Dungeon 基於 OpenAI 打造,採用了最先進的開放原始碼文字生成功能,輔以自選冒險類特性,向玩家呈現了一段段獨特的文字。在 AI Dungeon 中,玩家可以進行各式行為,且無論你的舉動多麼奇怪都能得到迴應;
- 推薦理由:此專案介紹瞭如何使用機器學習構建一個遊戲,程式碼簡單清晰適合 AI 愛好者深入研究喲~
1.3 鬥地主
GitHub 地址→https://github.com/ainilili/ratel
Ratel 是一個命令列可聯網的鬥地主遊戲。
- 程式語言:Java
- 功能介紹
- Ratel 分客戶端和服務端,你可以讓小夥伴們的客戶端都連線你的伺服器進行遊戲,也可以直接連線作者的公網伺服器進行遊戲;
- 推薦理由:Ratel 使用 Java 語言開發,Netty 4.x 網路框架搭配 protobuf 資料協議,此外還可以學到 Server-Client、Client-Client 等互動流程。
二、重溫童年
2.1 飛船射擊
GitHub 地址→https://github.com/gd4Ark/star-battle
Star Battle 是一個 JavaScript ES6、Canvas 開發的飛船射擊類遊戲。
- 程式語言:JavaScript
- 功能介紹
- 使用 W、A、S、D 控制飛船,按下 Space 發射;
- 燃料初始值為 15,每秒遞減 1 點,當燃料值為 0 時,遊戲結束;
- 觸碰掉下的燃料瓶可增加 15 點,最大值為 30 點;
- 擊中敵方飛船增加 5 分。行星需擊中兩次,增加 10 分。擊中友方扣除 10 分;
- 撞擊敵方損失 15 點燃料,撞擊友方扣除 10 分;
- 遊戲允許負分;
- 按下 P 暫停遊戲,按下 M 靜音;
- 推薦理由:作為單機遊戲經典款太空大戰,本專案除了能重溫簡單粗暴地擊落得分之外,還可以學到 Canvas 實踐技術,一舉兩得。
2.2 俄羅斯方塊
GitHub 地址→https://github.com/gd4Ark/star-battle
Tinytetris 是一個用 C++ 編寫的終端版俄羅斯方塊遊戲。
- 程式語言:C++
- 功能介紹
- 通過鍵位 A(左)、D(右)、W(旋轉)、S(放下)和 Q(退出)來控制方塊的方向和掉落;
- 推薦理由:Tinytetris 提供了兩個版本的原始碼,分為註釋版和庫版,註釋較多易於理解和學習。
2.3 掃雷
GitHub 地址→https://github.com/muan/emoji-minesweeper
Emoji-minesweeper 是一款 Emoji 符號的掃雷遊戲。程式碼很簡短,遊戲創意很酷。
- 程式語言:JavaScript
- 功能介紹
- 左鍵單擊開啟一個地點;
- 右鍵單擊以將一個點標記為炸彈;
- 雙擊可開啟目標附近的所有 8 個點(使用右鍵單擊已標記為炸彈的點除外);
- 推薦理由:寥寥 300+ 行程式碼實現該遊戲,還能學到 Javascript 處理 Emoji 的方法,你不來試試嘛~
三、全家桶·模擬器
3.1 Mac 上的紅白機
GitHub 地址→https://github.com/OpenEmu/OpenEmu
OpenEmu 是一個可以玩各種復古遊戲的遊戲機。
- 程式語言:Objective-C
- 功能介紹
- 支援任天堂(NES)、索尼PSP、世嘉 32X 等 30 多種遊戲引擎;
- 支援外接遊戲手柄、投屏等操作;
- 推薦理由:有了它,我們就可以在 Mac 系統上玩各種經典遊戲,只需將下載到的遊戲 ROM 拖到 NES 即可開心地玩耍 30+ 款掌機遊戲。
3.2 遠端遊戲
GitHub 地址→https://github.com/HFO4/gameboy.live
Gameboy.Live 是一個 Gameboy 模擬器,可以通過 Socket 遠端玩畫素遊戲。
- 程式語言:Golang
- 功能介紹
- CPU指令模擬
- 計時器和中斷
- 支援僅 ROM、MBC1、MBC2 磁帶
- 聲音模擬
- 圖形模擬
- 雲遊戲
- ROM 偵錯程式
- 遊戲儲存和恢復卡帶級別
- 推薦理由:Gameboy.Live 是為學習目的而編寫的 Gameboy 模擬器,所以通過這個專案你可以快速 Pick Golang 技術。
以上為不才最近找到的可以學習知識的 GitHub 遊戲專案,#你有什麼 GitHub 上的遊戲專案來分享下嗎?# 歡迎留言告訴我們。
關注公眾號加入交流群