All Projects → AILHC → Easygameframeworkopen

AILHC / Easygameframeworkopen

Licence: mit
基于Typescript的渐进式通用游戏前端开发框架

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Easygameframeworkopen

Creature webgl
2D Skeletal Animation WebGL Runtimes for Creature ( PixiJS, PhaserJS, ThreeJS, BabylonJS, Cocos Creator )
Stars: ✭ 140 (+115.38%)
Mutual labels:  phaser, pixijs
Siris
DEPRECATED: The community driven fork of Iris. The fastest web framework for Golang!
Stars: ✭ 146 (+124.62%)
Mutual labels:  framework, easy-to-use
Phaser State Transition
State transition plugin for Phaser.js
Stars: ✭ 169 (+160%)
Mutual labels:  phaser, pixijs
Literoute
LiteRoute is easy transition for your app. Written on Swift 4
Stars: ✭ 90 (+38.46%)
Mutual labels:  framework, easy-to-use
Iogrid
Multiplayer game engine/framework built using SocketCluster and Phaser
Stars: ✭ 455 (+600%)
Mutual labels:  framework, phaser
Reldens
Reldens - You can make it - Open Source MMORPG Platform
Stars: ✭ 130 (+100%)
Mutual labels:  phaser, game-dev
O2
2D Game Engine with visual WYSIWYG editor
Stars: ✭ 121 (+86.15%)
Mutual labels:  framework, game-dev
Phaser Kinetic Scrolling Plugin
Kinetic Scrolling plugin for Canvas using Phaser Framework
Stars: ✭ 117 (+80%)
Mutual labels:  phaser, pixijs
Gramework
Fast and Reliable Golang Web Framework
Stars: ✭ 354 (+444.62%)
Mutual labels:  framework, easy-to-use
gstatsjs
Graphics statistic (DrawCalls and TextureCount) for WebGL
Stars: ✭ 48 (-26.15%)
Mutual labels:  phaser, pixijs
mmo-arch
Base Architecture for creating scalable games using microservices through Angular, Phaser, NestJS, NATS, and MySQL
Stars: ✭ 25 (-61.54%)
Mutual labels:  phaser, game-dev
Phaser Node Kit
Rapid Game Development with PhaserJS and Node for Modern Browsers
Stars: ✭ 39 (-40%)
Mutual labels:  framework, phaser
Donerserializer
A C++14 JSON Serialization Library
Stars: ✭ 31 (-52.31%)
Mutual labels:  framework, game-dev
Pnet
High level Java network library
Stars: ✭ 49 (-24.62%)
Mutual labels:  framework, easy-to-use
Equalizecss
Css framework with grid based on flexboxes
Stars: ✭ 61 (-6.15%)
Mutual labels:  framework
Nat
nat - the 'ls' replacement you never knew you needed
Stars: ✭ 1,129 (+1636.92%)
Mutual labels:  easy-to-use
Core
The core library of the Duct framework
Stars: ✭ 61 (-6.15%)
Mutual labels:  framework
Flexicms
Flexible site management system Flexi CMS
Stars: ✭ 61 (-6.15%)
Mutual labels:  framework
Abotx
Cross Platform C# Web crawler framework, headless browser, parallel crawler. Please star this project! +1.
Stars: ✭ 63 (-3.08%)
Mutual labels:  framework
Core
The core YAMDBF Framework
Stars: ✭ 63 (-3.08%)
Mutual labels:  framework

EasyGameFramework

LICENSE Author

Open in Gitpod

ReadCodeIn1s

微信公众号-玩转游戏开发-brightgreen.svg

基于Typescript的渐进式通用游戏前端开发框架

A progressive universal game front-end development framework based on Typescript

名词解释

Easy

用这个框架开发会是很容易很轻松很舒服的。

Evolutionary(渐进式)

用这个框架可以让我循序渐进的开发,而不是一上来就给我整一大套东西。在我有需要时就模块库取或者自己开发。

General(通用)

国内的游戏引擎有3个:

其他不太常用的有很多

各有优势,看项目和团队进行技术选型。

我想这个框架可以不受限于引擎,适用于各种项目,不必因为换引擎而重复造轮子。

关于框架这个话题我写了几篇文章(感兴趣可以看一下)

文档网址

Modules(模块)

Core

💗模块管理器

框架的核心模块是一个极简强大的模块管理器,可以轻松接入任何TS/JS项目

「传送门」:egf-core

📦构建工具

框架的核心工具是一个基于rollup的开箱即用的模块构建工具,可以构建出各种模块规范的js+单.d.ts

同时支持监视开发模式哦

「传送门」:egf-cli

🌈UIFramework

一个基于TypeScript的零依赖、跨引擎、高效、灵活、高可扩展的显示控制库(UI框架库)

「传送门」:display-ctrl

