Last week at Rogers Digital Media (RDM) we held our first hackathon. This included both the web and mobile teams, was 24 hours long and the projects had to be related to Rogers somehow.
What is a Hackathon?
A hackathon is a contest between computer programmers and usually lasts about 24 or 48 hours. The task is to build a piece of software in that time and present it to a panel of judges where they will select a winner for the most innovative idea and execution. A programmer can enter as an individual or a team. The word “hackathon” is a portmanteau of the words “hack” and “marathon”, where “hack” is used in the sense of playful, exploratory programming, not its alternate meaning as a reference to computer crime.
Inspiration = Mattel Classic Baseball
Classic Baseball (see image to the below) is designed to provide either one or two players with the thrills and suspense of real baseball. Players complete against the computer and each other, trying to score as many runs as possible during the 5-inning game. Number of balls, outs, bases, etc….is the same as in real baseball. You can get any kind of hit, even a walk on balls called. You’ll need a good “batter’s eye” to handle the tricky pitching, and you’ll also need to keep on top of game conditions (number of outs, men on base, etc.) in order to make the most of your opportunities.
My Project – LED Baseball
For the last couple of months I wanted to create a series of LED games similar to LED Football released by touchGrove. As a kid I played Mattel Classic Baseball a lot, it was probably one of the first “video games” I ever played. I thought it would make a great game on iOS. It’s a fairly simple game to program so I thought I could complete it in the contest window of 24 hours. Since Rogers owns the Blue Jays and SportsNet, I think this would loosely qualify as a project that is related to the business.
The first few hours included getting the design completed. I found some great graphics for the field and the players off of stock photo sites and made the raised buttons myself from a Photoshop tutorial. Hoping that this would be a great universal app available for both iPad and iPhone I started with the bigger resolution of the iPad for the design and supported the retina display. When the design gets finalized I could re-size it for the iPhone. After the design was locked down I cut all the images and brought them into Xcode. Getting the design in did not take long and it was really nice to start a project with final designs so I could be implementing it faster with the real assets. Next the hardest part which was coding all of the game logic. There was so many baseball rules to follow so it could supports walks, home runs and tracking players on base. The funnest part of the coding was getting the pitches just right for the changeup, fastball and curve. Building software this fast did fit very well into the Agile software development methodology we use everyday at Rogers. I was making design decisions, coding and testing all at the same time. The more baseball logic I implemented the more bugs started to appear so I had to constantly regression test the game to ensure no crashes or errors.
One of the variations I made away from Mattel Classic Baseball was the Player 1 gameplay. If you were playing a 1 player game in their version you would have to play both teams, I really hated this when I used to play it because I never really had a team to was going for since I was controlling both. In my new version I only allow player 1 to be the Blue Jays then I simulate the “Red Teams” turn so the user is only playing as one team. I think it’s a lot more enjoyable.
Once the coding was completed it was time for the polish. I added some very retro sound effects, “Play Ball”, series of beeps for batting and outs and of course the home-run / score sounds for when you reach home plate for a run. Integrated Game Center for both Leaderboards & Achievements. It’ll be nice to see who the “Home Run King” is and who gets the most “Wins”. Finally I created an Enterprise build of the game, put it on our internal network and added the link to my presentation so that everyone could download it and play it as soon as I finished showing it off.
We had about 10-15 teams participate and all of them were really innovative and smart ideas. My LED Baseball was shortlisted to the final four. These four were voted on by everyone in the room (ranked by applause) and I am very proud to say that LED Baseball was awarded the winner of the 1st Rogers Digital Media Hackathon! I really enjoyed spending 24 hours on a project and working as fast as I could to get as many features into it within the time frame. I really hope to join another hackathon sometime soon, even if it’s just me building a new app in 24 hours.