<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          EasyGameFramework基于 Typescript 的漸進(jìn)式通用游戲前端開(kāi)發(fā)框架

          聯(lián)合創(chuàng)作 · 2023-09-20 01:33

          EasyGameFramework 是基于 Typescript 的漸進(jìn)式通用游戲前端開(kāi)發(fā)框架。

          名詞解釋

          Easy

          用這個(gè)框架開(kāi)發(fā)會(huì)是很容易很輕松很舒服的。

          Evolutionary(漸進(jìn)式)

          用這個(gè)框架可以讓我循序漸進(jìn)的開(kāi)發(fā),而不是一上來(lái)就給我整一大套東西。在我有需要時(shí)就模塊庫(kù)取或者自己開(kāi)發(fā)。

          General(通用)

          國(guó)內(nèi)的游戲引擎有3個(gè):

          其他不太常用的有很多

          各有優(yōu)勢(shì),看項(xiàng)目和團(tuán)隊(duì)進(jìn)行技術(shù)選型。

          我想這個(gè)框架可以不受限于引擎,適用于各種項(xiàng)目,不必因?yàn)閾Q引擎而重復(fù)造輪子。

          關(guān)于框架這個(gè)話題我寫(xiě)了幾篇文章(感興趣可以看一下)

          文檔網(wǎng)址

          在線示例

          Modules(模塊)

          Core

          模塊管理器

          框架的核心模塊是一個(gè)極簡(jiǎn)強(qiáng)大的模塊管理器,可以輕松接入任何TS/JS項(xiàng)目

          「?jìng)魉烷T(mén)」:egf-core

          構(gòu)建工具

          框架的核心工具是一個(gè)基于rollup的開(kāi)箱即用的模塊構(gòu)建工具,可以構(gòu)建出各種模塊規(guī)范的js+單.d.ts

          同時(shí)支持監(jiān)視開(kāi)發(fā)模式哦

          「?jìng)魉烷T(mén)」:egf-cli

          UIFramework

          一個(gè)基于TypeScript的零依賴、跨引擎、高效、靈活、高可擴(kuò)展的顯示控制庫(kù)(UI框架庫(kù))
          

          「?jìng)魉烷T(mén)」:display-ctrl

          在倉(cāng)庫(kù)中同時(shí)提供了基于CocosCreator2.4.2和CocosCreator3D實(shí)現(xiàn)的庫(kù)(包含layer層級(jí)管理庫(kù)的實(shí)現(xiàn)),以及與FairyGUI相關(guān)的2.x實(shí)現(xiàn)和3.x實(shí)現(xiàn)

          1. dpctrl-ccc
          2. dpctrl-c3d
          3. dpctrl-fgui 適用于Creator2.x上的fgui適配,同時(shí)也適用于Laya、Egret等
          4. dpctrl-fguicc 3.x上的fgui適配

          Broadcast

          一個(gè)基于TypeScript的一套高效靈活的廣播系統(tǒng),可以幫助開(kāi)發(fā)者輕松、有序的構(gòu)建具有極具復(fù)雜性的關(guān)聯(lián)交互和狀態(tài)變化的游戲和應(yīng)用。
          

          特性

          • 基礎(chǔ)事件機(jī)制的支持
          • 消息支持?jǐn)y帶任意類型的數(shù)據(jù)(并有類型提示)
          • 支持函數(shù)this綁定或任意類型作為環(huán)境,一行代碼就可以移除環(huán)境內(nèi)所有的接收者
          • 易于構(gòu)建局部/全局的狀態(tài)管理
          • 支持雙向通信
          • 支持不可思議的粘性廣播
          • 基于TypeScript并提供極度舒適的類型提示

          「?jìng)魉烷T(mén)」:broadcast

          NetworkFramework

          一個(gè)基于TypeScript的零依賴、跨平臺(tái)、靈活、高可擴(kuò)展的網(wǎng)絡(luò)庫(kù)
          

          特性

          1. 跨平臺(tái):適用于任意ts/js項(xiàng)目
          2. 靈活、高可擴(kuò)展:可以根據(jù)項(xiàng)目需要進(jìn)行多層次定制
          3. 零依賴
          4. 強(qiáng)類型:基于TypeScript
          5. 功能強(qiáng)大:提供完整的基本實(shí)現(xiàn):握手、心跳、重連
          6. 可靠:完善的單元測(cè)試

          「?jìng)魉烷T(mén)」:enet

          ObjectPoolManager

          一個(gè)通用的對(duì)象池管理模塊,簡(jiǎn)單易用。
          

          特性

          1. 全局管理多個(gè)對(duì)象池
          2. 對(duì)象無(wú)需實(shí)現(xiàn)對(duì)象池對(duì)象接口也可進(jìn)行獲取和回收處理
          3. 簡(jiǎn)潔可擴(kuò)展的API
          4. 智能類型提示

          「?jìng)魉烷T(mén)」:obj-pool

          LayerManager

          通用層級(jí)管理模塊,簡(jiǎn)單易用,對(duì)業(yè)務(wù)層透明。
          

          「?jìng)魉烷T(mén)」:layer

          Demos(示例)

          框架提供大部分模塊的Demo示例供參考 「?jìng)魉烷T(mén)」:examples

          Development Env(開(kāi)發(fā)環(huán)境)

          這是一個(gè)monorepo式的項(xiàng)目倉(cāng)庫(kù),使用這種方式可以很好的管理多模塊項(xiàng)目

          Use Tools

          • Lerna

            Lerna是一種工具,可以優(yōu)化使用git和npm管理多包存儲(chǔ)庫(kù)的工作流程。

          • Yarn

          Reference(參考資料)

          1. lerna+yarn workspace+monorepo項(xiàng)目的最佳實(shí)踐
          2. 基于lerna和yarn workspace的monorepo工作流
          3. Monorepo 項(xiàng)目管理Lerna
          4. Lerna 中文教程詳解
          5. lerna管理前端模塊最佳實(shí)踐

          Basic Commands

          創(chuàng)建包

          1. 快速模式
            lerna create @xxx/xxx -y
          2. 配置模式
             lerna create @xxx/xxx

          給包添加依賴

          • 給指定包添加內(nèi)部包依賴(需要加上版本號(hào))
            yarn workspace @xxx/a add @xxx/[email protected]
          • 給指定包添加開(kāi)發(fā)時(shí)內(nèi)部包依賴(需要加上版本號(hào))
            yarn workspace @xxx/a add -D @xxx/[email protected]
          • 給指定包添加外部包依賴
            yarn workspace @xxx/xxx add @xxx/xxxx
          • 給指定包添加開(kāi)發(fā)時(shí)外部包依賴(如果是添加內(nèi)部包,需要加版本號(hào)@0.0.x)
            yarn workspace @xxx/xxx add -D @xxx/xxxx
          • 給所有包添加依賴(如果是添加內(nèi)部包,需要加版本號(hào)@0.0.x)
            yarn workspaces add lodash
          • 給所有包添加開(kāi)發(fā)時(shí)依賴(如果是添加內(nèi)部包,需要加版本號(hào)@0.0.x)
            yarn workspaces add -D lodash

          移除依賴

          • 移除指定包對(duì)xxx包的依賴
            yarn workspace packageB remove packageA
          • 移除所有包對(duì)指定包的依賴
            yarn workspaces remove lodash
          • 移除根目錄下對(duì)xxx包的依賴
            yarn remove -W -D typescript 
          • 安裝所有依賴
            yarn install 或者 lerna bootstrap
          • 清除所有依賴
            lerna clean

           

          瀏覽 21
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产美女91 呻吟求XX网站 | 国内精品偷拍 | 精品人伦一区二区三区蜜桃网站 | 九九黄色小视频 | 国产三级片视频网站 |