【云駐共創】有哪些值得學習的國內 c++ 開源項目之游戲篇
【云駐共創】有哪些值得學習的國內 c++ 開源項目之游戲篇

前言
今天看到云駐共創有這樣一個題目《有哪些值得學習的國內 c++ 開源項目》,但是因為我最熟悉的是游戲項目,有一定的積累,所以我就把題目范圍進行了縮小,,變成有哪些好的開源的國內的游戲項目,希望能對使用C++做游戲的開發同學一些幫助,從這些優秀的項目中汲取精華使用到自己的項目中,做出優秀的游戲項目,廢話不多說,開始吧。
1、skynet
開源地址:
https://github.com/cloudwu/skynet
項目介紹
Skynet 是國內大名鼎鼎的游戲引擎,是網易的云風大神開發的,在那個引擎很少的年代,這算得上是開天辟地的。能做的如此優秀,屬實不易。
Skynet提供了一個簡潔、穩定、高效、高可用的分布式服務開發框架。
Skynet是一個輕量級通用的服務器基礎框架
Skynet是基于C與Lua的開源服務端并發框架,使用單進程多線程Actor模型。
Skynet服務器支持10K+客戶端接入和處理
Skynet當前規模是8K多行的C代碼和2K多行Lua代碼,實現了一個多線程高并發的在線游戲后臺服務框架,提供定時器、開發調度、服務擴展框架、異步消息隊列、命名服務等基礎能力,支持Lua腳本。
Skynet是一個輕量級網絡服務器架構而非完整的游戲服務端,它是服務端的最底層框架,和游戲業務相關的服務都是基于此框架之上開發的。其功能只是管理好服務(加載和調度)和服務之間的調用(請求和響應)。
學習點:
可以學習如何C++和Lua的混合編程,學習到Actor設計模式的實現
2、 NoahGameFrame
開源地址
https://github.com/ketoo/NoahGameFrame
項目介紹
NoahGameFrame(NF)是一個輕量級,快速,可擴展的分布式插件框架。
易于使用,面向界面的設計
一個可擴展的插件框架,使您的應用程序快速,輕松地運行
一種干凈,整潔的設計和穩定的發動機,已用于多種商業產品
高性能Actor模型(由Theron提供)
事件和屬性驅動,使您的業務清晰易懂
基于標準C ++開發,確保跨平臺支持
現有的C ++和C#游戲客戶端,用于快速開發
跨平臺支持
學習點:
項目NF受到OGRE和Bigworld的極大啟發。可以從中學習到服務端的設計思想.
3、kbengine
開源地址
https://github.com/kbengine/kbengine
項目介紹:
一款開源的MMOG游戲服務端引擎, 僅Python腳本即可簡單高效的完成任何游戲邏輯(支持熱更新), 使用配套客戶端插件能夠快速與(Unity3D、UE4、OGRE、HTML5、等等)結合形成一個完整的客戶端。? 引擎使用C++編寫,開發者無需重復的實現游戲服務端通用的底層技術, 將精力真正集中到游戲開發層面上來,穩定可靠并且快速的打造各種網絡游戲。
Kbengine 已經收到千萬投資進行了商業化開發,是非常優秀的服務端引擎,曾經在一個項目中用過,用python作為腳本開發,性能高,開發效率高,底層C++代碼值得學習。
學習點
項目使用C++作為底層進行開發,應用層使用python作為腳本,可以學習C++和Python的混合編程,同時學習到MMO的經驗
4、cocos2d-x
開源地址
https://github.com/cocos2d/cocos2d-x
項目介紹
Cocos2d-x 是一款國產的開源的手機游戲開發框架,基于MIT許可證發布。引擎核心采用C++編寫,提供C++、Lua、JavaScript 三種編程語言接口,跨平臺支持 iOS、Android 等智能手機,Windows、Mac 等桌面操作系統,以及 Chrome, Safari, IE 等 HTML5 瀏覽器。
cocos2d-x引擎的歷年代表作有《我叫MT Online》《捕魚達人》《大掌門》《刀塔傳奇》《放開那三國》《全民飛機大戰》《歡樂斗地主》《開心消消樂》《保衛蘿卜》《夢幻西游》《大話西游》《神武》《問道》《征途》《列王的紛爭》《熱血傳奇》《傳奇世界》《劍與家園》《亂世王者》《傳奇霸業》等
學習點
Don’t say so Much.
對于想要做客戶端引擎開發的同學,可以學習cocos2d-x,開源且用戶多
5、moleServer
開源地址:
https://gitee.com/akinggw/moleserver
項目介紹:
一個C++編寫的基于websocket協議的游戲服務器框架,運行于linux上,底層主要基于epoll,性能強勁,登錄驗證,注冊,游戲框架基本全部做好,您只需要添加游戲邏輯就可以了。
已經主要實現以下功能:
用戶注冊,驗證,登錄,更改信息;
游戲服務器可以通過網站進行監控,配置和管理;
游戲服務器已經實現了登錄驗證,桌子管理,掉線管理,掉線重回管理,定時器等等框架該有的功能都有了;
游戲邏輯框架,游戲中該用到的接口,如果進入房間,離開房間,掉線處理,掉線重回后處理,定時器處理等等都已實現
網站后臺管理功能,已經實現對玩家,游戲,服務器的管理和監控
機器人功能,在數據庫配置好機器人后,機器人就可以使用了
玩家無限制分成代理分銷,充值,退款等功能
學習點
Moleserver 內置了一些現成的模塊,能快速開發游戲,可以在代碼中學習模塊的設計,可進行功能遷移。
6、一些游戲項目推薦
6.1 植物大戰僵尸
https://gitee.com/GITLZ/PlantsVsZombies
使用c++基于Cocos2dx V3.16 開發的植物大戰僵尸游戲
6.2 麻將
https://gitee.com/xiyoufang/cocostudio-mahjong
基于Cocos2d-X 3.17 跨平臺單機麻將,商業級麻將算法、AI算法
6.3 游戲服務器框架
https://gitee.com/ylmbtm/GameProject3
跨平臺的多進程游戲服務器框架,網絡層分別使用SocketApi, Boost Asio, Libuv三種方式實現, 框架內使用共享內存,無鎖隊列,對象池,內存池來提高服務器性能。
6.4 我的武俠世界
https://gitee.com/lsylovews/ChivalrousMan
《我的武俠世界》使用cocos2d-x編寫的一個簡單的回合制網游,游戲內容和傳統的回合制網游相似。 在游戲中玩家可以接取任務, 完成任務獲得獎勵升級提升自己的實力
6.5 碰碰球
https://gitee.com/lsylovews/CollisionBall
一個聯網的趣味性小游戲,碰碰球,在游戲中通過操縱自己的小球吃掉隨機產生的食物,不斷壯大自己,或者撞擊其它玩家,通過自己的體力和大小之間的關系和他人的體力與大小之間的關系決定誰是勝利者,主要學習物理引擎的使用。
總結
C++ 項目的入手難度略高,這是C++這門語言決定的,但是C++對機器性能的壓榨還是讓人趨之若鶩,對于有更高要求的游戲來說,現在很多游戲公司仍然在使用C++ 的服務端,雖然歷史的趨勢不會改變,越來越多的游戲服務器用Java和Nodejs 開發,但是這些優秀的項目依然在發光發熱,對于依然堅守C++的同學依然值得學習。
本文整理自華為云社區【內容共創系列】活動。
查看活動詳情:https://bbs.huaweicloud.com/blogs/314887
5G游戲 C++ 華為開源鏡像站 Mirrors
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。