本系列博客主要是以對戰(zhàn)游戲為背景介紹3D對戰(zhàn)網(wǎng)絡(luò)游戲常用的開發(fā)技術(shù)以及C++高級編程技巧,有了這些知識,就可以開發(fā)出中小型游戲項目或3D工業(yè)仿真項目。
筆者將分為以下三個部分向大家介紹(每日更新):
1、實現(xiàn)基本通信框架,包括對游戲的需求分析、設(shè)計及開發(fā)環(huán)境和通信框架的搭建;
2、實現(xiàn)網(wǎng)絡(luò)底層操作,包括創(chuàng)建線程池、序列化網(wǎng)絡(luò)包等;
3、實戰(zhàn)演練,實現(xiàn)類似于CS反恐精英的3D對戰(zhàn)網(wǎng)絡(luò)游戲;
技術(shù)要點:C++面向?qū)ο笏枷?、網(wǎng)絡(luò)編程、Qt界面開發(fā)、Qt控件知識、Boost智能指針、STL算法、STL、容器、Boost網(wǎng)絡(luò)庫、OpenGL坐標變換、OpenGL加載3D模型、MD2模型加載、MDL模型加載
好了,下面就讓我們來開始今天的學習之旅,系統(tǒng)設(shè)計的總體設(shè)計和概要設(shè)計部分。
一、設(shè)計思路
(1)思路:
將從游戲基本流程、功能模塊劃分、客戶端總體設(shè)計、系統(tǒng)包圖結(jié)構(gòu)、服務(wù)器端功能劃分、客戶端功能劃分六個部分進行游戲的系統(tǒng)設(shè)計,這里希望大家能夠熟悉UML包圖的使用方法。
(2)包圖介紹:
在UML的建模機制中,模型的組織是通過包來實現(xiàn)的。包把建立的各種模型組織起來,形成各種功能或用途的模塊,并可以控制包中元素的可見性以及描述包之間的依賴關(guān)系。通過這種方式,系統(tǒng)模型的實現(xiàn)者可在高層把握系統(tǒng)的結(jié)構(gòu)。包圖是一種維護和描述系統(tǒng)總體結(jié)構(gòu)的模型的重要建模工具,通過對包中各個包以及包之間關(guān)系的描述,展現(xiàn)出系統(tǒng)的模塊與模塊之間的依賴關(guān)系。
(3)包圖的作用
包圖可以描述需求,設(shè)計的高階概況;包圖通過合理規(guī)劃自身功能反應(yīng)系統(tǒng)的高層架構(gòu),在邏輯上將系統(tǒng)進行模塊化分解;包圖最終是組織源碼的方式。
二、游戲總體設(shè)計
(1)游戲流程圖:
(2)功能模塊圖:
(3)客戶端總體設(shè)計: