

終止支援通知： 將於 2026 AWS 年 5 月 20 日結束對 的支援 AWS SimSpace Weaver。2026 年 5 月 20 日之後，您將無法再存取 SimSpace Weaver 主控台或 SimSpace Weaver 資源。如需詳細資訊，請參閱[AWS SimSpace Weaver 終止支援](https://docs.aws.amazon.com/simspaceweaver/latest/userguide/simspaceweaver-end-of-support.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 什麼是 AWS SimSpace Weaver？
<a name="what-is"></a>

AWS SimSpace Weaver 是一項服務，可用來在 中建置和執行大規模空間模擬 AWS 雲端。例如，您可以建立群眾模擬、大型真實世界環境，以及身歷其境的互動式體驗。

使用 SimSpace Weaver，您可以將模擬工作負載分散到多個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。 會為您 SimSpace Weaver 部署基礎 AWS 基礎設施，並處理執行模擬的 Amazon EC2 執行個體之間的模擬資料管理和網路通訊。

# 的主要概念 SimSpace Weaver
<a name="what-is_key-concepts"></a>

模擬或遊戲受限於執行該模擬或遊戲的電腦。隨著虛擬世界的大小和複雜性不斷增加，處理效能開始下降。計算需要更長的時間、系統記憶體不足，以及用戶端影格率下降。對於不需要即時效能的模擬，這可能只會令人煩惱。或者，這可能是業務關鍵情況，其中增加的處理延遲會導致成本增加。如果您的模擬或遊戲需要即時效能，則效能降低絕對是問題。

模擬達到效能限制的常見解決方案是簡化模擬。具有許多使用者的線上遊戲通常會透過在不同的伺服器上複製虛擬世界，並將使用者分散到各個伺服器上，來解決擴展問題。

SimSpace Weaver 透過空間分配虛擬世界，並將片段分散到在 中執行的運算執行個體叢集中，來解決擴展問題 AWS 雲端。運算執行個體可一起平行處理整個模擬世界。您的模擬世界顯示為其中所有項目的單一整合空間，以及連接到其中的所有用戶端。由於硬體效能限制，您不再需要簡化模擬。您可以改為在雲端中新增更多運算容量。

**Topics**
+ [SimSpace Weaver 運作方式](#what-is_key-concepts_how-it-works)
+ [使用方式 SimSpace Weaver](#what-is_key-concepts_how-you-use-it)
+ [模擬結構描述](#what-is_key-concepts_schema)
+ [工作者和資源單位](#what-is_key-concepts_workers-and-resource-units)
+ [模擬時鐘](#what-is_key-concepts_clock)
+ [分區](#what-is_key-concepts_partitions)
+ [State Fabric](#what-is_key-concepts_state-fabric)
+ [實體](#what-is_key-concepts_entities)
+ [應用程式](#what-is_key-concepts_apps)

## SimSpace Weaver 運作方式
<a name="what-is_key-concepts_how-it-works"></a>

您的模擬包含一個包含物件的世界。某些物件 （例如人物和車輛） 會移動並執行動作。其他物件 （例如樹木和建築物） 是靜態的。在 中 SimSpace Weaver，*實體*是模擬世界中的物件。

您可以定義模擬世界的邊界，並將其劃分為網格。您不會建立在整個網格上操作的模擬邏輯，而是建立在網格的一個儲存格上操作的模擬邏輯。在 中 SimSpace Weaver，*空間應用程式*是您撰寫的程式，可實作網格儲存格的模擬邏輯。這包括該儲存格中所有實體的邏輯。空間應用程式的*擁有權區域*是空間應用程式控制的網格儲存格。

**注意**  
在 中 SimSpace Weaver，「應用程式」一詞可以參考應用程式的程式碼或該程式碼的執行中執行個體。


|  | 
| --- |
|  ![\[模擬世界的地圖分為二維網格\]](http://docs.aws.amazon.com/zh_tw/simspaceweaver/latest/userguide/images/simulation-world-grid.png)  | 

SimSpace Weaver 會為您網格的每個儲存格執行空間應用程式程式碼的執行個體。所有空間應用程式執行個體都會平行執行。基本上， 會將您的整體模擬 SimSpace Weaver 分割成多個較小的模擬。每個較小的模擬都會處理整個模擬世界的一部分。 SimSpace Weaver 可以在 中的多個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體 （稱為*工作者*) 之間分配和執行這些較小的模擬 AWS 雲端。單一工作者可以執行多個空間應用程式。

實體可以在模擬世界中移動。如果實體進入另一個空間應用程式的擁有區域 （網格中的另一個儲存格），則新區域的空間應用程式擁有者會接管實體的控制。如果您的模擬在多個工作者上執行，則實體可以從一個工作者的空間應用程式控制移至不同工作者的空間應用程式。當實體移至不同的工作者時， 會 SimSpace Weaver 處理基礎網路通訊。

### Subscriptions
<a name="what-is_key-concepts_how-it-works_subscriptions"></a>

空間應用程式的世界視觀表是自己的擁有權區域。為了了解模擬世界的另一個部分發生了什麼情況，空間應用程式會建立*訂閱*。*訂閱區域*是整體模擬世界區域的子集。訂閱區域可包含多個擁有權區域的部分，包括空間應用程式自己的擁有權區域。 會 SimSpace Weaver 通知空間應用程式訂閱區域內發生的所有實體事件 （例如，進入、退出、建立、更新和刪除）。


|  |  | 
| --- |--- |
|  ![\[只有一個可觀測儲存格的世界網格\]](http://docs.aws.amazon.com/zh_tw/simspaceweaver/latest/userguide/images/simulation-world-grid-app-ownership-area.png)  |  ![\[世界網格，具有一個可觀測的儲存格和一個額外的可觀測區域，跨越周圍儲存格的另一個儲存格和部分\]](http://docs.aws.amazon.com/zh_tw/simspaceweaver/latest/userguide/images/simulation-world-grid-app-subscription-area.png)  | 

例如，模擬實體互動的應用程式可能需要了解其擁有區域空間邊界以外的實體。為了達成此目的，應用程式可以訂閱其擁有權區域的邊界區域。建立訂閱後，應用程式會收到這些區域中實體事件的通知，而且可以讀取實體。另一個範例是自動駕駛車輛，無論哪個應用程式擁有該區域，都需要在前方 200 公尺處看到所有實體。車輛應用程式可以使用篩選條件建立訂閱，做為(AABB)涵蓋可檢視區域的軸對齊週框方塊。

您可以建立不負責管理模擬空間層面的模擬邏輯。*自訂應用程式*是在單一工作者上執行的可執行程式。您可以控制自訂應用程式的生命週期 （開始和停止）。模擬用戶端可以連線至自訂應用程式，以檢視模擬或與之互動。您也可以建立在每個工作者上執行*的服務應用程式*。在執行模擬的每個工作者上 SimSpace Weaver 啟動服務應用程式的執行個體。

自訂應用程式和服務應用程式會建立訂閱，以了解實體事件和讀取實體。這些應用程式沒有擁有權區域，因為它們不是空間。使用訂閱是他們能夠了解模擬世界中發生情況的唯一方式。

## 使用方式 SimSpace Weaver
<a name="what-is_key-concepts_how-you-use-it"></a>

當您使用 時 SimSpace Weaver，以下是您遵循的主要步驟：

1. 撰寫並建置整合C\$1\$1應用程式 SDK SimSpace Weaver 的應用程式。

   1. 您的應用程式會進行 API 呼叫，以與模擬狀態互動。

1. 撰寫用戶端，透過某些應用程式檢視模擬並與之互動。

1. 在文字檔案中設定模擬。

1. 將您的應用程式套件和模擬組態上傳至 服務。

1. 啟動您的模擬。

1. 視需要啟動和停止您的自訂應用程式。

1. 將用戶端連接至您的自訂或服務應用程式，以檢視模擬或與之互動。

1. 在 Amazon CloudWatch Logs 中檢查您的模擬日誌。

1. 停止模擬。

1. 清除模擬。

## 模擬結構描述
<a name="what-is_key-concepts_schema"></a>

*模擬結構描述* （或*結構描述*) 是一種 YAML格式化的文字檔案，其中包含模擬的組態資訊。 會在開始模擬時 SimSpace Weaver 使用您的結構描述。 SimSpace Weaver 應用程式開發套件可分發套件包含範例專案的結構描述。您可以使用此作為您自己的結構描述的起點。如需模擬結構描述的詳細資訊，請參閱 [SimSpace Weaver 模擬結構描述參考](schema-reference.md)。

## 工作者和資源單位
<a name="what-is_key-concepts_workers-and-resource-units"></a>

*工作者*是執行模擬的 Amazon EC2 執行個體。您可以在模擬結構描述中指定工作者類型。將您的工作者類型 SimSpace Weaver 對應至服務使用的特定 Amazon EC2 執行個體類型。 會為您 SimSpace Weaver 啟動和停止工作者，並管理工作者之間的網路通訊。 會為每個模擬 SimSpace Weaver 啟動一組工作者。不同的模擬使用不同的工作者。

工作者上可用的運算 （處理器和記憶體） 容量分為稱為*運算資源單位 *（或*資源單位*) 的邏輯單位。資源單位代表固定數量的處理器和記憶體容量。

**注意**  
我們之前將運算資源單位稱為*槽*。您可能仍然會在我們的文件中看到先前的術語。

## 模擬時鐘
<a name="what-is_key-concepts_clock"></a>

每個模擬都有自己的時鐘。您可以使用 API 呼叫或 SimSpace Weaver 主控台來啟動和停止時鐘。模擬只會在時鐘執行時更新。模擬中的所有操作都會在稱為*刻度的*時段內進行。時鐘會向所有工作者宣告每個刻度的開始時間。

*時鐘速率* （或*刻度速率*) 是時鐘宣告的每秒刻度數 （赫茲或 Hz)。模擬所需的時鐘速率是模擬結構描述的一部分。刻度的所有操作都必須在下一個刻度開始之前完成。因此，有效的時鐘速率可以低於所需的時鐘速率。有效時鐘速率不會高於所需的時鐘速率。

## 分區
<a name="what-is_key-concepts_partitions"></a>

*分割區*是工作者上共用記憶體的一個區段。每個分割區會保留部分模擬狀態資料。

空間應用程式的分割區 （也稱為*空間應用程式分割區*或*空間分割區*) 包含空間應用程式擁有區域中的所有實體。根據每個實體的空間位置，在空間應用程式分割區中 SimSpace Weaver 輸入實體。這表示 SimSpace Weaver 會嘗試將空間上彼此接近的實體放置在同一個工作者上。這可最大限度地減少應用程式需要的實體知識量，而這些實體並非其擁有來模擬其擁有的實體。

## State Fabric
<a name="what-is_key-concepts_state-fabric"></a>

*State Fabric *是所有工作者的共用記憶體系統 （所有分割區的集合）。它會保留模擬的所有狀態資料。

State Fabric 使用自訂二進位格式，針對實體的每個資料欄位，將實體描述為一組初始資料和更新日誌。使用此格式，您可以在模擬時間的上一個時間點存取實體的狀態，並將其對應回真實世界時間的某個點。緩衝區的大小有限，而且無法回到超過緩衝區中的時間。 會為每個欄位 SimSpace Weaver 使用更新日誌中目前位移的指標，並在欄位更新中更新指標。 會使用共用記憶體將這些更新日誌 SimSpace Weaver 映射到應用程式的處理空間。

此物件格式會產生低額外負荷且沒有序列化成本。 SimSpace Weaver 也會使用此物件格式來剖析和識別索引欄位 （例如實體位置）。

## 實體
<a name="what-is_key-concepts_entities"></a>

*實體*是模擬中最小的資料建置區塊。實體的範例包括演員 （例如人物和車輛） 和靜態物件 （例如建築物和障礙物）。實體具有屬性 （例如位置和方向），您可以將其儲存為持久性資料 SimSpace Weaver。實體存在於分割區中。

## 應用程式
<a name="what-is_key-concepts_apps"></a>

A SimSpace Weaver *app* 是您撰寫的軟體，其中包含執行每個模擬刻度的自訂邏輯。大多數應用程式的目的是在模擬執行時更新實體。您的應用程式會在 SimSpace Weaver 應用程式 SDK 中呼叫 APIs，以對模擬中的實體執行動作 （例如讀取和更新）。

您可以將應用程式及其必要資源 （例如程式庫） 封裝為 .zip 檔案，並將其上傳至其中 SimSpace Weaver。應用程式會在工作者的 Docker 容器中執行。 SimSpace Weaver 會在工作者上為每個應用程式配置固定數量的資源單位。

SimSpace Weaver 會將一個 （且只有一個） 分割區的擁有權指派給每個應用程式。應用程式及其分割區位於相同的工作者上。每個分割區只有一個應用程式擁有者。應用程式可以在其分割區中建立、讀取、更新和刪除實體。應用程式在其分割區中擁有所有實體。

有三種類型的應用程式：*空間應用程式*、*自訂應用程式**和服務應用程式*。它們因使用案例和生命週期而異。

**注意**  
在 中 SimSpace Weaver，「應用程式」一詞可以參考應用程式的程式碼或該程式碼的執行中執行個體。

### 空間應用程式
<a name="what-is_key-concepts_spatial-apps"></a>

*空間應用程式*會更新模擬中空間存在的實體狀態。例如，您可以定義`Physics`應用程式，負責根據每個刻度的速度、形狀和大小移動和碰撞實體。在此情況下， SimSpace Weaver 會平行執行`Physics`應用程式的多個執行個體，以處理工作負載的大小。

SimSpace Weaver 管理空間應用程式的生命週期。您可以在模擬結構描述中指定空間應用程式分割區的排列。當您啟動模擬時， 會為每個空間應用程式分割區 SimSpace Weaver 啟動空間應用程式。當您停止模擬時， SimSpace Weaver 會關閉您的空間應用程式。

其他類型的應用程式可以建立實體，但只有空間應用程式可以更新實體。其他類型的應用程式必須將他們建立的實體轉移到空間網域。 SimSpace Weaver 會使用實體的空間位置，將實體移至空間應用程式的分割區。這會將實體的所有權轉移到空間應用程式。

### 自訂應用程式
<a name="what-is_key-concepts_custom-apps"></a>

您可以使用*自訂應用程式*來與模擬互動。自訂應用程式會使用訂閱讀取實體資料。自訂應用程式可以建立實體。不過，應用程式必須將實體轉移到空間應用程式，以在模擬中包含實體並進行更新。您可以讓 將網路端點 SimSpace Weaver 指派給自訂應用程式。模擬用戶端可以連線至網路端點，以與模擬互動。您可以在模擬結構描述中定義自訂應用程式，但您必須負責啟動和停止它們 （使用 SimSpace Weaver API 呼叫）。在工作者上啟動自訂應用程式執行個體之後， SimSpace Weaver 不會將執行個體轉移到另一個工作者。

### 服務應用程式
<a name="what-is_key-concepts_service-apps"></a>

當您需要在每個工作者上執行的唯讀程序時，可以使用*服務應用程式*。例如，如果您有大型模擬，而且需要檢視用戶端來移動模擬，並僅向使用者顯示可見實體，則可以使用服務應用程式。在此情況下，單一自訂應用程式執行個體無法處理模擬中的所有實體。您可以將服務應用程式設定為在每個工作者上啟動。然後，每個服務應用程式都可以在其指派的工作者上篩選實體，並僅將相關實體傳送到其連線的用戶端。然後，當您的檢視用戶端在模擬空間中移動時，可以連線到不同的服務應用程式。您可以在模擬結構描述中設定服務應用程式。 會為您 SimSpace Weaver 啟動和停止服務應用程式。

### 應用程式摘要
<a name="what-is_key-concepts_app-summary-table"></a>

下表摘要說明不同類型的 SimSpace Weaver 應用程式特性。


|   | 空間應用程式 | 自訂應用程式 | 服務應用程式 | 
| --- | --- | --- | --- | 
| 讀取實體 |  是  |  是  |  是  | 
| 更新實體 |  是  |  否  |  否  | 
| 建立實體 |  是  |  是\$1  |  是\$1  | 
| 生命週期 |  受管 (SimSpace Weaver 控制它。)  |  未受管 （您可以控制它）。  |  受管 (SimSpace Weaver 控制它。)  | 
| 啟動方法 |  SimSpace Weaver 會為每個空間分割區啟動一個應用程式執行個體，如您的結構描述中所指定。  |  您可以啟動每個應用程式執行個體。  |  SimSpace Weaver 會在每個工作者上啟動一或多個應用程式執行個體，如您的結構描述中所指定。  | 
| 用戶端可以連線 |  否  |  是  |  是  | 

\$1 當自訂應用程式或服務應用程式建立實體時，應用程式必須將實體的所有權轉移到空間應用程式，以便空間應用程式可以更新實體的狀態。

### 網域
<a name="what-is_key-concepts_domains"></a>

A SimSpace Weaver *domain* 是應用程式執行個體的集合，可執行相同的可執行應用程式程式碼，並具有相同的啟動選項和命令。我們根據它們包含的應用程式類型來參考網域：空間網域、自訂網域和服務網域。您可以在網域內設定應用程式。

### 訂閱和複寫
<a name="what-is_key-concepts_subscriptions"></a>

應用程式會建立空間區域的*訂閱*，以了解該區域中的實體事件 （例如，進入、退出、建立、更新和刪除）。應用程式會先處理訂閱中的實體事件，再讀取其未擁有之分割區中的實體資料。

分割區可以存在於與應用程式相同的工作者上 （這稱為*本機分割區*)，但另一個應用程式可以擁有該分割區。分割區也可以存在於不同的工作者 （這稱為*遠端分割區*)。如果訂閱是遠端分割區，工作者會透過稱為*複寫*的程序建立遠端分割區的本機複本。工作者接著會讀取本機複本 （複寫的遠端分割區）。如果工作者上的另一個應用程式需要在相同的刻度上從該分割區讀取，則工作者會讀取相同的本機副本。

# 的範例使用案例 SimSpace Weaver
<a name="what-is_example-use-cases"></a>

您可以使用 SimSpace Weaver 進行代理程式型模型和具有空間元件的離散時間步驟模擬。
<a name="what-is_example-use-cases_crowd-sims"></a>
**建立大型群眾模擬**  
您可以使用 SimSpace Weaver 模擬真實環境中的群眾。 SimSpace Weaver 可讓您使用自己的行為，將模擬擴展到數百萬個動態物件。
<a name="what-is_example-use-cases_city-scale"></a>
**建立城市規模的環境**  
使用 SimSpace Weaver 建立整個城市的數位分身。建立城市規劃、設計流量路由和規劃環境危害回應的模擬。您可以使用自己的地理空間資料來源做為環境的建置區塊。
<a name="what-is_example-use-cases_interactive-experiences"></a>
**建立沉浸式和互動式體驗**  
建立多個使用者可以參與和互動的模擬體驗。使用 Unreal Engine 和 Unity 等熱門開發工具來建置三維 (3D) 虛擬世界。使用您自己的內容和行為自訂 3D 體驗。