About the project
«Empire's Battle Combat Arena» is a turn-based tactical 2D game on a grid with PvE modes (single battles, bosses, endless dungeon) and PvP (player vs. player battles). The project is built for WebGL and integrated as a Telegram Mini App: the Unity client runs within a React wrapper and communicates with it via a JavaScript bridge (Application.ExternalEval, custom SocketUtility).
Candidate Requirements
Level and Experience
Target level — Middle+ / Senior Unity Developer. Minimum 3 years of commercial experience in Unity, with at least 1 year on a single production project with a medium or large codebase (30k+ C# lines).
- Experience building and optimizing projects for WebGL (build size, Addressables warm-up, memory limitations,
[DllImport("__Internal")], Application.ExternalEval) — critical.
- Experience with network multiplayer with deterministic logic (turn synchronization, lockstep / mirror-action, fixed-point or deterministic random).
- Experience with Telegram Mini Apps / WebApp SDK or similar integration of a Unity client into a web wrapper — a significant advantage.
Mandatory Technical Skills
- C# at an above-average level: delegates and events, generics, LINQ, async/await, understanding of GC and allocations in the Unity context.
- Unity API: Addressables, Coroutines, UniTask, ScriptableObject as content configs, MonoBehaviour lifecycle, Animator, Particle System, 2D Sprite Renderer.
- Architectural Patterns: State Machine (the project has two nested state hierarchies — understanding is mandatory), Observer/Event-driven, Service Locator or DI, MVC/MVP for UI, factories.
- Network Programming: REST clients (Best HTTP or UnityWebRequest), Newtonsoft.Json serialization, error handling and reconnections, understanding of JWT/Bearer tokens.
- Debugging and Profiling: Unity Profiler, Memory Profiler, Frame Debugger, debugging WebGL builds in the browser (Chrome DevTools, .symbols).
- Git and teamwork in GitLab: branches, MR/Code Review, understanding merge conflicts, writing adequate commit messages.
Desirable
- Experience with Odin Inspector — almost the entire project uses
[FoldoutGroup], [BoxGroup], [ShowIf], etc.
- Experience in decomposing and refactoring large monolithic classes (God Objects) into services, controllers, and states — the project has several such classes.
- Understanding of cryptography basics and anti-cheat mechanics: HMAC, nonce, deterministic RNG, protection against client modification.
- Experience with turn-based tactical games (XCOM-like, Heroes-like, chess engines) — will be a huge plus for understanding gameplay logic.
- Basic knowledge of JavaScript/TypeScript — for debugging the React ↔ Unity bridge.
- Experience integrating IAP, advertising (Unity Ads / AppLovin / IronSource), analytics.
Soft Skills
- Ability to read and understand other people's code in a large codebase (individual files of 1500–2000 lines).
- Independence in tasks, ability to ask the right questions — the project has monolithic parts without detailed documentation.
- Accuracy when working with PvP logic: any client/server desynchronization breaks the match.
- Readiness for code review (giving and receiving) and working in Git Flow with mandatory MRs.
Role Responsibilities
- Development of game mechanics: new heroes, skills (active and passive), bosses, dungeon types, seasonal events — adding to the existing
SkillRegistry and effects system.
- Working with PvP states (
PvpPlayerTurnState, PvpOpponentTurnState): turn synchronization via mirror-action, handling reconnections, expanding anti-cheat mechanics (P2PSecurityManager, P2PConsensusManager).
- Integration with backend and Telegram recruiter contact: working with
TelegramAuthorizatrecruiter contact, TelegramProrecruiter contact, new Game API, handling battle lifecycle events.
- WebGL build optimization: size, loading time, memory consumption, GC profiling, correct Addressables operation in the browser.
- Refactoring and technical debt reduction: decomposing classes like
Hero.cs (~2000 lines) and battle states (~1500–2000 lines) into more focused components, extracting services.
- UI features: improving the combat HUD, hero selection screens, potion and relic inventory, interface localization.
- Build pipeline and CI support: building via GitLab CI, auto-deploying WebGL builds to the Telegram recruiter contact.
- Code review of colleagues' MRs, maintaining project style and architectural conventions.
Selection Process
- Resume screening — relevant experience in Unity + WebGL + network code.
- Technical interview (60–90 min): C#, Unity architecture, state machines, discussion of a real-world case with PvP synchronization.
- Test task (by agreement): a small feature on a grid with two turn states or a review of a provided code snippet with refactoring suggestions.
APPLY
Danil Krasilnikov