I-Med, the publisher of Spele.nl reaching out to more than 500K unique people every day proposed to build a self-serving advertiser platform. This started a 4 month project to build Keygamesnetwork.com
Keygamesnetwork intermediates between gamedevelopers, publishers and advertisers. It enables gamedevelopers to speedup the game-development process, publishers to find interesting content for their domains. A great platform to advertise emerges through all the games published through the publishers domain.
I will describe below the different roles I performed in helping realising this platform.
Setting up the structural design, architecting the key-components, and selection of various open-source components to form the basis of implementation:
- Rail-metal using Sinatra
Capistrano 0 downtime deployment
Using capistrano to setup a 3 server production environment and a 1 server staging environment. Running Unicorn, nginx and varnish. Unicorn configured in such a way server restarts can be done without any downtime. Even taking into account database migrations. Since certain development machines should be able to deploy from outside the firewall, a secure access was setup. Capistrano was customized for this process.
Adobe Flash wrapper
Flex pipeline enabling gamedevelopers to secure and enhance their games. In the technical specification I defined a secure method of communicating with the keygamesnetwork backend. Described different UI enhancing components, such as login/highscore widgets and described a distributed loading of different reusable/themable components on demand (speedup loadtimes, and live updates). The implementation process was started in parallel with a hand picked Flash development team.
Generic adaptable statistics modules
Setup of generic components to enable tracking, maintenance and aggregation of database logfiles. The analytics is presented in a professional way to each of keygamesnetwork's end-users. The games and ad-components log a lot information, in many games, with many players. These generic components handle the aggregation and maintenance of these database driven logfiles gracefully.
Rails configuration and setup
Coding the controllers and views of the rails application. Using Haml / Sasl / jQuery / CoffeeScript and ofcourse pure clean ruby code. Adapted Haml core to enable custom tags. Since all was well-thought out before, we ended up with a clean model. All recurring patterns nicely included.
BDD / TDD
A combination of BDD and TDD is being used to test the keygamesnetwork.
DRY to the bone
All mundanities/complexities and repetition was scripted away.
Thinking through the specifications and coming to a detailed technical specification. Selecting appropiate freelancers to form a team. And after delivery, transfer knowledge to an offshore maintenance team.
After 6 months of hard work the system was ready and performed excellent under medium to high load. Apdex score of 1 using New Relic for tracking.