You know, I’m a big fan of Farmville. It pushed me to organize my days, using the rhythms of harvests. It’s a control of my daily agenda: if I seed in my farm, then I reserved the time to harvest. And it’s a game you can play alone, without bothering other players.
But I digress, the topic is game programming, not Farmville ;-): the problems and challenges of programming social games. Curiously, the most successful games in industry are online games and not the most sophisticated ones: instead of 3D real time games, Farmville is a one-player, with a simple 2D rendering. The social game challenges are not in graphics and user experiences.
In this series, I want to enumerate the patterns and solutions we can use in social/online games. I’m not an expert in the topic: game development is not in my expertise (yet ;-). But for me, it’s a way to gain understanding of the problems and possible ways to solve them in such kind of development. It pushes me to learn new technologies, libraries, tools, and concepts.
Some subtopics I’m going to visit (commenting links, examples, maybe some simple code):
- Client technologies
- Server technologies
- Communication, messaging
- Cloud Computing (to assure scalability, performance, availability)
- Architectural styles and patterns to use (my preferred subtopic)
- Kind of games: single player, turn-based, real time
- Testing (TDD, other kind of tests)
It could be a long journey, but this is the first step ;-)