January 30, 2015

#30daydeveloper - Day 26 - Tutorials and Love

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!
With only four days remaining, I realized I should probably start writing a bit more. This challenge wasn't just done to create a cool game (in fact I had low expectations of being able to complete a game) but more to figure out about myself and my work habits. The full write-up will be delivered at the end of the thirty days, but as you can see from my blog and my almost complete game, things are going pretty well.
I love this message.
On with the changelog!
  • Quit corner now works, prompting users for confirmation before navigating away to my personal webpage
  • Tutorial corner now works
    • Six levels in the tutorial outlining the basic concepts of the game
    • Repeatable but you can close out by pressing R at any time
  • Added message for restarting the game
  • Fixed a bug with creating enemy balls that wouldn't allow me to properly create multiple balls at the same time

On a side note, I still need to polish up the game for mobile--that might be the final mountain to climb in my challenge.

January 29, 2015

#30daydeveloper - Day 25 - Small Bug Fixes

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!
Just a small update today.
  •  Pressing a key is now the same as clicking the player ball at the beginning (i.e. removes the "drag me" text)
  • Fixed several small bugs and reorganized code

On a side note, only five days left in my challenge!

#30daydeveloper - Day 24 - Menus and Fonts

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

  • Changed the font of the game
  • Added a new favicon for the game
  • Added game menus
    • Settings - not functional yet
    • Help - not functional yet (may be renamed to tutorial)
    • Start - starts the game
    • Quit - not functional yet
  • Removed HTML button and added a loading gif
    • Phaser canvas automatically starts upon finishing loading

On a side note, what do you think of the font? Should I keep it?

January 28, 2015

#30daydeveloper - Day 23 - Restart

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!
Today was a bit of a slower day.
Game over, try to beat my score?
  • Fixed centering of game over text
  • Added restart game when pressing R after game over
  • Existing balls continue to move randomly after game over
  • Removed ability for balls to change player color
  • Player now can be hit a maximum of ten times of the opposite color before losing
    • Collecting a matching ball increases the player's life count by one
    • Player's size corresponds to the player ball's size (with growing and shrinking animation)
  • Added keyboard support
    • WASD / arrow keys for movement
    • 1234 to teleport to a corner

On a side note, only one week left! How much further can I get?

January 27, 2015

#30daydeveloper - Day 21 & 22 - Game Over

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!
 Hurray, more changelogs!
  • Enemy balls now change the color of the player upon collision
    • This is kind of an annoying new feature, I might take this out
  • Multiplier texts are now in place to inform the player of the score multiplier
  • The player's size grows smaller when hit by an enemy of a different color
    • Game is over when the player is reduced to nothing
      • Game over text appears properly and the game stops running
    • Player's size grows back when collecting a ball of the same color
      • Perhaps the player's size should also increase depending on the multiplier

On a side note, do you think the multipliers are fair? Or are some of them too many points for too easy of a task?

January 25, 2015

#30daydeveloper - Day 20 - Multipliers Multiplying

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!
Today's change will be in changelog format because I realized that I love writing changelogs and these posts should've been like this from the very beginning.
  • Stopping time now changes the colors of the enemies to white to better visually represent that you can collect them
  • Multipliers are now in place!
    • Currently there is a bonus to your score when:
      • Full inventory (ten)
      • Half inventory (five or more)
      • Three colors only
      • Two colors only
      • All same color
      • Alternating colors
  • You are limited to ten free kills when time is stopped
  • Added particles for each ball color
  • Increased opacity of enemy balls
  • Stopping time no longer resets the color of the player

On a side note, still need some way of letting the player know which multiplier was activated.

January 23, 2015

