Skip to content
Homesliced Software
Available nowFighting games · Rollback netcode

Project FGE

A modular fighting-game engine with rollback netcode, for Unity 6.

Unity
6000.0.85f1+
Version
1.0.0
Price
From $30 · Ultimate $149
License
Asset Store EULA

Technical details

Specifications

Performance figures were measured on a mid-range laptop CPU and are quoted as measured. Where something is untested, we say so.

Compatibility

Unity6000.0.85f1 (6.0 LTS) or later. Tested on 6000.0.85f1 and 6000.6.4f1. Unity 2022.3 isn't supported.
Render pipelinesBuilt-in verified in clean imports. All UI is UI Toolkit. URP isn't verified yet for Fighter Core's three unlit shaders. HDRP is not supported.
PlatformsTested on Windows x64 in the editor, Mono and IL2CPP players. Other platforms are untested. WebGL can't open UDP sockets.
Play modeWorks with Enter Play Mode Options and Domain Reload off. No mutable statics.

Determinism

Tick rateFixed 60 Hz
MathInteger only. Positions in subpixels (65,536 per metre), authored in millimetres and frames.
EnforcementAn IL lint fails the build on float or double opcodes, System.Random, DateTime, Stopwatch or Dictionary enumeration.
Cross-runtime checkThe same reference match ends on the same checksum under IL2CPP, Mono and .NET 10.

Netcode

Players1 to 4 in a rollback session. Online matches are 2 machines.
DefaultsInput delay 2 frames (0 to 30), rollback limit 10 frames (1 to 60), checksums every 30 frames.
TransportUDP over IPv4, 1024-byte datagrams, about 2 KB/s per match. Direct or relay.
Not includedEncryption, IPv6, NAT traversal beyond the relay, spectators, late join and reconnect. No hosted relay service.

Performance

Fighter rollback8-frame rollback median: 8.9 µs IL2CPP, 23.2 µs Mono, 5.6 µs .NET 10
Match state1,558 bytes, 0 bytes allocated to save or restore
Motion Input reader1.2 to 2.2 µs per player-frame (editor, Mono)
Online tick1.7 to 2.2 µs, about 27 to 33 bytes per message
Test machineIntel i5-12450H laptop

Code

SourceFull C# source. Namespaces under HsSoftware.ProjectFGE.
Assemblies26 assembly definitions. The cores have no UnityEngine reference (.NET Standard 2.1, C# 9).
DependenciesInput System (Motion Input's integration layer only) and the UI Elements module. No third-party code, JSON libraries or plugins.
TestsMotion Input 179, Rollback Netcode 125, Fighter Core 342
LicenseStandard Unity Asset Store EULA

Before you buy

FAQ

Can I buy just the netcode?+

Yes. Rollback Netcode works with any deterministic game, not just fighters, and includes online play over UDP. It doesn't need Fighter Core.

Does it include characters, art or animation?+

No. Fighter Core ships two demo fighters as data, plus simple mannequin views and a HUD. These are a starting point for prototypes and tools, not final art. Bring your own models and animation.

Do you host a relay server?+

No. Matches connect directly, or through the included relay server, which you run on your own machine or server. It's a single Python 3.8+ file that uses only the standard library.

Is it 2D or 3D?+

The simulation is 2D with two fighters, like most traditional fighting games. How you render it is up to you. The samples use 3D mannequins on a 2D plane.

Which platforms are supported?+

Everything is tested on Windows x64, in the editor and in Mono and IL2CPP players. The cores are plain C#, but we only claim platforms we've tested.

Is there a bundle?+

Yes. Project FGE Ultimate has all three modules in one purchase, for less than buying them separately, and Ultimate owners get Training Lab free when it ships. Package names, GUIDs and versions are the same as the separate listings, so owning a module and Ultimate never duplicates files.

How was Project FGE made?+

The code, documentation and sample setup were written by HS Software with Claude, an AI coding assistant made by Anthropic, under HS Software's direction. The packages contain no images, audio, video, fonts or 3D models from AI generators or anyone else, and no third-party code.