iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
2
自我挑戰組

卡牌連線遊戲開發經驗分享系列 第 26

#25 工欲善其事,必先利其器 - 談遊戲開發環境&多人連線管理

今天談的內容是開發遊戲的常見選項,後段則是多人遊戲的連線管理方案,最後小彩蛋是p2p無線連線方案

開發遊戲的首選?

Flash

幾乎是早期小遊戲的開發首選,可以內嵌在網頁,也可以封裝成 exe 下載執行。因為在多媒體、圖形元件、連線功能各方面的支援不錯,然後當時的開發環境對於初學者也比較友善。能夠在短時間做出還不錯的作品,受到許多開發者的青睞。隨著手機平台興盛,因為令人詬病的安全性、耗電問題逐漸被淘汰。Adobe 已正式宣佈於 2020年底停止支援。

VB

微軟出品,因為圖像式的設計介面,讓開發者能夠很輕易建立圖形化介面,在一些不重視聲光影音的遊戲中,也能呈現不錯的效果。

HTML+JS+CSS

隨著 HTML5 技術革新,當年被 Flash 搶下的一片江山也逐漸回歸。原生支援的 convas 能夠呈現基本的繪圖功能,剩下問題是效能是否跟一般遊戲的體驗一樣?再來就是是否有足夠的遊戲引擎可以加速開發?

Unity

使用 C# 語言開發,有一定的學習門檻,但上手之後,能夠開發出各種成熟的遊戲。其中還包含第三方套件商店,能提供更便利的套件協助開發。跨平台能力也是數一數二,能夠在網頁、桌面、手機三個平台輸出成品。包括《爐石戰記》本身就是用 Unity 完成的,是目前許多遊戲開發的首選,業界也有不少相關課程。


多人遊戲的伺服器管理?

最近針對這部份研究之後才發現有很多要注意的細節,資訊量有點大,不好消化。退回原始的 socket 操作也不一定會比較順利

Photon Unity Networking

這是 Unity 上面蠻有名的多人連線管理套件,看 API 還蠻成熟的,涵蓋很多功能。有免費方案、大致上是根據你使用的流量來收費的。可以參考看看

Unity 3D Arcalet

這也是雲端多人遊戲的開發方案,不過咕狗找到的官網連結是掛掉的,要用這個網址連。開發文件的網站也是掛掉的,要用這個。因為搜尋引擎點連結進不去,對這服務的第一印象不太好。有興趣的人可以找相關教學說明。

喔對,這服務一樣是要收費的。天下沒有白吃的午餐

Google Cloud

不令人意外,但還是有點意外的方案。咕狗確實有針對雲端遊戲伺服器的方案,但付費部份沒有寫得很清楚,所以可能要再找一下。

以結論來說,這部份自己開發並沒有比較好,要克服的問題很多很多很多很多。

  • 全部自己來,架伺服器、佈署、測試、設定
    //然後你會忘記自己到底是遊戲開發者還是網管 MIS?
    好處:完全的自由度,完全的肉雞(毫無防備的DDoS攻擊目標)
    壞處:需要大量背景知識,需要參考其他成熟架構

  • 使用現成方案,花錢消災
    好處:痛苦少一點,有完善的開發文件
    壞處:要花錢,搬家的時候很痛苦,必須跟著框架走,會失去一些自由度

參考資料:Game server https://en.wikipedia.org/wiki/Game_server

p2p 無線連線方案?

  1. Nearby Connections API
  2. Android Bluetooth API
  3. wifi-Direct: Nintendo Switch, NDS,etc
  4. bridgefy

資料量不足,待研究。


上一篇
#24 今年的專案進步
下一篇
#26 遊戲實作(虛擬碼):新增玩家物件、開局處理
系列文
卡牌連線遊戲開發經驗分享30

尚未有邦友留言

立即登入留言