Meatcorps.Engine.Arcade
0.1.17-preview.19
See the version list below for details.
dotnet add package Meatcorps.Engine.Arcade --version 0.1.17-preview.19
NuGet\Install-Package Meatcorps.Engine.Arcade -Version 0.1.17-preview.19
<PackageReference Include="Meatcorps.Engine.Arcade" Version="0.1.17-preview.19" />
<PackageVersion Include="Meatcorps.Engine.Arcade" Version="0.1.17-preview.19" />
<PackageReference Include="Meatcorps.Engine.Arcade" />
paket add Meatcorps.Engine.Arcade --version 0.1.17-preview.19
#r "nuget: Meatcorps.Engine.Arcade, 0.1.17-preview.19"
#:package Meatcorps.Engine.Arcade@0.1.17-preview.19
#addin nuget:?package=Meatcorps.Engine.Arcade&version=0.1.17-preview.19&prerelease
#tool nuget:?package=Meatcorps.Engine.Arcade&version=0.1.17-preview.19&prerelease
Meatcorps.Engine.Arcade
Multiplayer session and point management for arcade cabinet games. Handles player check-in/out, point deduction and submission, and game state broadcasting via MQTT to a central arcade server.
Concepts
| Type | Description |
|---|---|
ArcadeGame |
Metadata for your game (code, name, price, max players) |
ArcadeGameSystem |
Live session manager — tracks checked-in players, manages points over MQTT |
FallbackArcadeSystem |
Local dev replacement — simulates players without a real arcade server |
IArcadePointsMutator |
Interface for reading and mutating player points |
IPlayerCheckin |
Interface for querying player session state |
Setup
Requires Meatcorps.Engine.MQTT to be loaded first. Define your game metadata and load the module:
var mqttModule = MQTTModule.Load();
var game = new ArcadeGame
{
Code = 1,
Name = "My Game",
Description = "A short description",
PricePoints = 100,
MaxPlayers = 2,
};
GlobalObjectManager.ObjectManager.Register(game);
ArcadeGameSystemModule.Load(game, mqttModule);
ArcadeGameSystemModule.Load registers IArcadePointsMutator, IPlayerCheckin, and the
ArcadeGameSystem background service into the global ObjectManager.
Resolving in a scene
var points = SceneObjectManager.Get<IArcadePointsMutator>()!;
var checkin = SceneObjectManager.Get<IPlayerCheckin>()!;
Working with points
// Deduct the game's entry price from player 1 (returns false if insufficient points)
if (points.RequestPoints(player: 1))
{
// player paid — start the round
}
// Deduct a custom amount
if (points.RequestPoints(player: 1, points: 50))
{
// deducted 50 points
}
// Award points to player 1
points.SubmitPoints(player: 1, points: 200);
// Read current balance
int balance = points.GetPoints(player: 1);
Checking player session state
if (checkin.IsPlayerCheckedIn(player: 1, out string name))
{
Console.WriteLine($"Player 1 is {name}");
}
string displayName = checkin.GetPlayerName(player: 1);
Local development (no arcade server)
Use FallbackArcadeSystem instead of ArcadeGameSystemModule during local development.
It simulates players with a configurable starting balance, no MQTT required:
GlobalObjectManager.ObjectManager.Register(game);
var fallback = new FallbackArcadeSystem(maxPlayers: 2, startingPoints: 3000);
GlobalObjectManager.ObjectManager.Register<IArcadePointsMutator>(fallback);
GlobalObjectManager.ObjectManager.Register<IPlayerCheckin>(fallback);
GlobalObjectManager.ObjectManager.Add<IBackgroundService>(fallback);
Notes
- Player indices are 1-based (
player: 1,player: 2, etc.). ArcadeGameSystemautomatically kicks excess players ifMaxPlayersis exceeded on check-in.- The server URL defaults to
http://localhost:8080/and can be overridden via config keyArcadeGame > ServerUrl.
License
MIT License
See LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Meatcorps.Engine.Core (>= 0.1.17-preview.19)
- Meatcorps.Engine.MQTT (>= 0.1.17-preview.19)
- QRCoder (>= 1.6.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Meatcorps.Engine.Arcade:
| Package | Downloads |
|---|---|
|
Meatcorps.Engine.Arcade.RayLib
Meatcorps.Engine is a lightweight, code-first game framework built on top of Raylib. This is the Arcade RayLib extension package |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.17-preview.22 | 0 | 3/9/2026 |
| 0.1.17-preview.21 | 0 | 3/9/2026 |
| 0.1.17-preview.20 | 30 | 3/5/2026 |
| 0.1.17-preview.19 | 37 | 2/25/2026 |
| 0.1.17-preview.18 | 41 | 2/25/2026 |
| 0.1.17-preview.17 | 42 | 2/24/2026 |
| 0.1.16 | 108 | 2/20/2026 |
| 0.1.15 | 106 | 2/14/2026 |
| 0.1.14 | 105 | 2/14/2026 |
| 0.1.13 | 104 | 2/14/2026 |
| 0.1.11 | 107 | 2/14/2026 |
| 0.1.10 | 102 | 2/14/2026 |
| 0.1.9 | 116 | 1/12/2026 |
| 0.1.8 | 111 | 1/11/2026 |
| 0.1.7 | 112 | 1/10/2026 |
| 0.1.6 | 111 | 1/10/2026 |
| 0.1.5 | 114 | 1/10/2026 |
| 0.1.4 | 131 | 1/4/2026 |
| 0.1.0 | 125 | 1/4/2026 |