|
4 | 4 |
|
5 | 5 | *Enables the Mission Pinball Framework to drive VPE*
|
6 | 6 |
|
7 |
| -## Structure |
| 7 | +## Overview |
8 | 8 |
|
9 |
| -This project contains three folders: |
| 9 | +[MPF](https://missionpinball.org/latest/about/) is an open-source framework |
| 10 | +written in Python to drive real pinball machines. It has a "configuration over |
| 11 | +code" approach, meaning that 90% of what you'd do in a pinball game can be |
| 12 | +achieved through configuration (YAML files) rather than implementing it in code. |
10 | 13 |
|
11 |
| -- `VisualPinball.Engine.Mpf` is a library which builds the gRPC protos and |
12 |
| - wraps them into a nicer interface. |
13 |
| -- `VisualPinball.Engine.Mpf.Test` is a command line tool that allows quick |
14 |
| - testing without running Unity |
15 |
| -- `VisualPinball.Engine.Mpf.Unity` is the Unity UPM package that plugs into |
16 |
| - VPE and implements the gamelogic engine. |
17 |
| - |
| 14 | +When you read MPF's [Getting Started](https://missionpinball.org/latest/start/) |
| 15 | +page, you'll notice a banner stating that "MPF is not a simulator." Well, |
| 16 | +you've found the simulator. ;) |
18 | 17 |
|
19 |
| -Currently, only the first two projects are contained in the provided VS |
20 |
| -solution. In the future we might add the Unity project with its dependencies, |
21 |
| -but for now you'll need to open it through Unity. |
| 18 | +This project lets you use MPF to drive game logic in [VPE](https://github.com/freezy/VisualPinball.Engine), |
| 19 | +a pinball simulator based on Unity. It does this by spawning a Python process running |
| 20 | +MPF and communicating with VPE through [gRPC](https://grpc.io/). |
22 | 21 |
|
23 |
| -### Binaries |
| 22 | +### Installation |
24 | 23 |
|
25 |
| -Both gRPC and Protobuf come with dependencies that conflict with Unity's, namely |
26 |
| -`System.Buffers`, `System.Memory` and `System.Runtime.CompilerServices`. To |
27 |
| -solve this, we disable assembly validation for `Google.Protobuf.dll` and `Grpc.Core.dll` |
28 |
| -via the plugin inspector. |
29 |
| - |
30 |
| -### Unity Package |
31 |
| - |
32 |
| -The goal of this repo is to use it within Unity. In order to do that, open the |
33 |
| -Package Manager in Unity, and add `org.visualpinball.engine.missionpinball` under |
34 |
| -*Add package from git URL*. |
| 24 | +This project is available as a Unity package at `registry.visualpinball.org`. |
| 25 | +To install it, make sure the scoped registry is added in your Package Manager |
| 26 | +settings. Then open the Package Manager in Unity and add |
| 27 | +`org.visualpinball.engine.missionpinball` under *Install package by name*. |
35 | 28 |
|
36 | 29 | The Unity package is build and published to our registry on every merge to master.
|
37 | 30 |
|
@@ -59,32 +52,23 @@ actual binaries, `.meta` files of uncompiled platforms are cleaned up by Unity.
|
59 | 52 | In order to not accidentally commit those files, we recommend to ignore them:
|
60 | 53 |
|
61 | 54 | ```bash
|
62 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/linux-x64/VisualPinball.Engine.Mpf.dll.meta |
63 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/linux-x64/Google.Protobuf.dll.meta |
64 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/linux-x64/Grpc.Core.Api.dll.meta |
65 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/linux-x64/Grpc.Core.dll.meta |
66 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/linux-x64/libgrpc_csharp_ext.so.meta |
67 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/osx-x64/VisualPinball.Engine.Mpf.dll.meta |
68 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/osx-x64/Google.Protobuf.dll.meta |
69 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/osx-x64/Grpc.Core.Api.dll.meta |
70 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/osx-x64/Grpc.Core.dll.meta |
71 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/osx-x64/libgrpc_csharp_ext.dylib.meta |
72 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/win-x64/VisualPinball.Engine.Mpf.dll.meta |
73 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/win-x64/Google.Protobuf.dll.meta |
74 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/win-x64/Grpc.Core.Api.dll.meta |
75 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/win-x64/Grpc.Core.dll.meta |
76 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/win-x64/grpc_csharp_ext.dll.meta |
77 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/win-x86/VisualPinball.Engine.Mpf.dll.meta |
78 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/win-x86/Google.Protobuf.dll.meta |
79 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/win-x86/Grpc.Core.Api.dll.meta |
80 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/win-x86/Grpc.Core.dll.meta |
81 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity/Plugins/win-x86/grpc_csharp_ext.dll.meta |
82 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity\Plugins\linux-x64\System.Runtime.CompilerServices.Unsafe.dll.meta |
83 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity\Plugins\osx-x64\System.Runtime.CompilerServices.Unsafe.dll.meta |
84 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity\Plugins\win-x64\System.Runtime.CompilerServices.Unsafe.dll.meta |
85 |
| -git update-index --assume-unchanged VisualPinball.Engine.Mpf.Unity\Plugins\win-x86\System.Runtime.CompilerServices.Unsafe.dll.meta |
| 55 | +git update-index --assume-unchanged Plugins/Google.Protobuf.dll.meta |
| 56 | +git update-index --assume-unchanged Plugins/Grpc.Core.Api.dll.meta |
| 57 | +git update-index --assume-unchanged Plugins/Grpc.Net.Client.dll.meta |
| 58 | +git update-index --assume-unchanged Plugins/Grpc.Net.Common.dll.meta |
| 59 | +git update-index --assume-unchanged Plugins/Microsoft.Extensions.Logging.Abstractions.dll.meta |
| 60 | +git update-index --assume-unchanged Plugins/System.Buffers.dll.meta |
| 61 | +git update-index --assume-unchanged Plugins/System.Diagnostics.DiagnosticSource.dll.meta |
| 62 | +git update-index --assume-unchanged Plugins/System.IO.Pipelines.dll.meta |
| 63 | +git update-index --assume-unchanged Plugins/System.Memory.dll.meta |
| 64 | +git update-index --assume-unchanged Plugins/System.Numerics.Vectors.dll.meta |
| 65 | +git update-index --assume-unchanged Plugins/System.Runtime.CompilerServices.Unsafe.dll.meta |
| 66 | +git update-index --assume-unchanged Plugins/System.Threading.Tasks.Extensions.dll.meta |
| 67 | +git update-index --assume-unchanged Plugins/VisualPinball.Engine.Mpf.deps.json.meta |
| 68 | +git update-index --assume-unchanged Plugins/VisualPinball.Engine.Mpf.dll.meta |
| 69 | +git update-index --assume-unchanged Plugins/VisualPinball.Engine.Mpf.pdb.meta |
86 | 70 | ```
|
87 | 71 |
|
88 | 72 | ## License
|
89 | 73 |
|
90 |
| -[MIT](LICENSE) |
| 74 | +[MIT](LICENSE) |
0 commit comments