February 20, 2015

dotaplays Changelog - v0.01

This is an apology post. An apology for not posting when I promised to post every other day in my recent post. So here's an update to what I've been working on this week. It's pretty difficult to stay on track of these blog posts when I have a full-time job and can only dedicate a few hours each day in the evenings to code. So please forgive me for preferring to code a little bit more rather than blog about what I've been developing.

So now I will promise to update weekly on the status of this project. And since it's still not ready for release just yet, I will start the changelog version at 0.01.

Here's the latest changelog for dotaplays (v0.01):
  • Submission now works
    • Can submit either the entire GFYCAT link or just the unique identifier of the gfycat URL
    • Detects NSFW content using the GFYCAT "nsfw" flag
    • Detects empty strings
    • However, there is simply no way for me to know whether or not a submitted GFY is related to Dota or not, unless I want to restrict all submissions to GFYs from the /r/dota2 subreddit
  • Mobile now uses media queries to get a better experience
    • Still a lot more work to do obviously because the page content has yet to be finalized
  • Added a section for possible ads
  • Fixed video sizing and re-implemented the pause/play canvas from GFYCAT embed script
  • Resized various images / icons
  • New logo / favicon

On a side note, I absolutely love changelogs. It takes me back to my childhood when I would read the latest patch notes from World of Warcraft.

February 17, 2015

4orner Changelog v1.02 - Colorblind Mode

