Moonforge.Core
1.0.2
See the version list below for details.
dotnet add package Moonforge.Core --version 1.0.2
NuGet\Install-Package Moonforge.Core -Version 1.0.2
<PackageReference Include="Moonforge.Core" Version="1.0.2" />
<PackageVersion Include="Moonforge.Core" Version="1.0.2" />
<PackageReference Include="Moonforge.Core" />
paket add Moonforge.Core --version 1.0.2
#r "nuget: Moonforge.Core, 1.0.2"
#:package Moonforge.Core@1.0.2
#addin nuget:?package=Moonforge.Core&version=1.0.2
#tool nuget:?package=Moonforge.Core&version=1.0.2
Moonforge.Core
A deterministic, modular RPG engine for C# projects: combat (with status effects, damage types, a Pokemon-style type effectiveness chart, mid-battle swap, capture, and per-move PP), stats, inventory, dialogue, quests, exploration, loot, encounters, interactables, party rosters, evolution, bestiary, persistence — built around a command/query/reactor pipeline with atomic state mutation.
Target framework: netstandard2.1 (Unity-friendly).
Install
dotnet add package Moonforge.Core
Hello world
using Moonforge.Core;
using Moonforge.Core.Runtime.Commands;
using Moonforge.Core.Runtime.Events;
using Moonforge.Core.Runtime.Formulas;
using Moonforge.Core.Runtime.Random;
using Moonforge.Core.Runtime.Time;
using Moonforge.Core.Economy.Commands;
using Moonforge.Core.Economy.Queries;
GameState gameState = new();
InMemoryDomainEventSink sink = new();
CommandContext context = new(
new Pcg32RandomSource(seed: 1234),
new SimulationClock(0),
new NoOpFormulaEvaluator(),
sink);
CommandDispatcher dispatcher = DefaultCommandDispatcher.Create();
dispatcher.Dispatch(gameState, new GrantCurrencyCommand("gold", 100), context);
long gold = new GetCurrencyBalanceQueryHandler()
.Query(gameState, new GetCurrencyBalanceQuery("gold"));
System.Console.WriteLine($"Gold: {gold}"); // Gold: 100
Why Moonforge
- Deterministic — seeded
IRandomSourceand explicitIGameClock; same inputs always produce the same outputs. Critical for save-resilience, replay, lockstep multiplayer. - Atomic — every command runs inside a snapshot-rollback transaction; failures revert state and discard buffered events.
- Composable — modules integrate via
IDomainEventReactor, never direct calls. - Pluggable — bring your own formula evaluator, custom commands, custom reactors.
Documentation
Full guides, architecture deep-dive, cookbook, and examples are in the repository.
License
MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.