#30daydeveloper - Day 19 - Cut the Fat

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!
Oh my god, I think it's actually fun now. I've been playing my own game and it's quite entertaining. Of course it's nothing like what I first envisioned at all. From sound design down to the core gameplay mechanic, this game is nothing like what I had mocked up on the first day.
See the inventory on top? Those are the balls I am currently holding.
On with today's changes (in bullet format because I am lazy):
  • Removed click to flick mechanic of enemy balls
    • Not necessary anymore given the new gameplay mechanics
  • Removed ball worth
    • Didn't make sense to create an arbitrary incentive to have enemy balls collide with each other
  • Added a ton of new sounds and background music
    • Everything sounds so soothing now. Much different from the upbeat techno trance music I had in earlier versions
  • Added an "inventory" system for holding enemy balls.
    • Now when time stops, you "cash in" your inventory for points.
    • I want to implement score multipliers that depend on what you were holding in your inventory when you stop time.
      • Extra ten points if all ten were the same color
      • Extra twenty points for having at least one of every color
  • Removed the word "score" from the top
    • Didn't find it too aesthetically pleasing
  • Optimized the code a lot
    • Removed unnecessary loops and random console logs
So please, go ahead and try the game. Let me know what you think!

On a side note, I am actually genuinely excited about this. This is a great feeling.

January 22, 2015

#30daydeveloper - Day 18 - Player Colors

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

So today I added a limit to the time stop ability. You can now only stop time for 200 milliseconds before it goes on cooldown. However, the game still isn't all too fun to play. It was very cumbersome to stop time and to alter the direction of each and every enemy ball to send them to the correct corner. And given the new time limit, it was pretty difficult.

So I changed it that once an enemy ball touches the player, it disappears. This solved the problem of a million enemy balls cornering the player and a negative score in the tens of thousands. I also changed the spawn pattern to a random location a set distance away from the center of the screen. But yet, it was still relatively boring to play.
The player is now pink, therefore able to collect the pink enemy balls
Here's where I created the player color mechanic. Now you can drag the player ball wherever you click without needing to stop time. In addition, when the player touches any of the four corners, the color of the player ball changes. This way when you collide with any enemy balls of the same color, your score goes up.

In addition, when time is stopped, the player can collect any colored ball for a neutral score. I had to implement this feature because if you cannot keep up with the enemy spawn times, then the number of enemies becomes pretty overwhelming.

I have to admit I am finally at a point where I can see some semblance of fun in this game. I guess I didn't really have a goal or anything when I set out on this journey, but it's really heartwarming to know that my time isn't being completely wasted, haha. At least I'm learning a ton about Phaser. And who knows? This knowledge might go a long way in some future endeavor of mine.

On a side note, game design is really hard. I had always thought that the technical part of actually making the game was the hardest part, but that is slowly proving to be false with this thirty day challenge.

January 21, 2015

#30daydeveloper - Day 17 - Spawn Animations

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

Wow turn rates were really difficult. Who would've thought that I should've paid more attention in high school trigonometry class? But I managed to get turn rates working after a good amount of whiteboarding.

The problem essentially was the way angles were being calculated. The ball may be facing -175 degrees, but if the player was 175 degrees, then the logical way to turn was counter-clockwise, but due to the way I was calculating the angle differences, the ball would turn almost a complete 360 degree turn towards the player.

My whiteboard scribbling
Therefore, I had to calculate out each specific scenario of ball versus player angles. What quadrant are they in? Are they negative or positive? Which direction should I turn towards to get the correct angle fastest?

In addition to turn rates, I also implemented spawn animations. Now the balls grow in size before beginning to target the player. Once the ball reaches it's maximum size, it starts towards the player. If the angle towards the player changes, the ball comes to a stop before recalculating the new angle. You can also click on the ball to force an angle change. This mechanic combined with the ability to stop time should allow players to launch enemy balls into the correct corner.

An update wouldn't be complete unless there was a change to the scoring system, right? Now balls don't disappear when they collide with a different colored corner. They just simply go through. Whereas if the corner and the ball color are the same, then the ball's current net worth is added to the player score. In addition, every time a ball collides with another ball, their respective net worths go up. This way, the player has incentive to bounce balls against each other before shooting them into a corner for maximum points.

