国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

Node.js 制作實(shí)時(shí)多人游戲框架

2019-11-20 13:28:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在 Node.js 如火如荼發(fā)展的今天,我們已經(jīng)可以用它來(lái)做各種各樣的事情。前段時(shí)間UP主參加了極客松活動(dòng),在這次活動(dòng)中我們意在做出一款讓“低頭族”能夠更多交流的游戲,核心功能便是 Lan Party 概念的實(shí)時(shí)多人互動(dòng)。極客松比賽只有短得可憐的36個(gè)小時(shí),要求一切都敏捷迅速。在這樣的前提下初期的準(zhǔn)備顯得有些“水到渠成”。跨平臺(tái)應(yīng)用的 solution 我們選擇了node-webkit,它足夠簡(jiǎn)單且符合我們的要求。

按照需求,我們的開(kāi)發(fā)可以按照模塊分開(kāi)進(jìn)行。本文具體講述了開(kāi)發(fā) Spaceroom(我們的實(shí)時(shí)多人游戲框架)的過(guò)程,包括一系列的探索與嘗試,以及對(duì) Node.js、WebKit 平臺(tái)本身的一些限制的解決,和解決方案的提出。

Getting started
Spaceroom 一瞥
在最開(kāi)始,Spaceroom 的設(shè)計(jì)肯定是需求驅(qū)動(dòng)的。我們希望這個(gè)框架可以提供以下的基礎(chǔ)功能:

能夠以 房間(或者說(shuō)頻道) 為單位,區(qū)分一組用戶(hù)
能夠接收收集組內(nèi)用戶(hù)發(fā)來(lái)的指令
在各個(gè)客戶(hù)端之間對(duì)時(shí),能夠按照規(guī)定的 interval 精確廣播游戲數(shù)據(jù)
能夠盡量消除由網(wǎng)絡(luò)延遲帶來(lái)的影響
當(dāng)然,在 coding 的后期,我們?yōu)?Spaceroom 提供了更多的功能,包括暫停游戲、在各個(gè)客戶(hù)端之間生成一致的隨機(jī)數(shù)等(當(dāng)然根據(jù)需求這些都可以在游戲邏輯框架里自己實(shí)現(xiàn),并非一定需要用到 Spaceroom 這個(gè)更多在通信層面上工作的框架)。

APIs
Spaceroom 分為前后端兩個(gè)部分。服務(wù)器端所需要做的工作包括維護(hù)房間列表,提供創(chuàng)建房間、加入房間的功能。我們的客戶(hù)端 APIs 看起來(lái)像這樣:

spaceroom.connect(address, callback)

主站蜘蛛池模板: 黄龙县| 保靖县| 罗山县| 大洼县| 汝州市| 尤溪县| 蒲江县| 嘉善县| 岳阳县| 本溪市| 隆回县| 咸阳市| 阳高县| 张家界市| 廉江市| 嵩明县| 滨州市| 界首市| 葫芦岛市| 新田县| 平谷区| 宣威市| 辽阳县| 定安县| 永康市| 沾益县| 田林县| 赤水市| 屏东县| 保德县| 衡阳市| 波密县| 府谷县| 怀集县| 望都县| 西充县| 大港区| 陈巴尔虎旗| 齐河县| 建阳市| 邓州市|