aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/README.md
blob: 20d908542ce4e44cf5a137fa0445826f4baabd80 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<div align="center">
  <h1>Echo <img src="https://img.shields.io/badge/ES-1.0.0-gray.svg?style=flat-square&amp;logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAwIiBoZWlnaHQ9IjYwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8dGV4dCBmaWxsPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjAiIHg9IjE4OS44MTg3NyIgeT0iMTc1LjgyMjc0IiBpZD0ic3ZnXzEiIGZvbnQtc2l6ZT0iMjQiIGZvbnQtZmFtaWx5PSInQXNzaXN0YW50JyIgdGV4dC1hbmNob3I9InN0YXJ0IiB4bWw6c3BhY2U9InByZXNlcnZlIiBzdHJva2U9IiMwMDAiIHRyYW5zZm9ybT0ibWF0cml4KDM2LjA4NTMgMCAwIDE4LjgzNjEgLTY4NDguMDggLTI4MzEuNzIpIiBmb250LXN0eWxlPSJpdGFsaWMiIGZvbnQtd2VpZ2h0PSJub3JtYWwiPkU8L3RleHQ+CiAgPHBhdGggZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlLXdpZHRoPSIwIiBkPSJtMjgwLjIwNjYzLDkzLjgyMzA0YzguNDUyMTEsMC4wMDk3MyAxNi41MjY1OCwxLjM0MjggMjQuMTczNDcsMy41Njk4M2wtNi4wNTE5Niw5LjUzNDQ5bDQyLjk1OTEzLDBsLTEwLjc0MjUzLC0xNi45NDY5MmwtMTAuNzM0MzMsLTE2Ljk0MTg2bC01LjY1MDY0LDguOTI3MjdjLTEwLjU5MDE5LC0zLjUyNjg0IC0yMi4wMDY4MiwtNS41MDA2NiAtMzMuOTQ1NDQsLTUuNTAwNjZjLTU0Ljk1MjYsMCAtOTkuNDkzNDEsNDAuNTc0OTkgLTk5LjQ5MzQxLDkwLjYzMTRjMCwyMC43NzUwNSA3Ljc1NywzOS44NjI3OCAyMC42NjYzNiw1NS4xNTU5NGwxNS4xMjg0OSwtMTAuNTgwNzNjLTEwLjQ0MDczLC0xMi4zNTg5NyAtMTYuNzE4MjcsLTI3Ljc4MTI1IC0xNi43NTIzMywtNDQuNTcwMmMwLjA3NjA0LC00MC40Njk5NCAzNi4wMjA0LC03My4yMTY1IDgwLjQ0MzE4LC03My4yNzg1NmwwLjAwMDAxLDB6bTc4LjgzNzU0LDE4LjEzNjczbC0xNS4xMjg0NiwxMC41ODU4YzEwLjQzODEsMTIuMzU0MjcgMTYuNzE1NjcsMjcuNzY2ODIgMTYuNzQ0MzksNDQuNTYwNzdjLTAuMDc2MDUsNDAuNDY5NjEgLTM2LjAyMDQsNzMuMjExNDkgLTgwLjQ0NTc3LDczLjI3ODE4Yy03Ljg3MjQ0LC0wLjAwOTI3IC0xNS40MDM5MywtMS4xNzUzIC0yMi41ODM4NiwtMy4xMjUzMmw1LjY5NTEsLTguOTcwNTRsLTQyLjk1ODkzLDBsMTAuNzM0NTgsMTYuOTM3NTVsMTAuNzQyMzMsMTYuOTYwOTFsNS45ODkwMSwtOS40NjczMWMxMC4xNTczMSwzLjIyMDk3IDIxLjAyODE1LDUuMDE3OTMgMzIuMzgxNzgsNS4wMjI2YzU0Ljk2MDUzLC0wLjAwOTMzIDk5LjQ5MzcsLTQwLjU4NDM2IDk5LjUwNjYxLC05MC42NDA4Yy0wLjAxMjkxLC0yMC43NzUwMSAtNy43NzU0MywtMzkuODU4MDggLTIwLjY3Njc4LC01NS4xNDE4MmwwLC0wLjAwMDAxbDAsLTAuMDAwMDF6IiBpZD0ic3ZnXzIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWRhc2hhcnJheT0iNSwyLDIsMiwyLDIiLz4KIDwvZz4KCjwvc3ZnPg==&amp;labelColor=000000&amp;logoWidth=20&amp;logoColor=White" alt="image2" /></h1>
  <i><b>E</b>vent <b>C</b>ommunication and <b>H</b>armonization across <b>O</b>nline platforms.</i>
</div>

>>>
>>>

### 介绍 <img width="80" align="right" src="https://github.com/HydroRoll-Team/echo/blob/main/docs/_static/echo.jpg">

`Echo` 标准是一种用于定义和描述不同平台之间的事件交互和同步的标准规范,它的名字的意象是事件在不同平台之间的回响,表示事件的一致性和同步性。它的名字的意义是事件的沟通和协调,表示标准的目的和价值。

标准预览: https://echo.hydroroll.team/ ,开发预览: https://echo.hydroroll.team/dev/ 。

Echo 标准包括以下几个方面:

* 事件定义:事件的唯一标识符、事件的发起者、事件的接收者、事件的附加信息等。
* API定义:API的唯一地址、API的请求方式、API的请求参数、API的响应结果等。
* 错误处理:错误的唯一标识符、错误的具体编号、错误的简要描述、错误的详细解释等。

示例:

| Workflow | Event |
| :------: | :---: |
| event_name | str |
| event_paras | dict |


### 特性

* 简单:Echo标准使用JSON或YAML格式编写,语法简单,结构清晰,易于阅读和编写。
* 通用:Echo标准可以适用于任何支持HTTP或WebSocket协议的平台,无论是网页、手机、桌面还是其他设备,都可以实现事件的交互和同步。
* 灵活:Echo标准可以根据不同的平台功能和限制,选择合适的请求和响应方式,也可以根据不同的游戏场景需求和目标,定义和扩展事件的类型和数据。
* 兼容:Echo标准考虑了多个平台(甚至是 console、shell)间的互通或起码使用不同平台的不同元素实现一个大概的类似效果,因此不需要担心下游规则包或插件对于平台的兼容性问题。

### 背景

文字跑团(TRPG)游戏是一种基于文字描述和角色扮演的桌上游戏,通常由一个游戏主持人(KP、GM、NC、DM)和多个玩家(PL)组成,通过网络平台进行交流和互动。不同的平台可能有不同的功能和限制,比如群聊、频道、图片、音频甚至视频等,这些都会影响到游戏的体验和效果。为了让水系的文字跑团游戏能够跨平台运行,ES 规定了游戏的**基本逻辑、数据结构、接口定义、错误处理**等。这样,水系用户的 TRPG 游戏就可以**在不同的平台上实现相同或相似的功能**,同时也可以方便模型或规则包或插件开发者进行扩展和定制。


### 贡献

欢迎查看[CONTRIBUTING.md](https://github.com/HydroRoll-Team/echo/blob/main/CONTRIBUTING.md)。