編程小白如何做小游戲,游戲引擎怎么開發?
嗯嗯,游戲引擎發展到今天,已經是一個產業化需求比較泛化的軟件體系。如果細分,按不同的細分維度會有很多不同的劃分,比如按功能分可以分為物理引擎,渲染引擎,腳本引擎等,按平臺分可以分為PC游戲引擎,HTML5游戲引擎,移動端游戲引擎等,按渲染類別分2D引擎,3D引擎等。
再比如對于網游,又分客戶端引擎和服務器引擎;服務器引擎的架構游戲類型、負載需求息息相關,架構本身和技術基礎組件選型(操作系統、開發語言、網絡庫、數據庫、運維工具、運營后臺等)相關聯,比較靈活。
按問題要求,猜測樓主問的是通用跨平臺客戶端引擎,參考對象是Unity,Unreal,CocosCreator等。先提取游戲引擎典型的核心功能如下:
渲染:實現畫面的展示
物理:實現物理世界的抽象和表現
音頻:實現聲音的播放處理
網絡:實現聯網功能
游戲編程接口:講游戲引擎能夠提供的接口以API形式暴露給開發者
配套的集成開發環境(IDE):實現可視化場景編輯、組織,可視化物理編輯,可視化UI布局,資源的使用等
調試功能:提供便捷的方式以便開發者對游戲功能進行測試和debug,優化性能。
打包發布功能:生成最終的游戲的exe,app,apk等等可執行(可運行)文件
插件擴展功能:提供給高級開發者的對引擎自身功能增強的功能接口
其它功能:如Unity有service,可以集成平臺數據統計、自身的視頻廣告等功能。
然后逐一略敘實現方式,強調一下,最好參照業內的經過廣泛驗證的引擎去了解,例如Unity;如果想知道更多細節,可以先使用一下主流引擎。
1.渲染:為了跨平臺,一般會選用跨平臺的圖形標準庫底層如OpenGL,基于底層庫再構建上層渲染框架,如精靈(Sprite),GUI,3D模型的渲染,shader擴展等。
2.物理:物理引擎對運算性能要求比較高,而且底層功能的測試需要耗費大量精力,所以通常采用成熟的物理引擎,例如Havok,PhysX, Bullet, cannon.js等。
3.音頻:通常會采用業內成熟方案,如開源的OpenAL、FMOD、HTML5平臺自身的Audio功能等。一般來說,非音樂類游戲對音頻功能的需求相對不會太復雜,主要是靠專業軟件提供音效文件(mp3,wma等),游戲中解析因小文件,處理聲音播放,音量大小調整等。
4.網絡:提供聯網的功能,按需提供TCP,UDP,HTTP等協議的包裝好的易用的接口。如果為了方便開發,可以處理好客戶端和服務器通信的連接處理,錯誤提示,協議的幀格式,序列化、反序列化方式,可以在此之上提供進一步的規范,例如采用Protobuf作為協議格式。
5.游戲編程接口:這就是提供給開發者的API的組織。確定引擎提供給開發者用什么語言編程,怎么使用圖片、音視頻資源、3D模型等,怎么提供接口和游戲運行時環境(電腦、手機)交互等。
6.配套的集成開發環境(IDE):易用的可視化開發工具,如拖拽布局、拖拽游戲資源的使用、代碼編輯、集成調試打包功能等。這一塊是游戲引擎開發工作量的大頭,涉及用戶(游戲開發者)密集使用的交互接口,要盡可能滿足高效、易用。一般來說如果不是特別有能力駕馭,最好現成的采用跨平臺的應用程序開發方案,比如Cocos Creator采用electron框架。
7.調試功能:提供查看FPS,跟蹤代碼運行,Profile,網絡信號模擬,分辨率模擬設置,硬件設備模擬(手機)預覽游戲等。建議游戲運行時與編輯器使用同一套或者大致一樣的渲染和資源接口(例如Unity),這樣方便降低調試和運行結果大相徑庭的情況。
8.打包發布功能:簡單處理可以生成要打包的對應平臺的工程,比如android平臺生成Android Studio工程,ios平臺生成xcode工程,注意資源、代碼庫的引用關系,配置文件的有效性、一致性,編譯速度等。
9.插件擴展功能:人力因時而窮,引擎功能不必強求一開始就大而全,可以將引擎整體設計為一個易擴展、易修改的結構,提供相應接口暴露給開發者,群策群力迭代和改進游戲引擎。
10.其它功能:這一塊可以根據自身引擎特點來進行添加,比如現在主流的幾大引擎都有提供官方繼承的資源商店、數據統計等服務接口。
真正可用的引擎的實現是一個系統而復雜的工程,有很多臟活累活需要考慮在里頭,平臺兼容性、性能、效果、易用性、魯棒性、文檔編寫……需要耗費巨量的心力;
如果是個人興趣了解,可以根據上述內容再延伸查詢相關內容,也歡迎隨時交流。
如果是想做個娛樂引擎可以隨意玩,技術如詩,越擼越癡;
如果是想創造一個偉大的引擎,請收下我的膝蓋。
如何制作app游戲?
制作游戲app主要還是和編程有關系,
題主想要自己做游戲app最主要的一點是自己掌握編程語言,
不管是java、c++、php、ASP、JSP、還是說Python,這些語言之中的任意一個都是可以的。
怎么自己做一個單機游戲?
你好!這里是簡問,很榮幸來回答你的問題。
如果你只是想要自己做一款即時戰略游戲,我勸你還是放棄吧。因為是在太難了,你需要學編程,需要精通unity或者虛幻4這樣的引擎。你需要可以使用3dsmax這樣的美術軟件,你需要會制作場景貼圖。而且,你還得會把這一切整合在一起。就算游戲開發出來,大部分情況下肯定和你設想的不一樣(就是很爛拉)這一切,如果只是一個人的話,除非你曾經開發過游戲,不然是不太可能的。但是,如果你真的想要過把癮的話,我推薦你這么幾個東西。
魔獸爭霸3地圖編輯器
因為看簡介知道,你只是想要做一款即時戰略游戲,而魔獸爭霸3自帶的地圖編輯器,將可以滿足你的絕大部分想法。編輯器很容易上手,但是可以自定義的內容很多。包括人物模型,地圖大小,關卡設計等等。像著名的moba游戲,dota,就是誕生于魔獸爭霸3的地圖編輯器當中的。
騎馬與砍殺mod制作器
這個相較于魔獸爭霸地圖編輯器來說,門檻將要更高。如果你想要深度定制,你還是需要精通類似于C#,JavaScript當中一種計算機編程語言。但是,這個制作器的可玩性很高,很多你的想法都可以實現,但是不建議你輕易嘗試。
本來打算再多寫幾個的,但是因為沒時間了,就說這么多了。就這樣吧,再見!希望你可以理智一點,在十分確定了你的目標后,而且依然想要做,你再繼續下一步吧。
以上就是關于編程小白如何做小游戲和游戲引擎怎么開發的相關問題解答,希望對你有所幫助。