Skip to content

Commit

Permalink
added quick other resources section
Browse files Browse the repository at this point in the history
  • Loading branch information
Megafunk committed Apr 28, 2022
1 parent effca02 commit cc148b1
Showing 1 changed file with 61 additions and 30 deletions.
91 changes: 61 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ After installing the requirements from above, follow these steps:
> 6.1 [MassEntity](#mass-pm-me)
> 6.2 [MassGameplay](#mass-pm-gp)
> 6.3 [MassAI](#mass-pm-ai)
> 7. [Other Resources](#mass-or)


Expand Down Expand Up @@ -752,77 +753,77 @@ Out of the box Mass can spread out work to threads in two different ways:


<a name="mass-pm"></a>
## 5. Mass Plugins and Modules
## 6. Mass Plugins and Modules
This Section overviews the three main Mass plugins and their different modules:

> 5.1 [`MassEntity`](#mass-pm-me)
> 5.2 [`MassGameplay`](#mass-pm-gp)
> 5.3 [`MassAI`](#mass-pm-ai)
> 6.1 [`MassEntity`](#mass-pm-me)
> 6.2 [`MassGameplay`](#mass-pm-gp)
> 6.3 [`MassAI`](#mass-pm-ai)
<a name="mass-pm-me"></a>
### 5.1 `MassEntity`
### 6.1 `MassEntity`
`MassEntity` is the main plugin that manages everything regarding Entity creation and storage.


<a name="mass-pm-gp"></a>
### 5.2 `MassGameplay `
### 6.2 `MassGameplay `
The `MassGameplay` plugin compiles a number of useful Fragments and Processors that are used in different parts of the Mass framework. It is divided into the following modules:

> 5.2.1 [`MassCommon`](#mass-pm-gp-mc)
> 5.2.2 [`MassMovement`](#mass-pm-gp-mm)
> 5.2.3 [`MassRepresentation`](#mass-pm-gp-mr)
> 5.2.4 [`MassSpawner`](#mass-pm-gp-ms)
> 5.2.5 [`MassActors`](#mass-pm-gp-ma)
> 5.2.6 [`MassLOD`](#mass-pm-gp-ml)
> 5.2.7 [`MassReplication`](#mass-pm-gp-mre)
> 5.2.8 [`MassSignals`](#mass-pm-gp-msi)
> 5.2.9 [`MassSmartObjects`](#mass-pm-gp-mso)
> 6.2.1 [`MassCommon`](#mass-pm-gp-mc)
> 6.2.2 [`MassMovement`](#mass-pm-gp-mm)
> 6.2.3 [`MassRepresentation`](#mass-pm-gp-mr)
> 6.2.4 [`MassSpawner`](#mass-pm-gp-ms)
> 6.2.5 [`MassActors`](#mass-pm-gp-ma)
> 6.2.6 [`MassLOD`](#mass-pm-gp-ml)
> 6.2.7 [`MassReplication`](#mass-pm-gp-mre)
> 6.2.8 [`MassSignals`](#mass-pm-gp-msi)
> 6.2.9 [`MassSmartObjects`](#mass-pm-gp-mso)
<!-- FIXME: Since there are some modules more interesting than others we will format them in a subsection manner, so we can extend the interesting one easier. -->
<a name="mass-pm-gp-mc"></a>
#### 5.2.1 `MassCommon`
#### 6.2.1 `MassCommon`
Basic fragments like `FTransformFragment`.

<a name="mass-pm-gp-mm"></a>
#### 5.2.2 `MassMovement`
#### 6.2.2 `MassMovement`
Features an important `UMassApplyMovementProcessor` processor that moves entities based on their velocity and force. Also includes a very basic sample.

<a name="mass-pm-gp-mr"></a>
#### 5.2.3 `MassRepresentation`
#### 6.2.3 `MassRepresentation`
Processors and fragments for rendering entities in the world. They generally use an ISMC to do so.

<a name="mass-pm-gp-ms"></a>
#### 5.2.4 `MassSpawner`
#### 6.2.4 `MassSpawner`
A highly configurable actor type that can spawn specific entities where you want.

<a name="mass-pm-gp-ma"></a>
#### 5.2.5 `MassActors`
#### 6.2.5 `MassActors`
A bridge between the general UE5 actor framework and Mass. A type of fragment that turns entities into "Agents" that can exchange data in either direction (or both).

<a name="mass-pm-gp-ml"></a>
#### 5.2.6 `MassLOD`
#### 6.2.6 `MassLOD`
LOD Processors that can manage different kinds of levels of detail, from rendering to ticking at different rates based on fragment settings.

<a name="mass-pm-gp-mre"></a>
#### 5.2.7 `MassReplication`
#### 6.2.7 `MassReplication`
Replication support for Mass! Other modules override `UMassReplicatorBase` to replicate stuff. Entities are given a separate Network ID that gets passed over the network, rather than the EntityHandle. An example showing this is planned for much later.

<a name="mass-pm-gp-msi"></a>
#### 5.2.8 `MassSignals`
#### 6.2.8 `MassSignals`
A system that lets entities send named signals to each other.

<a name="mass-pm-gp-mso"></a>
#### 5.2.9 `MassSmartObjects`
#### 6.2.9 `MassSmartObjects`
Lets entities "claim" SmartObjects to interact with them.

<!-- This section explicitly for AI specific modules-->
<a name="mass-pm-ai"></a>
### 5.3 MassAI
### 6.3 MassAI
`MassAI` is a plugin that provides AI features for Mass within a series of modules:

> 5.3.1 [`ZoneGraph`](#mass-pm-ai-zg)
> 5.3.2 [`StateTree`](#mass-pm-ai-st)
> 5.3.3 ...
> 6.3.1 [`ZoneGraph`](#mass-pm-ai-zg)
> 6.3.2 [`StateTree`](#mass-pm-ai-st)
> 6.3.3 ...
This Section, as the rest of the document is still work in progress.

Expand All @@ -831,11 +832,41 @@ This Section, as the rest of the document is still work in progress.
<!-- FIXMEFUNK: I think we should cover a brief overview at the minimum. most of Mass is attached to the AI stuff so we kind of have to at least mention all of it. The Zonegraph cones are a good short example. We should suggest to check out the CitySample at least. -->

<a name="mass-pm-ai-zg"></a>
#### 5.3.1 `ZoneGraph`
#### 6.3.1 `ZoneGraph`
<!-- FIXME: Add screenshots and examples. -->
In-level splines and shapes that use config defined lanes to direct zonegraph pathing things around! Think sidewalks, roads etc.

<a name="mass-pm-ai-st"></a>
#### 5.3.2 `StateTree`
#### 6.3.2 `StateTree`
<!-- FIXME: Add screenshots and examples. -->
A new lightweight AI statemachine that can work in conjunction with Mass Crowds. One of them is used to give movement targets to the cones in the parade in the sample.




<a name="mass-or"></a>
## 7. Other Resources

### 7.1 Unreal specific


#### Official
##### Documentation
- [MassEntity](https://docs.unrealengine.com/5.0/en-US/overview-of-mass-entity-in-unreal-engine/)
- [Mass Avoidance](https://docs.unrealengine.com/5.0/en-US/mass-avoidance-in-unreal-engine/)
- [Smart Objects](https://docs.unrealengine.com/5.0/en-US/smart-objects-in-unreal-engine/)
- [StateTree](https://docs.unrealengine.com/5.0/en-US/overview-of-state-tree-in-unreal-engine//)
##### Videos
- [State of Unreal : Large Numbers of Entities with Mass](https://youtu.be/f9q8A-9DvPo)

<!--Huge credit to this blog for teaching me how to use spawners!-->
#### quabqi's Mass blogs
- [ECS of UE5: MASS framework (1)](https://zhuanlan.zhihu.com/p/441773595)
- [ECS of UE5: MASS framework (2)](https://zhuanlan.zhihu.com/p/446937133)
- [ECS of UE5: MASS framework (3)](https://zhuanlan.zhihu.com/p/477803528)
- [MassAI crowd drawing of UE5 CitySample](https://zhuanlan.zhihu.com/p/496165391)

### 7.2 Entity xomponenent systems

- [Sander's Entity Component System FAQ](https://github.com/SanderMertens/ecs-faq)

0 comments on commit cc148b1

Please sign in to comment.