在仓库中同时提供了基于CocosCreator2.4.2和CocosCreator3D实现的库(包含layer层级管理库的实现)

  1. dpctrl-ccc
  2. dpctrl-c3d

🤙🤳🏾 Broadcast

一个基于TypeScript的一套高效灵活的广播系统,可以帮助开发者轻松、有序的构建具有极具复杂性的关联交互和状态变化的游戏和应用。

特性

  • 基础事件机制的支持
  • 消息支持携带任意类型的数据(并有类型提示)
  • 支持函数this绑定或任意类型作为环境,一行代码就可以移除环境内所有的接收者
  • 易于构建局部/全局的状态管理
  • 支持双向通信
  • 支持不可思议的粘性广播
  • 基于TypeScript并提供极度舒适的类型提示

「传送门」:broadcast

🌐NetworkFramework

一个基于TypeScript的零依赖、跨平台、灵活、高可扩展的网络库

特性

  1. 跨平台:适用于任意ts/js项目
  2. 灵活、高可扩展:可以根据项目需要进行多层次定制
  3. 零依赖
  4. 强类型:基于TypeScript
  5. 功能强大:提供完整的基本实现:握手、心跳、重连
  6. 可靠:完善的单元测试

「传送门」:enet

🕳️ ObjectPoolManager

一个通用的对象池管理模块,简单易用。

特性

  1. 全局管理多个对象池
  2. 对象无需实现对象池对象接口也可进行获取和回收处理
  3. 简洁可扩展的API
  4. 智能类型提示

「传送门」:obj-pool

🥪LayerManager

通用层级管理模块,简单易用,对业务层透明。

「传送门」:layer

Demos(示例)

框架提供大部分模块的Demo示例供参考 「传送门」:examples

Development Env(开发环境)

这是一个monorepo式的项目仓库,使用这种方式可以很好的管理多模块项目

Use Tools

  • Lerna

    Lerna是一种工具,可以优化使用git和npm管理多包存储库的工作流程。

  • Yarn

Reference(参考资料)

  1. lerna+yarn workspace+monorepo项目的最佳实践
  2. 基于lerna和yarn workspace的monorepo工作流
  3. Monorepo 项目管理Lerna
  4. Lerna 中文教程详解
  5. lerna管理前端模块最佳实践

Basic Commands

创建包

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

给包添加依赖

  • 给指定包添加内部包依赖(需要加上版本号)
    yarn workspace @xxx/a add @xxx/[email protected]
    
  • 给指定包添加开发时内部包依赖(需要加上版本号)
    yarn workspace @xxx/a add -D @xxx/[email protected]
    
  • 给指定包添加外部包依赖
    yarn workspace @xxx/xxx add @xxx/xxxx
    
  • 给指定包添加开发时外部包依赖(如果是添加内部包,需要加版本号@0.0.x)
    yarn workspace @xxx/xxx add -D @xxx/xxxx
    
  • 给所有包添加依赖(如果是添加内部包,需要加版本号@0.0.x)
    yarn workspaces add lodash
    
  • 给所有包添加开发时依赖(如果是添加内部包,需要加版本号@0.0.x)
    yarn workspaces add -D lodash
    

移除依赖

  • 移除指定包对xxx包的依赖
    yarn workspace packageB remove packageA
    
  • 移除所有包对指定包的依赖
    yarn workspaces remove lodash
    
  • 移除根目录下对xxx包的依赖
    yarn remove -W -D typescript 
    
  • 安装所有依赖
    yarn install 或者 lerna bootstrap
    
  • 清除所有依赖
    lerna clean
    

Version(版本发布)

lerna version
会遍历所有包,检查修改,然后更新包的版本号,以及自动修改引用的包的引用版本号

生成一个提交,一个tag,以及推送到远程仓库

比如 packageA 修改了,版本号从1.0.0变成了1.0.1

然后引用了packageA的packageB、C的版本号也要递增,以及引用的packageA的版本号也要从1.0.0变成1.0.1

Used by other projects(仓库外的开发项目使用模块)

  1. 使用npm link 或 yarn link将指定包链接到全局

    cd packages/core
    yarn link
    
  2. 到项目里创建链接(这个@egf/core是包名)

    cd cocos-example
    yarn link @egf/core
    

Who am I?

游戏开发之路有趣但不易,

玩起来才能一直热情洋溢。

关注我, 一起玩转游戏开发!

在这游戏开发的道路上并肩前行

你的关注是我持续更新的动力~

在以下这些渠道可以找到我和我的分享和创作:

公众号搜索:玩转游戏开发

或扫码:img

一起讨论技术的 QQ 群: 1103157878

博客主页: https://pgd.vercel.app/

掘金: https://juejin.cn/user/3069492195769469

github: https://github.com/AILHC

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].