Thursday, April 28, 2016

Drake - 10 Bands - Post Mortem

Story or "Why I decided to do this to Myself":

"If you're Reading this it's too Late" came out and it was pretty awesome. A friend of mine would occasionally sing the chorus to "10 Bands." I thought it was silly... 10 Bands... 50 Bands... Every time my friend sang it I would imagine Level 1... Level 2... Level 3... I would say "This is a video game. It's not even a song. Every level you need to get those bands to proceed!" I swear I said that for an entire year. If I heard it in a bar, at a club, from a friend, on the radio, if it was processed in my brain it was processed as VIDEO GAME. In early April, Drake announced that "View from the 6" would drop at the end of the month on the 29th. On April 12th, it dawned on me that I should create the game particularly for the release of the album. It would be a great challenge to complete a game in two weeks. Kind of like a game-jam for myself. I had been working on a separate video game for the last 3 months so I already had the motivation and some foreknowledge regarding LibGDX. It could be a great learning experience and maybe I'd release some tutorials on how to make your own game. I thought it would be easy, but I was wrong.

Making Games is Hard:

What I already had planned in the one year I was stewing on this idea:

  • Make three levels: 10, 50 and 100 Bands.
  • Use the accelerometer for the movement of Drake.
  • Put the song 10 Bands in it.

THAT WAS IT. In the real world that isn't good game design. That's not even a game-spec. It's bullshit. You don't walk to your devs and say "Code a game about Drake using these three facts." And you definitely don't do the same for your artists either. Good thing the sound was already decided right? Haha.

April 13th, 2016:

I followed the LibGDX guide to make a simple game as my starting point and built upon it using the simple game extension. From there I added accelerometer detection and had a sprite moving around based on phone movement. I was on a roll!


April 14th, 2016:

I added band generation and collision detection. If you collided with a band it would add one to your score and generate a new band immediately. I also had some screens in between starting a new game just because the simple game guide had some to begin with. I determined that the obstacles to avoid would be phones and people sleeping, if you play the game or are familiar with the lyrics, then you will understand. Still on a roll!


April 16th - 23rd, 2016:

This entire week was spent making the levels and getting the core design to work. These seven days were the best of the fourteen used on the project. I'm a pretty decent dev so bug fixes were smooth. The other game I was pausing development on had classes I could copy over and use in this game, so that saved time too. I also had to have a background because it made moving obstacles easier to gauge as to where their boundaries could be. I was sailing, so fast that I thought I would be done with the game by the end of the weekend.


April 24th - April 26th, 2016 or "The End?":

A word I threw around a lot during these days was "fuck." I had no idea how the UI would look, but I'm not bad with design. UI wasn't even important for this game. Seriously, the game is free. Good games are about good game design, not about how pretty your UI is. I figured I would just throw something together real fast and be done with it. Well guess what it took three fucking days to do the UI and they were the worst. Highlights include:
  • It took forever to get the buttons to work because every tutorial I followed was missing one particular line of code needed that sets the boundaries of buttons for touch detection.
  • I redid the title screen three times. There are at least seven screens in this game and it took me one day to do the first one.
  • The "With My Woes" font I downloaded did not have numbers. I had to use a separate font for anything that had digits. It just looks bad having two very different fonts against each other like that.
Not having mock-ups or a general idea of how things will go is the biggest mistake you can make in software or game design. I'm glad this wasn't a project being made for profit. It's experiences like this that will make you a great game developer, but it will not be this game that has what I learned about decent UI planning. Without a plan, you are literally just wasting time walking around in the dark. I was up until 2am or later each of these nights. Work this week was excruciating because I was coding literally all day. Go to work, code. Come home, code. My emotions became numb. On Tuesday I had finally finished the screens and decided to finish that night. I wrapped up the designs for each level and tested exporting the game. It worked fine, so I uploaded it to the Google Play Store for my friends to beta test before the Friday release.

























April 27th, 2016:


My game got suspended from Google Play for copyright infringement. Not even the beta testers got to see it. I wanted to make multiple games based on music/lyrics, so future games cannot be uploaded there. I also wanted to buy a MAC and possibly release an iOS version but they actually have a week long review process so I'm sure it would get revoked from them too. I decided to appeal.


April 28th, 2016:

They said no. At this point I am like "well eff my life." All I wanted to do was make a game for fun. I didn't want to profit off of Drake (besides learning more code related to LibGDX and maybe getting some followers for a future game I'd actually sell). There is honestly nothing to be gained currency wise from a game you rush to complete, beginning to end, in two weeks. I went to the bar after work and when I got home I decided "What the hell? Let's make the post-mortem and write some tutorials!" I uploaded the Android apk and source code to my Google drive and started writing this article. It is now 11:47pm. Drake's "Views from the 6" has premiered on his OVO Radio show through Apple Music. I'm going to be up for a couple of hours writing some tutorials.


No comments: