Evennia contribs 的準則

Evennia 有一個 contrib 目錄,其中包含按類別組織的可選社群共享程式碼。歡迎任何人做出貢獻。

什麼適合contrib?

  • 一般來說,您可以貢獻任何您認為可能對其他開發人員有用的內容。與「核心」Evennia 不同,contribs 也可以是高度特定於遊戲型別的。

  • 非常小的或不完整的程式碼片段(e.g。旨在貼到其他程式碼中)最好在 社群 Contribs 和程式碼片段 討論論壇類別中作為帖子進行分享。

  • 如果您的程式碼「主要」是作為範例或展示概念/原理而不是工作系統,請考慮是否透過編寫新教學或指南來為檔案做出貢獻更好。

  • 如果可能的話,盡量讓你的貢獻與型別無關,並假設 您的程式碼將應用於與您建立時所設想的完全不同的遊戲。

  • 該貢獻最好應該與其他 contribs 隔離工作(僅使用核心 Evennia),以便可以輕鬆投入使用。如果它確實依賴其他contribs或第三方模組,則必須清楚記錄這些模組並將其作為安裝說明的一部分。

  • 如果您不確定您的 contrib 想法是否合適或合理,請在投入任何工作之前透過討論或聊天進行詢問。例如,我們不太可能接受需要對遊戲目錄結構進行大量修改的contribs。

contrib 的佈局

  • contrib 必須僅包含在以下 contrib 類別之一下的單一資料夾中。 詢問您是否不確定哪個類別最適合您的contrib。

base_systems/

系統不一定與特定的遊戲機制相關,但對整個遊戲有用。範例包括登入系統、新指令語法和建置 helpers.

full_systems/

_「完整」的遊戲引擎,可以直接用於開始建立內容,無需進一步新增(除非您願意)。 _

game_systems/

遊戲內的遊戲系統,如製作、郵件、戰鬥等等。每個系統都應該逐步採用並用於您的遊戲。這不包括特定於角色扮演的系統,這些系統可在 rpg category. 中找到

grid/

與遊戲世界的拓樸和結構相關的系統。 Contribs與房間、出口和地圖相關building.

rpg/

專門與角色扮演和規則實施相關的系統,例如角色特徵、擲骰子和emoting.

tutorials/

幫助資源專門用於教授開發概念或舉例說明 Evennia 系統。與檔案教學相關的任何額外資源都可以在此處找到。也是教學世界和 Evadventure 演示 codes. 的所在地

utils/

_用於操作文字、安全審核和more._的各種工具

  • 資料夾(包)應採用以下形式:

    evennia/
       contrib/ 
           category/    # rpg/, game_systems/ etc
               mycontribname/
                   __init__.py
                   README.md
                   module1.py
                   module2.py
                   ...
                   tests.py
    

    It’s often a good idea to import useful resources in __init__.py to make it easier to import them.

  • 您的程式碼應遵守 Evennia 樣式指南。寫得容易閱讀。

  • 您的貢獻_必須_包含在單元測試 中。將您的測試放在 contrib 資料夾下的模組 tests.py 中(如上所示) - Evennia 將自動找到它們。如果多個模組中有許多測試,請使用資料夾 tests/ 對測試進行分組。

  • README.md 檔案將被解析並轉換為從 contrib 概述頁面 連結的檔案。它需要採用以下形式:

    # MyContribName
    
    Contribution by <yourname>, <year>
    
    A paragraph (can be multi-line)
    summarizing the contrib (required)
    
    Optional other text
    
    ## Installation
    
    Detailed installation instructions for using the contrib (required)
    
    ## Usage
    
    ## Examples
    
    etc.
    

致謝資訊和第一段摘要將自動包含在每個貢獻的 Contrib 概述頁面索引中,因此只需在此表單上。

正在提交contrib

  • contrib 必須始終作為拉取請求 (PR) 呈現。

  • PR 會經過審核,因此如果您在合併之前被要求修改或更改程式碼,請不要感到驚訝(或沮喪)。您的程式碼在被接受之前最終可能會經歷多次迭代。

  • 為了使許可情況清晰,我們假設所有貢獻都使用相同的許可為Evennia發布。如果由於某種原因無法做到這一點,請與我們聯絡,我們將根據具體情況進行處理。