On a side note, my lower back really hurts.

January 20, 2015

#30daydeveloper - Day 16 - Turn Rates

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

Today I cleaned up my code a bit so it's a bit easier to read. Unfortunately because of the nature of this thirty day challenge, I haven't been really keeping my code all too clean. Which is getting to be a problem because of all the stuff I am trying to implement. Perhaps I should have kept that in mind from the beginning.

Since yesterday's major changes, the game currently has no real purpose. The core game mechanic of being able to influence enemy ball directions is yet to be set up. But today I took major steps in the right direction.

Right now, enemy balls move at a constant maximum velocity at an angle. The angle is determined with each step as the angle between the ball and the player. I also created a small white arrow indicating the current direction each ball is travelling in.
White arrows indicate the travelling direction
In addition, the enemy balls spawn from four different locations. Their colors are still random, but that's subject to change. I also made them half the size of the player. This is also subject to change.

On a side note, I really want to implement turn rates but it's proving to be pretty difficult. Perhaps my second mountain to climb?

January 19, 2015

#30daydeveloper - Day 14 & 15 - Time Stop

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

Okay so I cheated and combined two days into one post because I was lazy yesterday and didn't feel like posting anything. Maybe I should make Sundays my days of rest. Everyone needs to take a break once in a while, right?

So since I've realized how bad my game was, I have set out on a journey to make it more fun to play. Today, I created a black and white player controlled ball that you moves with the mouse. In addition, when moving the player ball, time stops for the other enemy balls in the game.

I really like the visual and audio effects that are currently in place. When time stops, a large circle expands outward from the player ball and covers the whole game screen. Concurrently, the background music stops playing and is replaced with the sound of a ticking clock. Really cool stuff.
Don't judge my score.
In addition to the time stop mechanic, I also tweaked the scoring system a bit. Now when a ball of the same color as the corner disappears, you gain five points. If the colors are different, then you only get one point. Finally, if any of the colored balls hits the player, you lose five points.

As far as the scoring system goes, everything is still a work in progress and subject to major tweaking or overhaul.

On a side note, I actually can't stop stopping time. This is really fun!
On a side side note, I can't believe I'm already halfway done with my thirty day challenge! I don't know if I'll have enough time to finish, I still feel so far from done.

January 18, 2015

#30daydeveloper - Day 13 - Boring

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

This game is terrible! It's so boring and I have absolutely no fun playing it. Even as the creator, it's really hard to muster up any desire to play this game for anything longer than five seconds. Albeit it's still just a prototype and not all the features are fully fleshed out yet, but it's still pretty damn boring.

I am getting more and more worried that no matter how much I polish this game, the underlying core game-play mechanic of "dragging balls to corners" is just simply not fun at all. So I definitely need some form of reworking the major game-play aspects.

First I disabled the ability to drag or flick the balls. This may seem like a step back considering the amount of work I put into learning how to do this feature, but it makes a lot more sense once you consider my next idea.

Next, I enabled a pause time feature. While the mouse is held down, nothing will move and the music will pause. (exactly which button is held down is still subject to change). This is because I want to experiment with semi-real-time and semi-turn-based game-play.

My idea is to create a player controlled circle (with health points perhaps). When this circle is dragged, time stops (or simply slows down, similar to the game SUPERHOT). While time is stopped, you can alter the direction the balls will be travelling, causing them to collide with other balls or one of the four corners.

This might create a much better experience for the player as now you have to dodge balls in addition to trying to get them into the four corners.

On a side note, making games is a lot harder than I thought. Or rather, making fun games is a lot harder than I had thought.

January 16, 2015

#30daydeveloper - Day 12 - Navigating Scoring

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

Today I didn't have as much time to tinker as I wanted. There is just simply too much I want to do and it's very difficult to keep on a straight track when my mind wanders and I take so many detours on the way.

