Dofus Touch — Server engineering on the mobile MMORPG
Server developer on Dofus Touch, the mobile version of Ankama's MMORPG. I owned the server-side roadmap: gameplay features, delivery pipeline, bot detection, operations.
- Java
- Maven
- Nexus
- GitLab Flow
- GitLab-CI
- Jenkins
- Groovy
- AWS EC2
- Rundeck
- Ansible
- MySQL
- PostgreSQL
- ELK
- AWS OpenSearch
- Prometheus
- Grafana
concurrent players
47,234
↑ 12% · 1h
deploy
- build
- tests
- canary
- prod
building image…
regions
- EU-W 18.7k
- EU-N 9.4k
- US-E 11.2k
- ASIA 8.1k
› événements pondérés · seuil d'alerte
Context
Dofus Touch is the mobile version of a French MMORPG with a large audience. On the server side, the codebase has history, players are sensitive to the slightest combat lag, and every botched deployment is paid in support tickets and Reddit posts.
Two problems coexisted permanently: maintaining a flow of gameplay features without breaking the rest, and holding the quality bar against bots — those automated accounts that farm, degrade the in-game economy, and ruin PvP balance.
My role
I owned the server scope: shipped key features in Java, reworked the dev flow and pipelines, and built the server-side bot detection service.
What I built
- Daily Quests in Java — a gameplay feature that contributed to a measurable retention lift
- Dev flow rework to GitLab Flow, designed to absorb urgent hotfixes without breaking branches in flight
- Clean dependency management with Maven + a Nexus repository
- Bot detection service in Java through server-side weight accumulation: each player action (clicks, movements, inventory patterns, combat sequences) feeds weighted counters. When the score crosses the threshold, the account is flagged. The result: fewer non-human accounts in the game
- CI/CD pipelines with GitLab-CI + Jenkins, migrating deployment scripts from Bash to Groovy for testable code
- AWS EC2 deployments with an image-based strategy: push pre-prod → manual approval → replicate to prod
- Automated maintenance with Rundeck + Ansible: RAM flush to persistent storage, upgrades, scripted recurring operations
- Versioned DB migrations on MySQL and PostgreSQL
- Centralised ELK on AWS OpenSearch + APM for a unified view of logs and traces
- Critical alerts (CPU, RAM, business indicators) and Prometheus + Grafana metrics
The hard parts: evolving a bot detection service without penalising real players (false positives = immediate internal lawsuit), and industrialising a release flow that survives hotfixes during a peak-traffic weekend.
Results
Effective reduction of non-human accounts thanks to the detection service. A release pipeline that supports hotfixes without manual ritual. Unified observability that lets you diagnose in minutes instead of hours.