卡牌遊戲開發

        2020年初,堅持到case結束後,我主動離開了那家領導整日“坐而論道”的公司。意料之中的,放空後那種無所事事包圍了我(這點經歷過996的兄弟應該都有體會,想想突然給你放上二十天長假是什麼感覺 XD)。恰逢疫情肆虐,萬衆同心,全民都宅在家中默默地感動並且不敢動着。於是靜極思動下,我決定搞個遊戲出來玩玩。

        作爲一名狂熱的卡牌桌遊愛好者兼廢宅程序員,我其實很早就有寫遊戲的想法了。也曾陸陸續續地寫過一些Demo來自娛自樂(。・∀・)ノ゙。雖說沒整出什麼名堂,但日積月累下,總算搞明白了該朝什麼方向努力👇👇👇。

【設計目標】

        實現一款CS架構的桌面遊戲對戰平臺。

        單個服務器端支持最多登記2000名註冊玩家,最多100個房間,最多800名玩家同時在線;支持實時聊天室;支持權限管理(比賽組織者/裁判/玩家);支持斷線重連,排隊提醒;支持玩家遊戲生涯統計;支持方便地更新現有遊戲規則,模塊化添加新遊戲。

        客戶端支持註冊,登陸,開房,加入遊戲,賽事管理;支持插件化安裝新遊戲,配置遊戲規則;支持自定義遊戲界面;支持遊戲過程自動結算;支持本地音效,動畫;支持遊戲錄像導出;支持遊戲局面統計。

【技術選型】

        服務器端採用golang+mongo+protobuf+docker實現。golang提供高併發能力;mongo分佈式存儲,爲以後擴展用戶容量提供可能;protobuf高度壓縮數據,增強遊戲過程實時性;docker方便部署。

        客戶端採用qt+lua+sqlite3+音視頻解碼庫實現。qt提供強大的跨平臺GUI;lua提供弱AI支持與規則自動結算能力;sqlite3提供簡易數據庫支持;第三方音視頻解碼庫提供動畫,錄像及本地音效支持,並避免版權糾紛。

【參考學習】

        開始開發前,我認真研究了不少類似項目。像Table simulator(TTS),雞蛇(Cockatrice),YGOPro,MWS,太陽神三國殺,萬智牌競技場,PTCG online,YGO online等等。特別感謝太陽神三國殺,雞蛇,YGOPro三個項目組的無私貢獻,讓我有幸拜讀源碼。不僅從中學習到很多編程知識,也汲取了很多開發靈感,膜拜衆位大佬 Orz。學習過程中,我同樣整理了幾篇筆記,有興趣的話可以移步我的其它博客指正~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章