Today, I fixed the mobile version, now the game fits perfectly in my phone screen and it works pretty well for the most part. It's just not as fluid as I'd like it to be, but what else can I expect from a prototype, right? I hope that as I keep working on this, it'll become a more responsive experience.

In addition, I also got rid of the timer at the top. I want to experiment with music and spawning the balls to some background rhythm. Then with each interaction create a sound that might all mesh together to create some sick beats. I tinkered with this yesterday when I played with audio, but it just increased load times by over two-fold and was simply unpleasant to listen to. But I hope it'll be better in the final version!

Right now, each ball is only worth five points, but I have plans to add multipliers and other ways of combo-ing them to increase their values. Be on the lookout for that!

On a side note, I'm so hungry right now.

January 15, 2015

#30daydeveloper - Day 11 - Sounds Good!

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

Today I toyed around with adding sounds to my game and, I have to say, sound design is really hard. I have no idea what would be an appropriate noise for every single interaction in my game. What noise should the balls make upon collision with each other? What about when they're being sucked into a corner? Should a noise be made when you click on a ball? Does every interaction need a sound counterpart?

I have a general sense of what I want my game to sound like (heavy techno, fast beat / minute) but it's really difficult to find satisfying sounds from royalty free websites. Maybe I need to find a sound designer friend who'd want to work with me, haha.

In addition to sounds, I fixed mobile touch input. Although it loads very slowly on mobile (most likely due to the large sound files) there is not much noticeable lag. But that might also be due to my relatively higher end Android device. I'm sure if you had an older model or a legacy smartphone, it'd run into some frame-rate issues.

I'm still trying to get the mobile version to look better. Currently I am having some issues with the screen width and height. The same issues that I ran into when I had to design my personal website to be more responsive.

On a side note, anyone know of any good free sound databases?

January 14, 2015

#30daydeveloper - Day 10 - Gravity Corners

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

So now that the game's prototype is finished, I should start adding bells and whistles to it right? Or should I keep updating the core functionality of the game? Not that the core functionality is all too complex or anything.

I once read an article suggesting that the core game play mechanics are the most fundamental key to a game's success. Every game can be simplified down to 20-30 seconds of "core" game-play that is repeated over and over throughout the game. Therefore, if this fundamental piece of the game is not interesting or entertaining to play, then chances are that the game will also be boring. There's only so much you can polish a piece of turd, right?

I wonder if this is true. Are there any games out there with lame "core" game mechanics, but yet are very addicting and fun to play? Will adding shiny gadgets and score multipliers do more for my game than updating the main game design?

Anyways, today I implemented gravitational pull of the four corners. I thought it was kind of anti-climactic that once a ball touched any of the four corners, it just sort of disappeared without much grandeur. So I changed it to detect overlaps (using the Pythagorean Theorem, who knew math would be useful in real life?)

