SIEGE: World War II
Mobile real-time strategy
Description
SIEGE: World War II was the second title built upon our SIEGEngine tech platform. This proved the "reskinable" nature of this tech, and how flexible it was in terms of game mechanics. Mobile-first.
At it's heart, SIEGEngine presents a card-based real-time PvP battler (later extended to PPvPP). It featured many unique features:
Deterministic Simulation (hack proof)
Real time play in any reasonable latency environment
Extreme extensibility to add new units and game play
Custom back-end that provided full transactional history of every meta action and battle
Battle recording and replay system for both player-visible replays and debugging/verification
AI Bots that played the game with the same facility as a player (i.e. running the simulation and comms with the server)
Robust ELO matchmaking system
Custom Domain Specific Language (i.e. scripting language) for down-time-less, sophisticated offers (monetization)
And much more!
My Contribution
Developed on Unity.
As with virtually every project, I was the lead designer and developer having a hand in every aspect of the code and focusing on key aspects. These include:
Deterministic Simulations Engine
At its core, SIEGEngine uses a robust deterministic simulation. This allows for network communications to be vanishingly small despite the intense number of units and action going on in the game. Determinism required developing custom math library and building custom multi-agent collision avoidance that was performance on mobile.
All of this code was platform-agnostic C# so that it the same simulation could run on the client (in Unity) or external to that. This allowed the simulation to be used for server-side analysis of games (to check which of two players were trying to cheat if there was a discrepancy) and for bots which ran the exact same game mechanics in their own processes.
Full Stack
We developed every piece of the technology, from the client (using Unity) to the server. Our servers managed the entire meta of the game ran in the Azure cloud. These were developed in C# to maintain consistency and easy compatibility with client code.
Data Rich
The SIEGEngine exposed massive amounts of data for both technical and liveops purposes. Every single action a player or the game took on the engine was recorded and could be searched and aggregated. In fact the entire state of the player database could, in theory, be reconstructed by just replaying all of the events. Most useful was the fact any changes to the game state (i.e. each player's state) include a before and after image, which allowed for tracking down any problems or bugs in a way that was extremely powerful.
Domain Specific Offer Language
I crafted a custom scripting language tuned specifically to the task of presenting the player with highly context-specific offers. This system was real-time and allowed for the LiveOps teams to experiment deeply with targeting and modification of virtually any aspect of the game as part of the monetization strategies, including live and dynamic A-B testing with results.