2025-11-22 –, Plenary Space
Live service games present unique challenges: real-time multiplayer interactions, constant content updates, complex game state management, and the need for high uptime when players depend on your servers. This talk explores how Python's ecosystem can be leveraged to build robust, scalable game backends that handle these demands.
Through real examples from developing "Demon's Hand," a live multiplayer card game, we'll examine practical solutions for common game development challenges: implementing async-first architectures for handling concurrent player actions, designing flexible data models that evolve with game content, managing real-time state synchronization, and building systems that gracefully handle the unpredictable nature of player behaviour.
You'll learn how modern Python tools like HTTPX, asyncio, pyinstrument, and AWS services combine to create responsive game experiences, and discover why Python's rapid development cycle makes it ideal for the iterative nature of game development.
This presentation draws from real-world experience building and maintaining a live multiplayer card game. We'll dive into:
Technical Deep-Dives:
- Need to go fast! asyncio, orjson, uvloop
- Performance profiling in production with pyinstrument
- WebSocket management for real-time gameplay
- DynamoDB design patterns for game data (eg. realtime scoreboards)
- SQS for event-driven architecture
- Implementing game mechanics like card effects and combat resolution (eg. Python DSLs)
Architecture Decisions:
- Why we chose Python for game server development
- Google Sheets as a flexible game rules engine
- Async-first design patterns for handling concurrent player actions
- Service architecture with interface/implementation separation
- Performance optimization: HTTPX vs boto3 and connection pooling
Willem is a developer who's been happily using Python for 20 years. I love writing code in all types of languages but I just keep on coming back to Python for some reason.