Server-side Output Use Cases
Wiener isn't just for Unity/UE5 — it also handles server-side Static Game Data management. Generate Unity/UE5 binary, UE5 C++, server JSON, PHP, and SQL simultaneously from a single Excel file, ensuring client and server always share identical data.
1. JSON Output — REST API / BFF
Use case: Game API server distributes Static Game Data as JSON
[
{
"id": 1,
"name": "Heart Potion",
"type": "Consume",
"heal_point": 100,
"price": 50
}
]
Settings (YAML):
output_format:
- format: Json
Example: BFF architecture where the frontend fetches Static Game Data from an API. Serve the same data from Unity's StreamingAssets and via API.
2. PHP Output — PHP Server
Use case: PHP game API server needs to reference Static Game Data
<?php
class ItemMaster {
const DATA = [
['id' => 1, 'name' => 'Heart Potion', 'type' => 'Consume', 'heal_point' => 100, 'price' => 50],
['id' => 2, 'name' => 'Magic Shield', 'type' => 'Equipment', 'heal_point' => 0, 'price' => 200],
];
}
Settings:
output_format:
- format: PHP
Example: PHP server game logic references item effects and prices. Useful when you want to keep everything in files without a database.
3. SQL Output — DB Seed Data
Use case: Load Static Game Data into an RDB for server-side access
SQL output produces a CSV containing only the fields selected by YAML, ready for DB import. Load it directly with LOAD DATA INFILE or your database's import tooling.
id,name,type,heal_point,price
1,Heart Potion,Consume,100,50
2,Magic Shield,Equipment,0,200
Settings:
output_format:
- format: SQL
Example: Applying delta data to a DB during version updates. Automating Static Game Data seed injection.
Achieving Client-Server Sync
Excel (single file)
|
+-- Binary (.bytes) → Embed in Unity and UE5
+-- C# classes (.cs) → Type-safe access in Unity
+-- C++ header / source (.h/.cpp)→ Embed in UE5
+-- JSON (.json) → Serve from API server
+-- PHP (.php) → Reference from PHP server
+-- SQL (.csv) → Load into DB
Benefits:
- Client and server data always match (generated from the same source)
- One conversion command reflects updates across all platforms
- Validation runs once and checks all output formats together