|
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