Maybe I'll add some simple sounds to get a better idea of what my game will look like when played. So here's a short list of future ideas that I am planning on implementing, in no particular order:
  1. Sound effects and music
  2. Menus and settings
  3. Score multipliers and bonuses (kind of like Tony Hawk's Pro Skater combos)
  4. Scoreboard and high scores (local or internet)
  5. Mobile application using PhoneGap

On a side note, wow I guess I still have a lot more mountains coming up, haha.

January 13, 2015

#30daydeveloper - Day 9 - Introducing 4orner!

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

Four corners, or 4orner, is the tentative name I've settled on. And I am proud to present the first version that I am proud to call a working prototype. Obviously everything is still largely a work in progress, but this is the first time where I think that my game has the absolute bare minimum requirements to be called a game.
So currently, colored balls spawn in the center of the screen when the timer at the top reaches zero. Then the player must drag the ball to the corresponding corner to increase their score. Once the ball makes contact with the corner, it'll disappear and the current amount left on the timer is added to the total score. Obviously nothing is set in stone and I have a ton of ideas for more content regarding scores like multipliers or bonuses.

So if you've been reading the blog entries in the past, you'd know that I had a problem with getting the trajectory of the ball correct upon mouse release. So the method I settled on is a mixture of the old mouse history velocity method and a directional method.

First, I use the historical positions of the mouse to create a temporary velocity. This way, if you've been dragging the ball for a bit, it'll be faster when you let go. But this led to an issue with sharp turns right before the release of the ball. Therefore, I added a second portion where it'll determine the correct direction the ball should travel in using the position of the mouse during the last two milliseconds. This way, even if you do a sharp turn while dragging the ball, it'll travel in the correct direction upon release.

I still don't know if this method is the most efficient, but it seems to work fine for the interim. Obviously there might be issues with sharp movement that may be faster than the two milliseconds I allotted for, but that seems unlikely.

On a side note, maybe nine days isn't much of an accomplishment to some of you folks out there, but to me this is a huge achievement and I am beyond proud of what I was able to do in such a short amount of time.

#30daydeveloper - Day 7 & 8 - Circular Collisions

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

So I had to ditch the old physics engine (Phaser's Arcade) because I think if I want to do collision detection for objects that aren't just rectangles, I need to use an engine that is a bit more powerful. Hence I spent the past two days learning about the P2 physics engine built into Phaser.

With this new engine, I was able to do proper collision detection between two circular objects. Now if you throw the pink ball at the black round corner, it'll detect when the edges of the two circles meet. Before, there was an invisible box that surrounded each circle so collisions would occur even if visually they did not. (Which leads to a bad gaming experience of course).

On a side note, try it out at this link and let me know how smooth the collision detection is!
On a side side note, sorry I didn't publish a post yesterday! I want to say I forgot, but the truth is that I was just too lazy.

January 10, 2015

#30daydeveloper - Day 6 - Circular Bodies

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

Today was a bit more relaxing after yesterday's mountain climb (not that I finished climbing it). I played around a bit with sprites and graphics objects in the Phaser framework. I don't know if it's the best solution to use sprites when all I am planning for is a simple minimalist graphics-style. But then again, it doesn't hurt to learn new things.
Pink circles instead of stars (My favorite hexcode, #E86666, the same color for all my personal projects)

On a side note, let's keep today's post sweet and short.

#30daydeveloper - Day 5 - Flick!

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

Flick works! Hurray!

Ok, actually it doesn't work perfectly just yet. For the most part it works, except in the cases where I flick the mouse too quickly, then the behavior gets a bit wonky.

What I am doing is keeping a historical record of the past 100 milliseconds of the mouse locations on the screen while the mouse is pressed. Then I am finding the deltas of each two points and adding them together to create a velocity for the object. Then I assign that velocity to the object when the mouse button is released.

I was able to get the idea for the above method from this post. (Thank you Rich from Phaser forums!)

Unfortunately, the method isn't perfect. For example, let's say I move the mouse to the right 500 pixels and then move it quickly a 100 pixels to the left, then the object will still move to the right upon release because the way I calculated was to average up the last 100 milliseconds.

In other words, let's just say that if I've been moving to the right (positive x-axis, positive x-velocity) for four seconds, then switch at the last second to the left (negative x-axis, negative x-velocity) the four seconds of positive x-velocity will overshadow the last second of negative x-velocity. Thus the object will move to the right upon release, although it should move to the left because that's the direction it was travelling in last.

I am satisfied for today though. You can't climb an entire mountain in one day, you have to take it one small step at a time.

On a side note, feels good to get this far already!

January 08, 2015

#30daydeveloper - Day 4 - Failure...

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

If you've noticed, I cleaned up my labels a bit more. Namely, I combined the "rants" and "random" labels together. In its stead I created a new label called "technical"--a label about all things technology. I didn't like how bloated my "1min's life" label was getting with all these new #30daydeveloper posts, so I decided to separate it out.

Yesterday I left off at the steps of what I thought was a large mountain. I wish that I could say that today, I climbed that mountain and took in the breathtaking vistas of the future. But, alas, today was the day that I knew was coming--the day I did not do any coding.

I expected to have at least a few days here and there of laziness or busyness. Thursdays are travel days for me so I am usually on an airplane for a large chunk of the day and am really tired when I get home. Unfortunately, because of my current newbie status, I still need the Phaser documentation available online to do any sort of meaningful coding of my game.

So I apologize dear blog reader, today was the first day I did not complete the coding challenge. Here's to a better tomorrow!

On a side note, it's kind of hard to think of a side note for every post when I have to post every day.

January 07, 2015

#30daydeveloper - Day 3 - Mouse Flicking

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

I can already feel my motivation waning as each day passes. But to be fair, just because my motivation for this challenge wanes doesn't mean my motivation to develop is waning. In fact, I've been working pretty hard on the other side project that I mentioned in yesterday's post. But I don't think I'm quite ready to reveal what that is just yet.

Anyways, back to my 30 day challenge. Yesterday, I figured out how to get simple collision detection working and learned a bit more about sprites and animations. Today I want to install WampServer so I can test my changes and tweakings much quicker as I don't have to wait for the git push to finish. (Noob alert!)
What the game looks like currently
Then I want to learn how to handle mouse interactions. That way I can mimic finger flicks and be able to move the stars around as I wish--bouncing them off walls or throwing them at the holes. (As was the original game-play) Have you ever seen the Facebook Messenger application? In the Messenger app, you can have little pop-up bubbles for each chat you're active in. These bubbles were the main inspiration for my game. I had so much fun just dragging around the bubbles with my fingers. I wonder if anyone else would as well.

Currently, the most extreme basic form of the game is already in place. Stars spawn from the top of the screen every few seconds and disappear if it comes into contact with the black holes on any of the four corners of the screen. You can also click on each star to drag it to a new position, but it won't alter the existing trajectory and velocity of the clicked star.

Therefore, I want to be able to drag a star and flick it and have it travel in that direction. Initial research has proven this to be a difficult task. Perhaps this will be the first mountain I need to climb?

On a side note, do you know what a GFY is and how it's much better than the prevalent GIF format?

January 06, 2015

#30daydeveloper - Day 2 - Phaser Documentation

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

I decided to give up on my challenge...

Just kidding! I haven't given up just yet. I think the fact that I am requiring myself to post a blog about my developing progress each day is motivating me enough to actually do the development work. We'll see how long this motivation will last--possibly only until the weekend when I will become super lazy and decide to stop. Hopefully not though.

This morning I read a Hacker News post that really inspired me. I am really fascinated by this notion of "passive income." In fact, it fascinated me to start a different project that may hopefully be successful sometime in the near future. But until then I shall focus on my #30daydeveloper challenge.

Today I perused the Phaser documentation to get a better feel for what this powerful framework can allow me to accomplish. Having completed this tutorial on creating your first Phaser game, I was able to get an initial understanding of how Phaser works. The first thing that struck me as interesting is the following line from the above tutorial:
It seemed that there are entire physics engines already built into Phaser itself. So this led me to wonder just exactly how powerful is this Phaser framework? After having tinkered with it and reading through the API documentation, I was blown away by how easy it makes every step of the game development process. Everything already had classes and functions created and easily accessed.

That means I might spend more time learning all the correct spelling and formatting of the Phaser nuances than actually coding the game. I might be spending a lot more time reading through the documentation than I had initially expected.

On a side note, check out what I have so far!

January 05, 2015

#30daydeveloper - Day 1 - War of Shapes

Today marks the first day of a new experiment I am doing. Dubbed the "30 Day Developer" challenge. I am taking the next thirty days to try to fulfill my two new years resolutions. For the next thirty days, I will create a working prototype of an idea I had for a mobile game.

Furthermore, I promise that I will...
  1. develop for at least an hour each day.
  2. blog about the day's events and any related events / thoughts.
  3. not give up!
Mock up of "War of Shapes" (name pending finalization)
The game is very simple (as I believe mobile games should be). Several colored balls drop from a chute onto the middle of the screen. The player then used his/her finger to swipe the colored ball into the matching colored corner. The game is meant to be played at an incredibly fast pace (think Super Hexagon). I also envisioned techno-trance music roaring in the background as the user madly swipes at his/her phone.

The game will be developed using the languages I am familiar with--namely JavaScript with some HTML / CSS. I also intend on utilizing the Phaser framework coupled with PhoneGap to wrap it as a mobile application. I don't have much experience with Phaser aside from tinkering around with its Hello World tutorial, and I have absolutely zero experience with PhoneGap. But isn't part of being a good developer the ability to learn quickly on the job?

Currently my work is hosted via Heroku using Node.JS at this link.

Through initial research and half-hazard reading of internet articles, I have determined that the actions of starting the development of a game and finishing the development of a game are the two hardest parts of the process. If that's true, then I am already more than halfway through--on only my first day!

I don't know what will happen in the next thirty days. If history is any indication, I will post an apology one week from now saying that I failed the challenge on day two. Hopefully that doesn't happen and I will learn a great deal about myself by doing this endeavor.

On a side note, please wish me luck!

Resolution 2015

I don't think I've ever carried out a new year's resolution to fruition. Not that I really cared or really tried, but I guess it's just something that we as a society decide to do each year. So I figured I do it again, but maybe this time, I blog about it so I am held semi-publicly accountable to my resolutions.

When I first started this blog back in high school, I used to really enjoy posting. Therefore, my first new year's resolution will be to recapture that enjoyment of blogging.

When I publicly launched my newly redesigned website and blog, I felt a sense of pride and accomplishment. Something I created with my own two hands and plastered on a slice of the internet for anybody to critique or admire! Therefore, my second new year's resolution will be to create something on the internet.

I don't think blog posts count as "something on the internet" because words are just words. I can type trivial nonsense about my daily life as a blog post, but I don't think that'll help either of my two goals. While I don't really know what it is that I want to create, I know that through repeated efforts, I will be able to hone in on that one special something that will be my passion.
  1. Recapture the joy I used to feel when blogging.
  2. Create something on the internet.

On a side note, I really admire the blogs where a developer posts about his experiences daily as he is working on his project. The latest one I've stumbled across is Twelve Minutes. I aspire to have the same level of motivation and discipline that this developer has.

January 01, 2015

New Year, New Me, New Website

Happy 2015 everyone! And a great new year deserves great new things. What originally started out as a small side project to stream-line my personal website turned into a giant overhaul of the entire design. Though I struggled with motivation throughout the whole process, but I am very proud of the outcome. Hopefully with my new website, I can kick off the new year with a fresh attitude and a happier outlook on life.

While I've done some initial testing for compatibility, I don't have access to all the different form factors of the modern tech world. Namely tablets and Apple devices (the Safari browser). So if you are browsing my website and notice something a bit off, then please email me a screenshot so I can troubleshoot.

Also if you've been to my website recently, please make sure to hit the refresh button so you don't have the old version still cached in your browser. But if you happen to be feeling nostalgic, you can see what the old version looked like at this link. If you have any feedback on what you like and what you don't like about the redesign, then please by all means email me your critiques, or post them in the comments section below.

On a side note, I wish everyone a merry 2015 and may all your wishes come true.

A Year in Review, 2014

The best precursor to today’s post would be the post I made about a year ago. I believe that it accurately captures how I felt at the time—full of optimism and energy, with nothing but positive feelings for my future and the year ahead. Now that it’s 2015, I feel disheartened and quite melancholy at the way things have turned out. Therefore, the purpose of this post and my review of the year 2014 is to get my thoughts in order and straightened out as I move into a new year.

Let’s start with my birthday—September 10. It was probably one of the most uneventful birthdays I have had in a while. I turned 23, an age that doesn't really mean anything except for being a Miley Cyrus song. But come midnight of my birthday, with my heart pounding, I was only thinking about one thing—my ex-girlfriend.