WHAT IS SUPER SECRET SERVICE?
Super Secret Service is a classic action, arcade title where players control secret service agents and protect “The President” by diving through the air and sacrificing their bodies to block projectiles hurled at the stage. The game is played in a vertical orientation and players control the agents, who stand on opposite sides of a podium where The President is giving a speech, by tapping anywhere on the screen on their corresponding half; if one agent mistimes their jump, their colleague is ready to jump in and fix the error.
The game is a perfect action title to play on the go; games are quick, intense, and very fun. The game is playable across both phones and tablets and is available November 4th multiple app stores.
The game is a “premium” game, costing $1.99 when not on sale, and ad-free. I personally prefer an experience which isn’t trying to shove ads in your face all the time, and instead is just nothing more than a fun game. A lot of heart and care went into the game, and I was lucky to get to partner with some talented individuals on the project. And best of all, it’s fun to play. I have put the game into a number of people’s hands and I always have to ask for my phone back, usually twice.
For more on the development of the game, please read on…
A Message from The President
Congratulations, and welcome to your first day on the job. By now you probably already know how important the task at hand is: you’ve gotta save me, The President!
After your years of rigorous training you’re surely a finely tuned jumping machine, ready to dive in front of any and all projectiles which might be flung my way. I’m sure you’ve seen it in the movies one thousand times: a secret service agent dives and blocks a bullet with their body at exactly the right moment. Well this isn’t the movies kid, but that’s EXACTLY how it works.
But these gutter punks aren’t your run of the mill troublemakers. My intel says they’ve got all manner of creative weaponry at their disposal, so you better be ready for anything, because my intel is never wrong. I can’t promise you will make it out alive, but know that you, and all the agents who risk your lives, are doing the most important work imaginable: saving me.
I’m counting on you!
HOW IT ALL BEGAN
The origins of SSS began in April of 2014 as I began to embark on making a “game a week.” Rami Ismail of Vlambeer had recently written about the topic so it was fresh in my mind. I too am a proponent of it creating a breadth of work because only through practice can you become better at anything, and that can be hard for a lot of creative people who have a fear of failure (which I am prone to), and I have been recommending everyone read Art and Fear which is the most uplifting thing you can read to help you get out of your creative funk. In the book (amongst other amazing insights, for crying out loud read it!) they highlight a common allegory of the Pottery Class (as even Rami tried to remember in his talk). Here is a version of it:
The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality.
His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the “quantity” group: fifty pound of pots rated an “A”, forty pounds a “B”, and so on. Those being graded on “quality”, however, needed to produce only one pot”albeit a perfect one”to get an “A”.
Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the “quantity” group was busily churning out piles of work”and learning from their mistakes”the “quality” group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.
So I pressed on, and around the time of my third week in (and third game in) I was watching an episode of Brooklyn Nine-Nine. In this particular episode a cop dives between a shooter and a target, and perfectly times the jump to take the bullet instead of the target. But in doing so also leaves the target standing wide open to another shot, but the shooter gets arrested after only firing one bullet. How many times has this been done in movies and shows? What is the likelihood that diving in front of a bullet is going to stop it? Why the hell are they only firing one bullet? Why aren’t you tackling the person you are protecting? The whole thing is utterly stupid to me.
Of course once establishing how stupid it was, naturally I needed to try and make a game out of it. I ran a few ideas through my head, tried to think of ways it could be a full on platformer or action-PC title (maybe having an agent going back and forth diving to block objects), but ultimately I wanted to challenge myself to make it fun and playable on touch screen devices. I thought up a configuration of a bullet traveling down a long hallway, and it just made the most sense to have the game played on a device in a vertical configuration to give the player a lot of time to gauge a bullet speed and travel with the target near the top of the screen. It was serendipitous because having the target in the center gave me the opportunity to frame two agents on either side, and keeping gameplay to a simple “tap” of either half of the screen.
I opened up game maker, created a room, and made some temp objects in the form of colored rectangles. In what was probably close to an hour I had a prototype which was a lot of fun.
I know it was only my third game in what was supposed to be a series of games I would make every week, but something seemed magical about this one and I had to pursue making a real game out of it.
Let’s Make It Happen
Now that I had a fun playable demo, it was time to make the art, make a few songs, and then I’d be done. Easy. Quick. Right?
I wanted to do something with a limited color palette. I am an insanely huge fan of the game “Papers Please” by Lucas Pope, both for the gameplay and the visual style. I was obsessed with the game for a good portion of 2013, so it only seemed fitting that my politically themed video game pull from the same pool of riches. I loved the muted colors of PP, so I decided to try something similar and use color temperature & value to help the weapons stand out from the background. In picturing a frustrated proletariat angry at the ruling class and bourgeoisie, I decided it might make more sense to throw objects (like you imagine a Shakespearean play might have) instead of taking the literal and serious tone of shooting guns. Here is an example of the colors and style of the weapons.
I started working on the background, and made something relatively OK looking. But then I realized something important: I hated it.
I loathed it. My contempt was palpable. I was angry at my abilities as a pixel artist, at the forms looking back at me. They were simply awful. And this wasn’t an easy revelation. I wanted so badly to know that I could do this, all on my own, and I felt like a failure for wanting to reach out for help. But I swallowed my pride and reached out, and I’m really glad I did.
Get Johan on the horn
I had been a follower of Johan’s on Twitter for some time now. His work has a charm which screams SNES/GBA to me. What’s not to love about this work!?
I wanted to work with him more than anyone at the time, so I reached out to see if he was interested in working together. I sent him a version of the build and he enjoyed it. Still feel so lucky that he said yes.
Right away he did the background of the room (like, within a day or two, the turnaround time was nuts), and nearly completely did away with my original color tone. It was hard at first to see a deviation from my original plan, but I loved the look so much I had to let go and see where he was going to take it. The only thing I asked him to change was the perspective painted into the floor. I loved the feel of it (like batting in Ken Griffey JR on the SNES) but it went against the prototype and scared me with my inexperience in Game Maker.
What Johan did next blew my mind. The curtains were given life, plants were added to the stage, the podium was put in a spotlight, along with a fat eagle which made me think of the Statue of Liberty from “The Triplets of Belleville” which later became the basis for our logo. And of course, the Agents.
I have to admit, this was the hardest thing for me to get used to. Sometimes you get so used to seeing something, even if you are only seeing it in your head, that you fail to see the brilliance right in front of you. I was stuck on the proportions of the boxes I made. These characters were more squat; in my mind, when they jumped they wouldn’t take up the same space as the current hitbox and the gameplay might be vastly different. I was very concerned for the impact it might have on the gameplay. Lucky for me, Johan cranked through the animations so fast I could see right away that the scale of the character while jumping was so close it calmed my nerves. Instead of worrying, I put the art in and tried it. It worked, brilliantly. Looking back on it, I feel like a moron.
Play it again, Flashy
Once the art started rolling in it was time to talk about audio. Johan has done music before, but was concerned that he wouldn’t have enough time between this and other projects. I reached out to Jake “Virt” Kaufman, but caught him at an exceptionally busy season (seeing as how he does every Kickstarter out there curently.) That’s when Johan recommended flashygoodness, who might be best known for his work “Tower of Heaven”
I spent at least an hour scouring through his catalog and trying to contain my giddy excitement. He has an amazing style, and our sensibilities really meshed when I said I was wanted to go for a SNES era vibe; I don’t think anyone could have hit it any more perfectly. Whenever I put the game into anyone’s hands the first thing they comment on is how SNES it feels and how amazing the music is. Really it’s best if you just hear it for yourself over on his bandcamp site. Working with flashygoodness was a real treat, and he cared a lot about the gameplay and had a lot of suggestions for tuning the fun, and also pointed out a number of nuanced audio bugs along the way; I love when an artist takes that kind of pride in their work.
Five Months In – Prior Obligations and Feature Creep
From the get-go the project was meant to be a side project for the three of us. With day jobs, and other projects with other developers, Super Secret Service almost always came second to everything else in life. For me the game was made between the hours of 10 PM (after the wife goes to bed) and 2 AM (when I crash out from old age) on weekdays, and on weekends I would sometimes spend an hour or two at Starbucks while the kids were napping. (Working out of the house, even at a place like Starbucks, can be strangely refreshing. I feel like the couch beckons me to sit on my butt and not do anything.)
Super Secret Service was on a very slow burn, which isn’t necessarily bad. On big budget projects with lots of employees it’s very important to have a clear, distinct design and asset list early on, and producers try to keep the team on course both on timelines and scope. Along the way people working on the project start to get excited and have new ideas as the game they are making starts unfolding in front of them. Clipboard types and pessimistic programmers like to call this “Feature Creep” because it is often seen as unnecessary tasks being tacked on far too late in the project. Sometimes they are right, and it can be hard to keep a team focused and motivated.
For a small game like ours, as I implemented new animations and features as they rolled in every few weeks I would share the build with the team, and sometimes neat ideas would spring up. Mostly it was little things, but with a solid prototype foundation we never hit any kind of “This sucks, completely redo the game” discussions, thank goodness.
We even thought it would be fun to have agent versions of us run onto the screen from time to time. I’ve never seen a little pixel version of myself, so I love this!
Having the game out 4-5 months later than I had originally wanted gave us some other benefits as well. With the release of ios 8 every game built with Game Maker ceased to work on devices with ios 8 installed, so I immediately took down all my apps which were for sale. It took Yoyo a few days to a week to fix Game Maker, and I immediately fixed up my Garbage Truck! app and resubmitted right away, in all taking a 2 week hit from sales.
Also in recent weeks there have been a large number of events in the news involving the Secret Service. Who knows if it will reap any benefits or added coverage, or the fact that the game will be coming out right around voting season. Keeping my fingers crossed. Also, don’t forget to vote November 4th.
Programming Randomness Is Fun
For myself I discovered that I love programming randomness. I had never really done it before, but it became kind of an avalanche of fun for me. I had more fun programming this than I do painting.
And to be clear: I do not claim to be any kind of expert programmer. I know the most basic fundamentals of programming. I am a junior amongst juniors. A “legitimate” programmer at work described my kind of style as “Cowboy Programming” not so much as an insult, but as an observation to someone who just jumps in there and gets something working and moves along. I had a casual conversation about this with our Technical Director and he said something close to “Yeah, but cowboy programmers get games done, they don’t waste time postulating.” I like to think of it as more of a field medic style of programming: patch em up, keep em alive, and move on.
Anyway, here’s the fun I had, because it’s fun to talk about it. A lot of it comes from getting a feature in, playing it, and saying to myself “I wonder…”
The first thing I had to do was randomly assign 1 of the 6 Secret Service agent models. A pretty simple task, but I wanted to make sure that I was never bringing in two of the same guy at the same time. A proud moment of polish.
After “dying” and getting a game over, I thought it might be funny to memorialize all of the agents lost that day. So each time an agent is created they are randomly assigned 1 of 100 unique first names, and 1 of 100 unique last names, which results in a grand total of 10,000 possible name combinations. Using a list of the 100 most popular US first names, and a separate 100 most popular last names, it was mostly a copy and paste. (Funny story. I accidentally skipped “case 22″, so the game would crash very infrequently and I couldn’t figure out what I did wrong for months. Finally caught it and felt suuuuuper dumb.)
When I started the project I knew little about 2D arrays, and had a bit of fun configuring a couple “for loops” to be able to track all 10,000 possible names a character might come across. Originally I also had mine and Johan’s name listed among the group, but found it a bit weird over time, seeing our names so often. So now there is only a 1/10,000 chance you will see either myself, Johan, or Flashy in the group (we basically overwrite 3 of the possible name combinations.
And of course if we are memorializing the name of the dead, we must commemorate the day they passed. Each of the agents die on the day you play the game, and I give the agents a random chance to be born between 18 and 60 years from the day you play. Simple enough, but what about months and days…
Months and days are way too fun! After setting the year, it’s time to set the month! Easy enough: 1 in 12. Boom! Done!
Days is where it starts to get silly. My approach was to set the day to a random whole number between 1 and 31. If my the agents birthday was in April, June, September, or November and their day equaled 31, make it 30.
But if it’s February, if the birthday is 30 or 31, it becomes 28. But if his birthday comes up as the 29th, then I check the year. “if (myyear – 1804) mod 4 != 0″ I had a bit of fun looking up leap years on this one, along with “modulo”. For those of you that don’t know mod, it gives the remainder of a dividion. So I take my first value (the year the agent was born) and subtract it by the earliest Leap Year on record I can find, it will then be divided by 4. If it is currently a leap year, we should have no remainders, and if it is then the day remains the 29th, otherwise the day becomes the 28th.
I know it may seem silly, but leap days are important people! And if you happen to sacrifice an agent who was born on February 29th, you’re in for an achievement and a fun surprise.
In the end it makes the game take a bit of a load at the start, but it’s going through 10,372 points of data (agents, days, months) reading from a save file, and parsing a legitimate high score based on the number of agents seen.
In the end I couldn’t be prouder of how the game turned out. The gameplay is frenetic, it’s full of charm and life, the graphis are astounding, and it’s just simply fun to play.
Note: This gif is running at 15 frames a second, instead of 60, so some items are disappearing instead of blinking.
If you have read this far, you’re awesome. I hope this extended blog post gives you some insight into indie development, or maybe inspires you to pursue a fun game idea of your own. And please don’t hesitate to drop a line through email, or hunt me down on Twitter (@ivandashsmith). Also if you are on Twitter be sure to follow @JohanVinet and @flashygoodness and tell them how awesome of a job they did on this game. It was so much fun working with them, and I hope I get to work with them again real soon.
Thanks for Reading, Agent!