| Name | game-realm-keeper JSON |
| Version |
0.4.0
JSON |
| download |
| home_page | None |
| Summary | A package to manage RPG resources. |
| upload_time | 2024-09-01 02:51:43 |
| maintainer | None |
| docs_url | None |
| author | sebastian-hsu |
| requires_python | <4.0,>=3.11 |
| license | None |
| keywords |
|
| VCS |
|
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# This is a RPG resources management toolkit that allows you to create and manage your own RPG game.
## 架構
### 1. GameObject
- **描述**:最基本的遊戲物件類別,代表遊戲中的角色、物品等。
- **屬性**:
- id:物件唯一標識符
- type:物件類型(如角色、物品)
- attributes:物件屬性字典
- equipment:裝備物品字典
### 2. GameWorld
- **描述**:代表整個遊戲世界的狀態。
- **功能**:
- 管理多個 GameObject 實例
- 管理遊戲規則
- 提供添加、獲取、更新和刪除遊戲物件的方法
### 3. GameManager
- **描述**:管理單個遊戲實例的核心邏輯。
- **功能**:
- 使用 GameWorld 維護遊戲狀態
- 通過 GameRepository 保存和載入遊戲狀態
- 提供高級操作:
- 創建角色和物品
- 設置物件屬性
- 裝備物品
### 4. GameRepository(抽象類別)
- **描述**:定義遊戲狀態持久化的介面。
- **功能**:
- 保存遊戲狀態
- 載入遊戲狀態
- 刪除遊戲狀態
### 5. GameSessionManager
- **描述**:管理多個遊戲會話。
- **功能**:
- 創建新遊戲
- 獲取現有遊戲
- 結束遊戲會話
- 刪除遊戲數據
## 具體實現
### MemoryGameRepository
- **描述**:GameRepository 的記憶體實現。
- **功能**:
- 在記憶體中存儲和檢索遊戲數據
## 類別關係
1. **GameObject** ⇒ **GameWorld**
- GameWorld 管理多個 GameObject 實例
2. **GameWorld** ⇒ **GameManager**
- GameManager 使用 GameWorld 來維護遊戲狀態
3. **GameManager** ⇒ **GameRepository**
- GameManager 通過 GameRepository 保存和載入遊戲狀態
4. **GameSessionManager** ⇒ **GameManager**
- GameSessionManager 創建和管理多個 GameManager 實例
5. **GameSessionManager** ⇒ **GameRepository**
- GameSessionManager 使用 GameRepository 來初始化 GameManager
## 職責劃分
1. **數據層**:GameRepository
- 負責遊戲數據的持久化操作
2. **邏輯層**:GameManager
- 處理單個遊戲實例的邏輯
3. **應用層**:GameSessionManager
- 管理遊戲會話,協調多個遊戲實例
4. **模型層**:GameObject 和 GameWorld
- 定義遊戲的基本結構和狀態
## Todo
- 也需要幫 GameManager 加一個 service 層,如果遊戲邏輯變得複雜,可以考慮在 GameWorld 和 GameInterface 之間引入 Service
層,這一層可以處理更具體的領域邏輯,如戰鬥系統、庫存管理等
Raw data
{
"_id": null,
"home_page": null,
"name": "game-realm-keeper",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": null,
"author": "sebastian-hsu",
"author_email": "sebastian.hsu@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/07/2b/67a034c4adec812106596e6a0baf40e8e859d0b7a9c0765fb40eca63895c/game_realm_keeper-0.4.0.tar.gz",
"platform": null,
"description": "# This is a RPG resources management toolkit that allows you to create and manage your own RPG game.\n\n## \u67b6\u69cb\n\n### 1. GameObject\n- **\u63cf\u8ff0**\uff1a\u6700\u57fa\u672c\u7684\u904a\u6232\u7269\u4ef6\u985e\u5225\uff0c\u4ee3\u8868\u904a\u6232\u4e2d\u7684\u89d2\u8272\u3001\u7269\u54c1\u7b49\u3002\n- **\u5c6c\u6027**\uff1a\n - id\uff1a\u7269\u4ef6\u552f\u4e00\u6a19\u8b58\u7b26\n - type\uff1a\u7269\u4ef6\u985e\u578b\uff08\u5982\u89d2\u8272\u3001\u7269\u54c1\uff09\n - attributes\uff1a\u7269\u4ef6\u5c6c\u6027\u5b57\u5178\n - equipment\uff1a\u88dd\u5099\u7269\u54c1\u5b57\u5178\n\n### 2. GameWorld\n- **\u63cf\u8ff0**\uff1a\u4ee3\u8868\u6574\u500b\u904a\u6232\u4e16\u754c\u7684\u72c0\u614b\u3002\n- **\u529f\u80fd**\uff1a\n - \u7ba1\u7406\u591a\u500b GameObject \u5be6\u4f8b\n - \u7ba1\u7406\u904a\u6232\u898f\u5247\n - \u63d0\u4f9b\u6dfb\u52a0\u3001\u7372\u53d6\u3001\u66f4\u65b0\u548c\u522a\u9664\u904a\u6232\u7269\u4ef6\u7684\u65b9\u6cd5\n\n### 3. GameManager\n- **\u63cf\u8ff0**\uff1a\u7ba1\u7406\u55ae\u500b\u904a\u6232\u5be6\u4f8b\u7684\u6838\u5fc3\u908f\u8f2f\u3002\n- **\u529f\u80fd**\uff1a\n - \u4f7f\u7528 GameWorld \u7dad\u8b77\u904a\u6232\u72c0\u614b\n - \u901a\u904e GameRepository \u4fdd\u5b58\u548c\u8f09\u5165\u904a\u6232\u72c0\u614b\n - \u63d0\u4f9b\u9ad8\u7d1a\u64cd\u4f5c\uff1a\n - \u5275\u5efa\u89d2\u8272\u548c\u7269\u54c1\n - \u8a2d\u7f6e\u7269\u4ef6\u5c6c\u6027\n - \u88dd\u5099\u7269\u54c1\n\n### 4. GameRepository\uff08\u62bd\u8c61\u985e\u5225\uff09\n- **\u63cf\u8ff0**\uff1a\u5b9a\u7fa9\u904a\u6232\u72c0\u614b\u6301\u4e45\u5316\u7684\u4ecb\u9762\u3002\n- **\u529f\u80fd**\uff1a\n - \u4fdd\u5b58\u904a\u6232\u72c0\u614b\n - \u8f09\u5165\u904a\u6232\u72c0\u614b\n - \u522a\u9664\u904a\u6232\u72c0\u614b\n\n### 5. GameSessionManager\n- **\u63cf\u8ff0**\uff1a\u7ba1\u7406\u591a\u500b\u904a\u6232\u6703\u8a71\u3002\n- **\u529f\u80fd**\uff1a\n - \u5275\u5efa\u65b0\u904a\u6232\n - \u7372\u53d6\u73fe\u6709\u904a\u6232\n - \u7d50\u675f\u904a\u6232\u6703\u8a71\n - \u522a\u9664\u904a\u6232\u6578\u64da\n\n## \u5177\u9ad4\u5be6\u73fe\n\n### MemoryGameRepository\n- **\u63cf\u8ff0**\uff1aGameRepository \u7684\u8a18\u61b6\u9ad4\u5be6\u73fe\u3002\n- **\u529f\u80fd**\uff1a\n - \u5728\u8a18\u61b6\u9ad4\u4e2d\u5b58\u5132\u548c\u6aa2\u7d22\u904a\u6232\u6578\u64da\n\n## \u985e\u5225\u95dc\u4fc2\n\n1. **GameObject** \u21d2 **GameWorld**\n - GameWorld \u7ba1\u7406\u591a\u500b GameObject \u5be6\u4f8b\n\n2. **GameWorld** \u21d2 **GameManager**\n - GameManager \u4f7f\u7528 GameWorld \u4f86\u7dad\u8b77\u904a\u6232\u72c0\u614b\n\n3. **GameManager** \u21d2 **GameRepository**\n - GameManager \u901a\u904e GameRepository \u4fdd\u5b58\u548c\u8f09\u5165\u904a\u6232\u72c0\u614b\n\n4. **GameSessionManager** \u21d2 **GameManager**\n - GameSessionManager \u5275\u5efa\u548c\u7ba1\u7406\u591a\u500b GameManager \u5be6\u4f8b\n\n5. **GameSessionManager** \u21d2 **GameRepository**\n - GameSessionManager \u4f7f\u7528 GameRepository \u4f86\u521d\u59cb\u5316 GameManager\n\n## \u8077\u8cac\u5283\u5206\n\n1. **\u6578\u64da\u5c64**\uff1aGameRepository\n - \u8ca0\u8cac\u904a\u6232\u6578\u64da\u7684\u6301\u4e45\u5316\u64cd\u4f5c\n\n2. **\u908f\u8f2f\u5c64**\uff1aGameManager\n - \u8655\u7406\u55ae\u500b\u904a\u6232\u5be6\u4f8b\u7684\u908f\u8f2f\n\n3. **\u61c9\u7528\u5c64**\uff1aGameSessionManager\n - \u7ba1\u7406\u904a\u6232\u6703\u8a71\uff0c\u5354\u8abf\u591a\u500b\u904a\u6232\u5be6\u4f8b\n\n4. **\u6a21\u578b\u5c64**\uff1aGameObject \u548c GameWorld\n - \u5b9a\u7fa9\u904a\u6232\u7684\u57fa\u672c\u7d50\u69cb\u548c\u72c0\u614b\n\n## Todo\n\n- \u4e5f\u9700\u8981\u5e6b GameManager \u52a0\u4e00\u500b service \u5c64\uff0c\u5982\u679c\u904a\u6232\u908f\u8f2f\u8b8a\u5f97\u8907\u96dc\uff0c\u53ef\u4ee5\u8003\u616e\u5728 GameWorld \u548c GameInterface \u4e4b\u9593\u5f15\u5165 Service\n \u5c64\uff0c\u9019\u4e00\u5c64\u53ef\u4ee5\u8655\u7406\u66f4\u5177\u9ad4\u7684\u9818\u57df\u908f\u8f2f\uff0c\u5982\u6230\u9b25\u7cfb\u7d71\u3001\u5eab\u5b58\u7ba1\u7406\u7b49\n\n",
"bugtrack_url": null,
"license": null,
"summary": "A package to manage RPG resources.",
"version": "0.4.0",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8094d2fbb650f9e0e53ad310bdd8f80a63d4c70afe97be2201b02043070b9af0",
"md5": "672b24f2efcc00ad9ac54e139d230962",
"sha256": "5dee952ce186f9566811ccd2a242489786d9409cd7c6378f355727e230748cbf"
},
"downloads": -1,
"filename": "game_realm_keeper-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "672b24f2efcc00ad9ac54e139d230962",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 6947,
"upload_time": "2024-09-01T02:51:42",
"upload_time_iso_8601": "2024-09-01T02:51:42.224044Z",
"url": "https://files.pythonhosted.org/packages/80/94/d2fbb650f9e0e53ad310bdd8f80a63d4c70afe97be2201b02043070b9af0/game_realm_keeper-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "072b67a034c4adec812106596e6a0baf40e8e859d0b7a9c0765fb40eca63895c",
"md5": "e195fabc5569b082ddb1d690858139df",
"sha256": "1c40390326c0a3dfb781283a1c1738816f4484871031502a46797e667a67f59f"
},
"downloads": -1,
"filename": "game_realm_keeper-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "e195fabc5569b082ddb1d690858139df",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 4744,
"upload_time": "2024-09-01T02:51:43",
"upload_time_iso_8601": "2024-09-01T02:51:43.946722Z",
"url": "https://files.pythonhosted.org/packages/07/2b/67a034c4adec812106596e6a0baf40e8e859d0b7a9c0765fb40eca63895c/game_realm_keeper-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-01 02:51:43",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "game-realm-keeper"
}