發(fā)布時間:2023-11-27 03:36:31 瀏覽量:107次
1.認(rèn)識游戲
1.1什么是游戲
1.1.1游戲的定義
任何人類正常生理需求之外的活動均可稱為游戲
1.1.2游戲的分類
RPG角色扮演游戲、ACT動作游戲、AVG冒險游戲、FPS第一人稱視角射擊游戲、TPS第三人稱視角射擊游戲、FTG格斗游戲、SPT體育游戲、RAC競速游戲、RTS即時戰(zhàn)略游戲、STG射擊類游戲、SLG策略游戲、MSC音樂游戲、SIM生活模擬游戲、TCG育成游戲、CAG卡片游戲、LVG戀愛游戲、GAL美少女游戲、WAG手機(jī)游戲、MMOPRG大型多人在線角色扮演游戲、ARPG動作角色扮演游戲、ETC其他類游戲、動漫游戲、MOBA多人在線技術(shù)競技游戲
1.2游戲開發(fā)及分工
可行性與計劃研究階段、分析需求階段、設(shè)計階段、開發(fā)階段、測試階段、系統(tǒng)驗收
開發(fā)流程:產(chǎn)品立項、游戲設(shè)計、開發(fā)階段、測試階段、Alpha測試(項目組內(nèi)部測試)、Beta測試(游戲內(nèi)測)、上線推廣階段、運營階段
1.3游戲行業(yè)現(xiàn)狀分析
虛擬現(xiàn)實設(shè)備及內(nèi)容、移動游戲操控設(shè)備、互聯(lián)網(wǎng)+游戲創(chuàng)業(yè)、電競直播平臺、原創(chuàng)IP、H5游戲
1.4游戲服務(wù)器開發(fā)要點
網(wǎng)絡(luò)知識(OSI參考模型、套接字、長連接、短連接)、并發(fā)編程、設(shè)計模式(單例模式、工廠模式、觀察者模式)、數(shù)據(jù)庫(MySQL、Mongo,內(nèi)存數(shù)據(jù)庫Redis、Memcache、Ehcache)、gm運營工具、運維知識(服務(wù)器部署、架構(gòu)搭建、負(fù)載均衡、日志管理、數(shù)據(jù)庫備份恢復(fù)、災(zāi)難處理)
2.環(huán)境搭建
2.1Windows開發(fā)環(huán)境搭建
2.1.1安裝JDK
設(shè)置Path變量、設(shè)置CLASSPATH環(huán)境變量、設(shè)置JAVA_HOME
2.1.2安裝Eclipse
2.1.3安裝數(shù)據(jù)庫客戶端工具
Navicat for MySQL (MySQL) : http: //www.navicat.eom.cn/
MongoVUE (Mongo ) : http:/ www.mongovue.com
RedisClient (Redis) : https: // github.com/caoxin /RedisClient
2.1.4安裝SSH工具
XShell: http: //www.netsarang.com/products/xsh_overview.html
SSH: http://ultra.pr.erau.edu/~·jaffem/tutoriaVSSH _secure_ shell_ client.htm
2.1.5 安裝其他工具
文本編輯器
Ediψlus: https: //www.ediφlus.com/download.htrnl
Sublime Text: http: //www.sublimetext.com/
容器
Tomcat: https: //tomcat.apache.org/
JBoss: http://jbossas.jboss.o
JSON 解析工具
在線 JSON 解析: http://json.cn
2.2Mac OS X開發(fā)環(huán)境搭建
2.3Linux服務(wù)器環(huán)境搭建
3.網(wǎng)絡(luò)通信
3.1通信協(xié)議
TCP/IP模型:鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層
3.1.1面向連接的 TCP
3次握手建立連接
面向連接:通信之前必須通過三次“握手”建立可靠連接
安全可靠:每 次通信都必須得到對方的應(yīng)答,否則認(rèn)為數(shù)據(jù)報丟失,需要重發(fā)。
全雙工通信: 旦建立連接,雙方都可以通過通道進(jìn)行數(shù)據(jù)傳輸
通信只能建立在兩個點之間
面向流通信:通信傳輸是通過流的形式進(jìn)行的。
3.1.2面向數(shù)據(jù)報的UDP
3.1.3HTTP編程
3.1.4Socket編程
服務(wù)器監(jiān)聽、客戶端請求、連接確認(rèn)
3.1.5 WebSocket 編程
3.2Java NIO 基礎(chǔ)
3.2.1BIO編程(阻塞式IO)
3.2.2NIO編程(非阻塞式IO)
創(chuàng)建1個線程負(fù)責(zé)處理 IO 事件和 事件的分發(fā)。
事件驅(qū)動機(jī)制非同步監(jiān)視事件,而是事件到達(dá)之后觸發(fā)。
線程之間通過 wait notify 等方式通信,減少了不必要的線程切換。
3.2.3AIO編程(異步IO)
沒有阻塞等待客戶端連接
3.3Mina的介紹及其使用
3.3.1總體架構(gòu)
3.3.2IoService
負(fù)責(zé)IO相關(guān)工作
3.3.3IoFilterChain
擴(kuò)展處理器
3.3.4IoHandler
業(yè)務(wù)邏輯處理
3.3.5IoSession
對應(yīng)客戶端與服務(wù)端的IO連接
3.3.6工作原理
3.3.7Acceptor與Connector 線程
監(jiān)聽連接
3.3.8 Processor 線程
復(fù)制IO讀寫操作
3.3.9線程模式
3.3.10請求的處理順序
保證請求IO請求順序
3.3.11Mina編程
3.4Netty的介紹及其使用
3.4.1總體架構(gòu)
3.4.2零拷貝
Netty 的接收和發(fā)送來用 ByteBuffer, ByteBuffer 采用 Direct Buffers ,即ByteBuffer 直接使用堆外的內(nèi)存進(jìn)行 Socket 讀寫,而不需要進(jìn)行字節(jié)緩沖區(qū)的二次拷貝
Netty 的組合 Buffer 對象,能聚合多個 ByteBuffer 對象,用戶如果要操作多個Buffer ,可以先將這些 Buffer 組合,然后操作這個組合 Buffer
Netty 采用 transferTo 進(jìn)行文件傳輸,可以直接把文件緩沖區(qū)的數(shù)據(jù)發(fā)送到目標(biāo)的Channel
3.4.3 Codec 框架
FrameDecoder
FrameDecoder 通過維護(hù) DynamicChannelBuffer 存儲接收的數(shù)據(jù),它提供抽象模板,在模板中寫好了整個解碼過程,使用它只需在子類實現(xiàn) decode 方法。
ReplayingDecoder
ReplayingDecoder FrameDecoder 的非阻塞解碼
ObjectEncoder和Objectoecoder
這兩個類能對 Java 對象進(jìn)行編解碼序列化。
HttpRequestEncoder 和HttpRequestDecoder
Netty中還能實現(xiàn) HTTP 服務(wù)器,通過 HttpRequestEncoder HtφRequestDecoder能實現(xiàn) HTTP 請求和響應(yīng)的編解碼。
3.4.4 Channel
3.4.5 ChannelEvent
3.4.6 ChannelPipeline
3.4.7 Netty 編程
4.數(shù)據(jù)交互
4.1數(shù)據(jù)傳輸格式
網(wǎng)絡(luò)數(shù)據(jù)大小、網(wǎng)絡(luò)數(shù)據(jù)安全性、實現(xiàn)復(fù)雜度、協(xié)議通用性
數(shù)據(jù)類型:自定義二進(jìn)制 Binary、開源協(xié)議、文博會協(xié)議
4.2JSON的使用及解析
4.3XML的使用及解析
4.4Google Protocol Buffer 的介紹及使用
4.4.1 Protobuffer 的安裝與編譯
4.4.2 Protobuffer 的語法
標(biāo)識符,Proto buffer 協(xié)議的標(biāo)識符為 message enum, message 代表消息類型, enum 代表枚舉類型,在通過 Protobuffer 的編譯器編譯之后,它們都生成 Java 中的一個類。
修飾符
required :該宇段不能為空,必須傳遞值,否則 message 不能被正確初始化。
optional :該字段可以為空,不管該字段是否傳值, message 都能正確初始化。
repeated :重復(fù)的字段,等同動態(tài)數(shù)組,編譯成 Java 后即為 List ,但是其數(shù)據(jù)可以為空。
數(shù)據(jù)類型
Package
Option,Option 可以定義 些常用選工頁
4.4.3 生成 Java類
4.4.4 Eclipse的protobuf-dt 插件
4.4.5 示例程序
5.數(shù)據(jù)緩存與持久化
5.1游戲數(shù)據(jù)存儲
5.1.1 數(shù)據(jù)分類
全局?jǐn)?shù)據(jù)(排行榜信息、聯(lián)盟信息、國家信息、競技場信息等全服所有玩家共享的信息)、在線玩家數(shù)據(jù)、離線玩家數(shù)據(jù)
5.1.2 數(shù)據(jù)緩存方式
5.1.3 數(shù)據(jù)持久化方式
5.1.4 數(shù)據(jù)庫的比較
5.2MySql的介紹及使用
5.3MongoDB的介紹及使用
文檔存儲、可擴(kuò)展性、易查詢、安全性
5.4Memcache的介紹和使用
5.5Redis的介紹和使用
5.5.1Redis的特點
速度快、數(shù)據(jù)類型豐富、操作原子性、持久化、應(yīng)用場景豐富
5.5.3Redis的持久化
AOF 模式指 Redis 在執(zhí)行過程中會把所有的寫指令記錄下來,當(dāng)數(shù)據(jù)恢復(fù)時,再按照當(dāng)時記錄的順序執(zhí)行 遍命令
RDB 模式是在不同的時間 點將 Red is 存儲的數(shù)據(jù)快照存儲到磁盤等介質(zhì)上, Redis在持久化過程中,會先將數(shù)據(jù)寫到臨時文件中,持久化過程結(jié)束之后再用臨時文件替換上次持久化好的文件
5.5.4Redis的主從復(fù)制
6.游戲邏輯
6.1邏輯架構(gòu)
6.1.1項目目錄
6.1.2模塊介紹
core :核心模塊
Gamelnit :游戲服務(wù)器啟動關(guān)閉類,負(fù)責(zé)服務(wù)器資源的加載與釋放
Router :處理玩家請求接入的邏輯處理消息分發(fā)
manager:邏輯模塊
event 事件處理模塊。
module :邏輯模塊。
net :網(wǎng)絡(luò)模塊,使用的網(wǎng)絡(luò)框架及網(wǎng)絡(luò)請求處理等
rpc:負(fù)責(zé)邏輯服務(wù)器與其他服務(wù)器的遠(yuǎn)程服務(wù)調(diào)用。
NetFramework :模擬網(wǎng)絡(luò)層框架,負(fù)責(zé)網(wǎng)絡(luò)請求響應(yīng)的封裝(這里只寫了一個模擬類,正式開發(fā)中應(yīng)當(dāng)使用 Netty Mina 等網(wǎng)絡(luò)框架〉
NetHandler :模擬網(wǎng)絡(luò)框架處理接口,負(fù)責(zé)處理網(wǎng)絡(luò)框架的邏輯。
NetHandlerlmpl :模擬網(wǎng)絡(luò)框架處理接口的實現(xiàn)類
NetModule :模擬網(wǎng)絡(luò)層框架封裝,負(fù)責(zé)封裝網(wǎng)絡(luò)框架。
ProtoIds :網(wǎng)絡(luò)請求協(xié)議號,客戶端與服務(wù)器交互的協(xié)議號
ProtoMessage :網(wǎng)絡(luò)請求消息體,客戶端與服務(wù)器交互的消息結(jié)構(gòu)
ResultCode :網(wǎng)絡(luò)響應(yīng)碼,客戶端與服務(wù)器交互返回結(jié)構(gòu)的響應(yīng)碼封裝
net.properties :網(wǎng)絡(luò)配置 IP 端口文件
task :任務(wù)模塊,游戲中需要的定時任務(wù)。
JobMgr: Job 管理類
QuartzManager: Quartz 管理類
TestJob :測試 Job類
template :靜態(tài)數(shù)據(jù),游戲中靜態(tài)數(shù)據(jù)的載入和讀取。
DataLoader :游戲服務(wù)器數(shù)據(jù)載入類。
util :工具類,所需要的工具類,如數(shù)據(jù)庫工具類、緩存工具類、線程池工具
CacheUtil 緩存管理類
DB 數(shù)據(jù)庫管理類
ExecutorPool 線程池管理類
test:游戲服務(wù)器邏輯框架測試類
6.2邏輯流程
6.2.1網(wǎng)絡(luò)模塊
6.2.2線程池
6.2.3啟動服務(wù)器
6.2.4邏輯請求處理
6.2.5關(guān)閉服務(wù)器
6.3事件處理器
在游戲服務(wù)器中,經(jīng)常會有事件觸發(fā)機(jī)制,觸發(fā)的事件通常是通過異步方式執(zhí)行。服務(wù)器內(nèi)部事件處理器,用于斷開模塊之間藕合。比如登錄后要給好友發(fā)上線通知 登錄完成后觸發(fā)一個登錄事件,所有關(guān)注這個事件的模塊,仍然處理自己的業(yè)務(wù) 避免 登錄完成后直接調(diào)用其他模塊的接口。
6.4定時任務(wù)
在游戲服務(wù)器中,經(jīng)常會有定時執(zhí)行某個邏輯的需求,如每日簽到、整點更新、玩 家某個屬性在某個時刻進(jìn)行刷新、聯(lián)盟或國家的聲望值在每周的某個時刻刷新,這一系 列的需求都需要使用定時任務(wù)來實現(xiàn)
6.5RPC框架
各個服務(wù)器進(jìn)程之間的通信部分,在多個服務(wù)器進(jìn)程之間的通信,目前使用的技術(shù) 般是 RPC
6.5.1 Json-rpc
6.5.2 Motan
發(fā)現(xiàn)服務(wù)、訂閱服務(wù)和服務(wù)通知
支持 Fail Over FailFast ,以及 Server 連續(xù)失敗的次數(shù)達(dá)到規(guī)定次數(shù)進(jìn)行心跳檢 測等高可用策略
支持優(yōu)先低并發(fā)、 致性 Hash 、隨機(jī)請求、輪詢 負(fù)載均衡策略
支持 SPI 擴(kuò)展
可調(diào)用統(tǒng)計日志和訪問日志
7.游戲安全
7.1游戲安全的必要性
7.2登錄安全
7.3游戲充值
客戶端向開發(fā)商服務(wù)器請求生成訂單。
客戶端調(diào)用聯(lián)運 SDK 打開支付界面,玩家輸入支付信息。
聯(lián)運 SDK 將訂單信息發(fā)送給聯(lián)運服務(wù)器。
聯(lián)運服務(wù)器記錄訂單并發(fā)送訂單給開發(fā)商服務(wù)器進(jìn)行支付驗證。
開發(fā)商服務(wù)器校驗訂單信息,校驗成功就對客戶端發(fā)貨,并返回校驗結(jié)果給 聯(lián)運服務(wù)器。
聯(lián)運服務(wù)器返回訂單結(jié)果給客戶端。
7.4SQL 注入
7.5通信協(xié)議與消息格式
7.6整型溢出
7.7并發(fā)請求
7.8邏輯漏洞
7.9日志系統(tǒng)
8.服務(wù)器架構(gòu)分析
8.1服務(wù)器架構(gòu)的演變過程
8.2全區(qū)同服架構(gòu)分析
8.2.1 coc 架構(gòu)模型分析
8.2.2 COK 架構(gòu)模型分析
8.3分區(qū)分服架構(gòu)分析
8.4弱聯(lián)網(wǎng)類游戲架構(gòu)分析
8.5MMORPG 類游戲架構(gòu)分析
9.《皇室戰(zhàn)爭》游戲開發(fā)實戰(zhàn)
9.1微競技游戲介紹
9.2架構(gòu)分析及搭建
9.2.1 功能分析
9.2.2 服務(wù)器部署架構(gòu)
9.2.3 系統(tǒng)架構(gòu)
.通信機(jī)制、數(shù)據(jù)處理、項目管理、系統(tǒng)技術(shù)架構(gòu)圖
9.3數(shù)據(jù)持久化方案
9.3.1 數(shù)據(jù)結(jié)構(gòu)分析
9.3.2 使用 Morphia 操作 MongoDB
9.4Netty 網(wǎng)絡(luò)框架的使用
9.4.1 Netty 實現(xiàn)的 HTTP 服務(wù)器
9.4.2 Netty 實現(xiàn)的 TCP 服務(wù)器
9.5賬號系統(tǒng)
9.6個人信息
9.7英雄卡牌系統(tǒng)
9.8寶箱系統(tǒng)
9.9戰(zhàn)斗系統(tǒng)
9.10客戶端模擬
10.游戲開發(fā)技術(shù)前景
10.1Egret
10.2Cocos 20
10.3Unity
10.4Unreal
10.5Java
10.6Node.js
熱門資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設(shè)計領(lǐng)域和數(shù)字藝術(shù)教育的重要性,歡迎點擊咨詢報名。
2. 手機(jī)游戲如何開發(fā)(如何制作傳奇手游,都需要準(zhǔn)備些什么?)
?如何制作傳奇手游,都需要準(zhǔn)備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說明時代在進(jìn)步游戲在更新,更趨于方便化移動化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費、一鍵制作炫酷特效,適合新手小白??靵碓囋嚕?/span>
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結(jié)局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經(jīng)濟(jì)體系揭秘,不同玩家角色的經(jīng)濟(jì)活動
Bigtime加密游戲經(jīng)濟(jì)模型分析,探討游戲經(jīng)濟(jì)特點,幫助玩家更全面了解這款GameFi產(chǎn)品。
6. 3D動漫建模全過程,不是一般人能學(xué)的會的,會的多不是人?
步驟01:面部,頸部,身體在一起這次我不準(zhǔn)備設(shè)計圖片,我從雕刻進(jìn)入。這一次,它將是一種純粹關(guān)注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
7. 3D動畫軟件你知道幾個?3ds Max、Blender、Maya、Houdini大比拼
當(dāng)提到3D動畫軟件或動畫工具時,指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術(shù)動畫的軟件程序。但是,在3D動畫軟件中還包含了其他類型的...
8. 3D打印技巧揭秘!Cura設(shè)置讓你的模型更堅固
想讓你的3D打印模型更堅固?不妨嘗試一下Cura參數(shù)設(shè)置和設(shè)計技巧,讓你輕松掌握!
?三昧動漫對于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應(yīng)并不會推出《巫師4》。因為《巫師》系列在策劃的時候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
10. 虛幻引擎5節(jié)省存儲空間用這招!緩存的清理與設(shè)置
眾所周知,虛幻引擎5(下面簡稱UE5)特別占用存儲空間,僅一個版本安裝好的文件就有60G,這還不包括我們在使用時保存的工程文件和隨之產(chǎn)生的緩存文件。而...
最新文章
同學(xué)您好!