Hurray for increased motivation (even if it's temporary).
  • Added colorblind mode (toggle by going to the about section)
    • Each color is now associated with a shape
      • Red - triangle
      • Yellow - hexagon
      • Blue - square
      • Green - star
    • All corners, all enemy balls, the inventory, and the player now have a shape that appears in the center when color blind mode is enabled
  • Fixed the way selecting a menu option interacts with the player
    • Previously, the player would "reset" and be centered on the screen to avoid infinite loops that jump between states of the game
    • Now, when the player leaves the corner, they will reset to black--thus allowing them to select another menu option (even the same one)
  • Fixed player rotation (now player ball cannot be rotated--was obvious with colorblind mode enabled)
  • Changed about text to be more helpful instead of melodramatic
    • Help text changes depending on whether or not the player is on a desktop or mobile

On a side note, play the game here or here!
On a side side note, read about the development process here!

February 16, 2015

Reflecting on Motivation

It's been almost two weeks since I completed my 30 day challenge so I figured I'd post about what I've been doing since then.

It's not a surprise to me that I haven't been doing much. The feeling of completing 4orner was amazing and it was a great achievement on my part to be able to stick it through and make something from nothing. But that motivation and energy seems to be very fickle. Maybe now that I am not publicly working on some project, it's pretty hard to stay focused and on track.

But I want to change that. So I've decided to get back on the horse and start blogging about what I am working on. No need for secrecy--especially if by publicizing I can fuel my motivation. Not sure if I want to do something as intense as a 30 day challenge, but I will promise to post at least once every other day to start with. Let's see how far that gets me before I have to post another apology about my unstable motivation, haha.

On a side note, the project I am currently working on is called dotaplays.

February 05, 2015

4orner Changelog v1.01 - More Multipliers

Now that my #30daydeveloper challenge is over, what's next for me? I am not quite sure but I am incredibly overjoyed at the response my game has gotten so far. It's amazing to hear how my little game has made a positive and inspirational impact on total strangers across the internet. What a world we live in.

I strongly believe that a great game developer is one who listens to the community and continuously strives for that perfection--no matter how far away that may be. So it is my duty to keep updating 4orner as feedback is received.

Today's changelog is titled - More Multipliers
  • Added several new multiplier effects
    • "Two-by-two" - get alternating colors in pairs (red, red, blue, blue, green, green, etc.)
    • "Three-by-three" - same as above but in threes
    • "Four-by-four" - same as above but in fours
    • "Half-by-half" - evenly divided half inventory (five of one color, five of another)
  • Half inventory now reduces the total multiplier by half
    • To balance this, all other multipliers are now applied at half inventory instead of requiring a full inventory
      • I felt that the half inventory was getting little to no play. Not to mention once the levels get higher it's really difficult to hold out for full inventories
  • Added new loading gif
    • With four circles (like the game!)
  • An extra ball spawns every five levels, down from every ten levels
  • Reduced ball speed increase per level by half
  • Added a new functional key - enter
    • Press enter to lock the mouse at the location of the player ball
      • May not be the best strategy late game as the ability to "teleport" from place to place requires the mouse to be unlocked
  • Added a new level in the tutorial outlining that getting alternating colors gives bonus points
    • Might be a bit difficult due to how fast balls spawn in the tutorial

On a side note, thank you everyone for your feedback!
On a side side note, play the game here or here!
On a side side side note, read about the development process here!

February 04, 2015

#30daydeveloper Review

Below is what I wrote for this Reddit post.


Hello, my name is Wonmin (1min) Lee and a long time lurker, first time poster at /r/gamedev. For the past thirty days I have been working on a game called 4orner. Here are some quick and dirty facts about me:
  • I work a full time job
  • I took two computer science classes in college (web and Java) and since then have self-learned everything
  • I challenged myself to work on my game every day starting January 5th for thirty consecutive days
  • Each day I challenged myself to be a “non-zero” day (shout out to /r/NonZeroDay)
  • I am extremely proud of the final result and excited for what this means for my future
The purpose of this post is to document my findings and epiphanies from my thirty day challenge of making 4orner. It is my hope that my experiences can help motivate you to achieve your goals—whatever they may be. (And also motivate myself for any future projects).

My post will be broken down into the following categories:
  1. Motivation and Discipline
  2. Game Design
  3. Technical Difficulties
  4. Project Management

#30daydeveloper - Day 30 - Done

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!
I am done!
The final product in it's finished glory
  • Implemented PhoneGap, 4orner is now available as a standalone Android app
    • No iPhone version because I didn't have enough time or an iPhone to test with
  • Changed the font size to be dynamic based on window size
  • Changed player size to be dynamic based on window size
    • Still takes ten hits to die / lose
    • i.e. it's marginally harder to grow bigger if the screen is larger
  • Changed ball sizes to be dynamic based on window size
    • Fixed ball body size bug not being accurate leading to incorrect collisions

On a side note, look out for a complete review of my thirty day challenge tomorrow!

February 02, 2015

#30daydeveloper - Day 29 - About Multi-Touch

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!
Today I decided to finish up how the game plays on mobile browsers. Perhaps tomorrow as my last day I can learn PhoneGap and create a standalone application.
About 4orner, which you should know all about if you've been reading my blog posts, right?

  • Changed the hole sizes to 35% of either the window width or height (whichever is smaller)
  • Removed remaining legacy code from old features (flick to move)
  • Streamlined code to run faster a bit
  • Added about page describing the project
    • Removed settings page--wasn't sure what I would put under settings anyway
  • Added support for multi-touch on mobile devices--two finger tap stops time

On a side note, just one more day left! I can do this!

#30daydeveloper - Day 27 & 28 - Levels

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!
Only two days left. I can almost taste the finish line (two idioms mixed here). Today, I implemented levels. Every hundred points, the level goes up by one. With each level, enemies move faster. Every two levels, enemies spawn quicker. And finally, every ten levels, enemies spawn in greater numbers at a time. The highest level I managed to get to myself was thirty-one with a final score of 3190. Do you think you can beat my high score?

If you're finding the beginning too slow or boring, here's a tip: since enemies move relatively slowly in the beginning, it's really easy to collect the highest combination of balls to maximize your score with a single submit (alternating, full inventory, and two color). Doing this brings you up to level seven or so immediately, drastically increasing the pace of the game.
The game gets harder with every level every hundred points
  • Implemented levels
    • Every hundred points is a new level
    • Every level enemies move faster
    • Every two levels enemies spawn quicker
    • Every ten levels enemies spawn in greater numbers
  • Implemented a pause screen (press P to pause while in game)
  • Reduced the amount of radius recovery when collecting similar colored balls
    • i.e. When you're hurt, the player's radius gets reduced by five, whereas if you collect a ball, your radius only goes up by one
  • Fixed a bug with inventory not clearing upon game over
  • Reworded the quit and return text (removed periods)

On a side note, I got nothing today for you here.