這個馬賽克風格的表情正好 13Kb,有人竟然能用一個表情大小的空間,製作個遊戲出來。我就不信這麼點的地兒,能寫出個花來?遊戲能好玩嗎?因為這些遊戲點開就能玩,我抱著試一試的心態把玩了一會。
事實證明是我的無知限制了我的想象力,這些 13kB 的遊戲並沒有我想的那麼簡陋和無聊。它們不僅有豐富的影像,還有音樂、物理、重力系統,包含射擊、益智、技巧等不同的類別玩法多樣,令我眼前一亮!
下面我就整理出了 3 個我覺得好玩的遊戲,並附上了線上體驗的地址以及 GitHub 上的原始碼。
大家先體驗一下游戲,後面我們再聊這些遊戲都用到了哪些開源專案。
1、Space Huggers(太空保護者)
射擊類遊戲,消滅所有敵人。通過外接手柄可進行多人遊戲,最多支援 4 個人。不僅如此還有敵人和道具系統以及雨、雪、血、爆炸、武器、水等粒子系統。手機端操作需要外接手柄。
操作:
- WASD 或方向鍵:移動、跳躍和攀爬
- Z 或左鍵單擊:射擊,大多數東西會破裂,有些會燃燒
- X 或中鍵:滾動,短暫的無敵狀態,還可滅火
- C 或右鍵單擊:手榴彈,每條命有 3 個
- 還可最多連線 4 個進行合作遊戲!
敵人型別:
- 新兵(綠色):遲鈍,只需要 1 擊
- 士兵(藍色):正常的速度,需要 2 次攻擊
- 船長(紅色):可以更頻繁地爬牆和跳躍,需要 3 次攻擊
- 專家(白色):經常跳躍和滾動,需要 4 次攻擊
- 爆破專家(紫色):投擲手榴彈且不會著火,需要 5 次命中
2、Black Hole Square(黑洞廣場)
益智類遊戲,把所有塊清除則過關。
- 操作:向左劃開始遊戲,點選塊會向箭頭方向移動,塊進入“黑洞”則被清除
- 支援移動端
試玩:https://js13kgames.com/games/black-hole-square/index.html
3、PACKABUNCHAS
益智類遊戲,用提供的形狀拼出指定的形狀,
- 操作:點選旋轉,拖動圖形
- 支援移動端
Js13kGames 是什麼
以上這些遊戲都是 2021 Js13kGames 的參賽作品,這個比賽每年舉辦一次,要求參賽者在為期 30 天的時間裡用 JavaScript 做出一款體積小於 13kB 的 HTML5 遊戲。30 天用 JS 做個遊戲並不難,難點在於如何讓遊戲小於 13kB。
壓縮遊戲體積可以從以下四個方面入手:
- 遊戲引擎
- 壓縮程式碼
- 影像和聲音
下面介紹的這些開源專案,在 Js13kGames 很多參賽作品中都能看到它們的身影。
Ga(遊戲引擎)
一個輕量級、極小(6.5kB)、容易上手的 JavaScript 遊戲引擎,可用於製作 HTML5 遊戲或任何 2D 動作遊戲。
Kontra(遊戲引擎)
專注於小體積的 JavaScript 微型遊戲引擎,它雖然小但是提供了遊戲常用的操控、事件、迴圈等核心功能。
壓縮程式碼
壓縮程式碼通常是減少空格和換行之類的無用內容,從而達到減少程式碼所佔體積的目的。
Google Closure Compiler:https://github.com/google/closure-compiler
MiniMinifier:https://github.com/xem/miniMinifier
Piskel(影像)
簡單易用的線上畫素影像製作工具。
miniMusic(聲音)
可以把音效轉化成 JavaScript 的專案,通過這種方式能夠有效地減小聲音的“體積”,還支援線上視覺化的操作方式編輯和生成音效。
看到這裡你是不是也蠢蠢欲動地準備寫個小遊戲了呢?
最後
隨著科技的發展,儲存空間已經不再“捉襟見肘”,我們在編碼時也不用“斤斤計較”。但如今看到有這麼一群極客,在絞盡腦汁用 13kB 完成一個遊戲時。我從最初的好奇和難以置信,再到看到他們的遊戲和原始碼後感嘆他們高超的程式設計技巧,最後開始反思自己在編碼時對效能和損耗方面思考的太少。感謝這些開源專案讓我大開眼界,也讓我發現了自己的不足之處。
本期推薦的開源專案程式碼量不多,適合新手學習和上手遊戲程式設計,感興趣的讀者可以試著用它們寫個小遊戲。
以上就是本文的全部內容,如果你對本期推薦的開源專案感興趣歡迎點贊、轉發,讓這些優秀的開源被更多人發現和喜歡。這裡是 HelloGitHub 分享 GitHub 上有趣、入門級的開源專案。歡迎留言和我分享開源專案~