game-realm-keeper


Namegame-realm-keeper JSON
Version 0.4.0 PyPI version JSON
download
home_pageNone
SummaryA package to manage RPG resources.
upload_time2024-09-01 02:51:43
maintainerNone
docs_urlNone
authorsebastian-hsu
requires_python<4.0,>=3.11
licenseNone
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"
}
        
Elapsed time: 0.68700s