October French Month: Week 1 Progress Update

Jon Lim - Duolingo Week 1

Original Post: October Project: Back to Basics with French!

After spending 15 minutes every day on Duolingo, every day for a week, I seem to be making solid progress. Level 5 in French, completed Basics, Basics 2, Phrases, Food, Animals, and working on Adjectives and onward.

The most difficult part has been setting aside time every night to learn, with the necessary quiet and state of mind to be receptive to what I learn. However, it seems like I’ve settled on a nice rhythm so far and haven’t missed a day yet.

You can take a look at my progress (and my stream!) in French on my Duolingo profile.

Here we go, week 2.

October Project: Back to Basics with French!

October Project: French with Duolingo

My September project failed miserably – I hardly had time to spend thinking about structuring an entire website let alone having the brain power to do so. I can’t blame anyone but myself but I’m course correcting and picking projects that are much smaller in scope and therefore much easier to keep up with!

October Project: Spend 15 minutes every day learning French on Duolingo.

My time in Paris, albeit short, was very fruitful. My French slowly came back to me and, despite trouble with vocabulary, I managed to hold my own while out and about. I’d like to brush up on my skills and get to the point where I can have decent conversations in French.

I’ll try to make weekly updates with a new screenshot of my progress, but otherwise, you can look at my sad, sad progress on my Duolingo profile.

My Advice to Young Me

I’ve spent most of my teens and twenties listening to advice. Follow your passion, don’t give up on your dreams, do what makes you happy… I bet you’ve heard it all. Not that I’ve become jaded or cynical, but that sort of advice never served me well.

I’ve compiled some advice that I would have given to my younger self that’s actionable, that doesn’t set unrealistic expectations, and makes you better as a person in general. While I learned most of this as an entrepreneur and while working for startups, I would wager that this applies to anyone and everyone.

Be Resourceful

When you aren’t given clear instructions or a clear path to the end, you really need to get creative about getting things done. Build genuine relationships, don’t panic, and don’t be afraid to ask for help. If you aren’t taking a well-defined path in your life, you will need to create your own and that means being open to trying anything and everything at least once, and you’ll more likely enjoy the ride too.

Be Resilient

You’ll hear no. A lot. Or things will come crashing down. Or anything in between.

You have to learn that this isn’t awful, and you just have to brush yourself off and redouble your efforts. No one ever nailed everything on their first time, and you shouldn’t believe that you are the one exception to the rule – just believe that hard work will lead you to success.

Be Balanced

No one ever gained more productivity by working more hours in a day or ignoring their health or ignoring their friends and family. Spend time with family, friends, and loved ones. Keep them in the loop – they will centre you, humble you, and encourage you to be even better than you are now.

Be Yourself

There will be times where you feel like you need to change the way you are to fit in, you think you need to fake a certain personality type to feel at home. Don’t do that. Nobody wants to deal with the facade you raise for the sake of fitting in. The right people will accept you regardless of who you are. *cue after school music*

Be Better

The last thing you should ever become is satisfied with yourself and not spend more time becoming a better person in some shape, way, or form. You must constantly work hard to improve your mind, body, and soul – read books, learn languages, try new things, brighten other people’s days, and work hard to fix your flaws. This is slow, this can be painful, but it’s completely worth it.

Together, this advice forms the mantra that I live my life. Sure, it can seem like common sense to you and I, but it really doesn’t hit home until the day that you’ve set out on an entirely new path, the day that you realize that you’ve failed, the day that your friends feel like strangers, the day you feel like a stranger to yourself, and the day that you realize that you haven’t grown.

Thanks for reading, hope you found it useful.

Goodbye Nights: The Start of Small, Actionable Projects

Goodnight Moon

There are 24 hours in the day, and I already spend around 20 hours a day sleeping, eating, commuting, or working, which leaves just about 4 hours for whatever it is that I can cram in there.

Those 4 hours are about to disappear.

Starting in September (that’s THIS month!), I will be attempting to create small little projects for myself. These projects have to be completed by the month’s end, and I am giving myself the entirety of the month to design, build, and deliver these little projects.

This month, I’ve been toying with the concept of board game discovery.

I’ve long felt that board game websites, such as Board Game Geek, do a great job of providing the core game data along with a vibrant, and growing community. However, they fail to do any sort of good job at showing me board games similar to the board games I most enjoy. Their Top 100 list is too broad and general (and, occasionally too hardcore) for my tastes.

THE IDEA: Build a website that allows me to look at games, and immediately view related games. For example, taking a look at Zombicide, it would show me other games like Pandemic (because of the co-op factor) or Last Night on Earth (because of the zombie factor.)

The specifics have to be worked out, but of course, and I have the rest of the month to do so! If you’d like to make suggestions or even pitch in (however that maybe,) don’t be shy and reach out. I’m always happy to have collaborators.

This audacious idea of building a project a month is a healthy mix of wanting to fulfill my goal for 2013 of building more content, and simply wanting to solve some of my problems.

Will I make any money off of this? Ideally, but I’m not banking on it.
Will I become famous for this? Probably not.
Will I have fun?

You bet.

Gaming Links of the Week: May 19 to May 26

Frozen Synapse

Oh hello, didn’t see you come in there.

Lame jokes aside, I’m doing my best to get back into regular writing. It’s quite long overdue. To get the ball rolling, I’ve decided to commit to collecting interesting reads focused on game design and development because it knocks out two birds with one stone: it helps develop myself for my day job, and it provides reading fodder for people interested in joining the games industry.

Why Frozen Synapse Costs Money – Paul Taylor of Mode 7 Games, the developers behind Frozen Synapse, walk through the logic behind making the iOS release of Frozen Synapse a paid app, rather than following the trend of free-to-play in the mobile space.

OPINION: Paul makes an incredibly good argument, but as the free-to-play market continues to evolve, I am sure we’ll see plenty of examples of well-designed, AND well-monetized games. Especially in the mobile arena.

Nintendo grabs money, control from fans promoting its games on Youtube – The Penny Arcade Report summarizes the debacle surrounding Nintendo using YouTube’s copyrighted content system to claim all the advertising dollars from popular YouTubers publishing Let’s Play videos for Nintendo games.

OPINION: Nintendo have their heads up their asses. Perhaps they don’t need any promotional help with their games, but I am a firm believer that Let’s Play videos are one of the best ways to get your game some exposure and love from potential fans.

Why every developer should play Aliens: Colonial Marines – A writer from Novy PR discusses why playing through Aliens: Colonial Marines is a set of lessons on what NOT to do in game development.

OPINION: Aliens: Colonial Marines is a complete disaster, and these lessons are a must-read. However, any reasonable game designer or developer who wants to create a quality product wouldn’t have done any of these in the first place.

Hands on with Runescape 3: a brave new world – Nick Wilson from PCGamesN describes his experience with the up and coming Runescape 3, built in HTML5, coming this summer.

OPINION: This was a post that I almost didn’t include, but Runescape is a soft spot for myself because of all of the time I’ve spent playing in the past, and I really want to see how far they can push the in-browser MMORPG with the new Runescape.

Letting the Player Find the Fun – Ben Serviss discusses the power of ‘Discoverability’ in gaming and provides a few ideas on doing discoverability better in games today.

OPINION: It seems almost cliché to make fun of today’s games because of their hand-holding nature, but it’s sadly true. I miss the days of delight when finding a not-so-obvious secret and learning to play a game just by… playing the game.

Unlock your creative potential: 7 steps to becoming a game designer – Ethan Levy provides, via Slideshare presentation (it’s rather long!), what is involved in being a game designer, and 7 concrete steps that aspiring game designers can take to actually become game designers.

OPINION: A rather long watch, and not entirely perfect, but it’s always good to take in the opinions of other, more experienced game designers and learn from what they’ve learned.

Welp, that was fun! I’m constantly on the lookout for more interesting reads in the gaming world, so this is going to be a fun post to continue.

Thanks for reading!

Happiest of Birthdays

Birthday Cake

Yesterday was my birthday.

Typically, I don’t acknowledge it or make a big deal, but yesterday was really fun. It was a work day, but it was just so… satisfying. Here’s the gist of it:

  • Midnight phone call from my better half
  • Stepping out of my door and sinking into a full foot of snow
  • Seeing the stark contrast between our game today and our game two weeks ago
  • Logging onto Facebook, seeing dozens of messages, and logging right out of Facebook
  • Awesome birthday cake (as pictured above) from the team
  • First win at Pandemic, after two false starts, during game night
  • Arriving home to find my Kindle Paperwhite had arrived, two days after ordering

Just a happy, happy day.

Thank you to everyone who spent the time to say hello and send their love, I will respond to everything. I swear.


Bridging the Gap: Classical Art Designed for Photographers (Video)

Adam Marelli:

I do that because I believe it’s possible. I don’t really… I don’t like to rest on the idea that people are just born artists, and that’s it. They wake up in the morning and they make brilliant work, I think it’s nonsense. If we look at every artist, every photographer, at their beginning stages, they stumbled. They made mistakes. Some of the learned a little more quickly than others, but there is a lot of information that can be absorbed and applied, regardless of what your subject matter is.

A bit of a lengthy watch, and I’m still making my way through it, but this quote from very early on in the video lets me know that I am in for some valuable information.

Happy Sunday!

2012: Year in Review

"Oh what's that, the new year?"
“Oh what’s that, the new year?”

Yes, you know it, it’s time for that ever clicheed end of the year blog post/review/brain fart!

Well, I didn’t do one of these for 2011, and I was only setting goals with my end of 2010 post, so I thought it would be nice to start the tradition of looking back on the past year.

2012 was quite the tumultuous year for me: I left an awesome job with the smartest people I know to attempt to make a product, floundering with no direction and focus, and taking another serious swing at furthering my marketing career. On the flip side: I’m in the best shape I’ve ever been, I dipped my toes into the world of video game development, and I’ve created a solid plan for what the next year is going to look like.

The Good

While not numerous, the bright spots of 2012 were there, and they are long term changes that started this year and will continue to be a positive aspect of my life going forward.

In March, I decided to get back into shape. During university and the working years afterward, I let my physique and physical health slip a little too much. Sure, I was still a force to be reckoned with on the basketball court, but I was starting to feel pudgy and slow, and even worse: I was starting to feel a lot of joint pain.

I re-started my membership at the YMCA and made a commitment: go swimming every weekday morning, and get at least 30 minutes in the pool and continuously push myself to go farther, go faster, and be more efficient. While I didn’t end up going every weekday morning as promised, I went for 115 days and swam a total of 77.9km, which is significantly more than I imagined I could do. The swimming waned near the latter half of the year, but it was because I was rapidly shifting from weight loss over to strength gains, and was spending less and less time in the pool and much more in the weight room.

In addition to consistent time at the gym, I changed my diet. I made a few simple changes: switch from white rice to brown rice, eat equal parts rice and vegetables for every meal, and no more drinking except social situations, limiting myself to two (or four) drinks at the most. This switch accounted for a significant portion of my weight loss, I am sure, because I lost about 20 pounds over 8 months, and have been able to keep it off despite my many binge days of both food and alcohol.

Besides physical health, I also made a dream come true: I built a video game from (mostly) scratch. My buddy Wayne Sang and I built a game for GitHub’s Game Off 2012 competition, creating Octocat Attacks in a little over a month using an open source game library called Flixel and an open source pixel art app called Pixen. Our game isn’t anything revolutionary, but for two rather inexperienced game developers, it was a fantastic experience.

Lastly, it took a while, but I seem to finally have a plan in place for the future. I spent most of this year really soul searching, because it was extremely difficult for me to accept that I could take “just another job” and not take personal stock in what I worked on. I am still narrowing down exactly what I’d like to do, but at least there’s a coherent direction: I want to work for a product that I personally find interesting, building and testing marketing campaigns to drive users and conversions for a sound business model. It still sounds like a lot of junk coming out of my mouth, but I’m working on finding that perfect fit.

The Bad

I spent much of 2012 feeling rather disparaged, and I will be honest: waking up in the morning was tough.

I left The Working Group because I needed that focus on products. It always felt like our products didn’t get the love they deserved, and it was thoroughly affecting my work on said products, so I decided to cut my losses early and move on. I owe those guys everything for giving me a chance and really believing in me and pushing me to grow and become a better person, and so thank you to the partners at TWG and the rest of the team for being one of the best experiences I have ever had professionally.

With my departure from TWG, a very cynical side of me came out. I distanced myself from the community, from friendships I had forged over the years, and from companies and products that I long supported. I can’t really pin this cynicism on anything in particular, I just know that I withdrew into my shell, and I am sure it negatively affected me in ways that I can’t even fathom.

With this cynicism, I managed to lose focus. For a long time. I spent at least 6-7 months in a state of complete shell shock, for lack of a better term, not knowing what would come next and what I even wanted to do. It feels really funny to even write this down, because it feels silly, but it was what it was: I felt like complete shit because I had no idea what was going on. I felt like I was twiddling my thumbs waiting for an idea to strike or for a company to come calling, and fortunately, these feelings of sadness and melancholy sparked what came next: determination to succeed.

This determination is still in its growth stages, and has always been around, but has been beaten to a pulp with my attitude this (and previous) year.

I also can’t discount any of the friends and family that stuck by me, despite not having a thing going for me and being completely abysmal to be with for most of this year. To the true friends who let me be sad and did their best to cheer me up, who knocked sense into me when I needed it most, and who cheered me on regardless: thank you. A million times thank you.

The Ugly

Focus. Still not enough of it. Ever.

What’s next for 2013?

Well, to be honest, I don’t exactly know.

I have laid out a plan to get from where I am to where I want to be, but plans and situations change. It’s something I’ve come to accept.

One of the first things I’m focused on doing: finding a place in the professional world where I fit.

It’s been a really difficult and humbling month and a half of job searches, but I figure that the only place to go from here is up. We create success through failure, right?

Regardless, if you read this, thank you. I appreciate you taking the time out of your day to read what my year has been like, and I hope you take the time to share your own thoughts of the past year. It’s always interesting to look back at the past year and see what memories and feelings jump out at you immediately, versus what requires concentration to recall.

You’ll also note that this was very non-personal. I like to keep the personal stuff to myself and a select number of people, and I hope you understand my reluctance to overshare.

Finally, one thing I definitely need to change in 2013? Writing. I don’t do very much of it anymore. Never mind photography and videography, so 2013 is going to be the year of content.

Happy New Year, friends and family, here’s to you and yours.

Issues with Push Notifications for iOS

iPhone Push Issues

With the news that the Gmail app for iOS was updated two days ago, I decided to give it a go as a replacement to the native iOS Mail app. And for the first time in three years, Google apps are dominating the lower app bar on my phone. (Pictured above!)

However, and this isn’t a knock against the app because it’s wonderful, I have a rather weird quirk about iOS Push Notifications: the notification badge remains despite being corrected elsewhere.

For example, with the Gmail app, if I see a notification for a new email pop up and I am at my desk, I will go ahead and look at it on my web browser, because why look at it on a smaller screen with a larger one available right? Unlike the native Mail app, however, if I clear a notification off of the device, the push notification (especially badges) still remain.

This isn’t just for Gmail, but it happens with Facebook Messenger, Fitocracy, Twitter, and every other app that uses push notifications to alert you of messages, interactions, and whatever else.

I’ll have to dig around a bit, but is this just an oversight by the app developers, or is this a technical limitation for push notifications?

Octocat Attacks: Our entry for the GitHub Game Off

Near the end of October, a blog post from GitHub caught my eye, entitled: GitHub Game Off.

In short, GitHub was running a competition for game developers to build their games, host their code on GitHub, and have it loosely based on a git concept (forking, branching, etc). We were free to build it however we want as long as it could be open source. As a life long gamer, it’s always been a dream to build my own game, and that’s a dream that’s been also shared by awesome guy Wayne Sang.

We had been toying around with the idea of building out a game idea that Wayne had several months ago, and before Game Off, we had decided to build something smaller to get us acclimated with each other’s style and capabilities. GitHub Game Off presented itself as an opportunity to finally make this happen with real deadlines and actual work needing to be produced.

That game? Octocat Attacks.

Octocat Attacks Title Screen

You can view the source code here, and the playable version of the game here.

Most of the rest of this post is going to talk about the development side of things, as there were quite a few things I learned along the way.

Creating the Concept

When Wayne agreed to build a game for the competition, we sat down and hammered out a concept pretty quickly. I suggested that we use Flash, as it was probably the fastest way to get up and running with a game especially with established libraries already available, and that we make a puzzle game because “it’s far easier to build a silly puzzle game than a full blown action game!

Just for the record, I was going to eat those words.

We sat down for several hours to hammer out the concept: it would be match-3 style puzzle, it would be about a giant alien attacking Earth, and various countries coming together to build separate parts of a robot to defend against the alien. The loose association with git was that each country was essentially working on its own “branch” of the master robot repo, and completing a level was that particular country “pushing” their part toward the final product. Each round was timed, and your score affects the quality of the piece that is created, with three different possible tiers in quality, which also affected your final battle with the alien.

I also did some research around the best Flash library to use to build games, and I landed upon what seemed like the most developed and easiest to get started with: Flixel.

There were a handful of other engines available, but Flixel was really far along in development and actually powered games I had heard of (like Canabalt!) and so I ran with it. Just as a side note, once you start using it, Flixel really feels like it was built more for twitch-based games rather than puzzle games, I was lucky to find the Flixel Power Tools set which extends the capabilities of Flixel even further, allowing me to take care of some of the issues I was having with sprites in Flixel.

Starting to Code

Once my environment was set up, I began to write a few test games just to get a feel of Flixel and Actionscript.

Have I mentioned that I haven’t really touched code in a serious way since 2009? Have I also mentioned that I haven’t touched ActionScript since 2005?

Granted, I was very familiar with programming in the first place, so the learning curve wasn’t very steep for me, but it was one thing to be figuring out what I can and can’t do with Flixel, and it was a completely different beast trying to do it while learning ActionScript 3.

However, I got a prototype up and running relatively quickly. According to my records, we started brainstorming on October 27th, and I had a prototype with a 5×7 board full of temporary game pieces that could switch places on October 31st. I was rapidly iterating on the first prototype, creating 90% of the game mechanics by November 12th: puzzle piece generation, piece movement (swapping places), match checking and clearing, and empty space refilling. Nothing was 100% as it should be for a completed game, but it was a very quick start.

Around this time, Wayne chipped in with his awesome pixel art, and the game was finally starting to come together.

Refactoring Mania

Regardless of the level of stability, I was rather unhappy with how game pieces were being moved around and being checked as matches, so I spent a good week refactoring everything. And I mean everything.

Suddenly the game became less jittery and resource intensive, I had created a queue for the checking and clearing of pieces, but I was still being plagued by my code to animate the refilling of pieces on the board. It was a problem that I am still having trouble with to this day, and I feel like I’ve smashed my head against it enough times that I may need to refactor the entire thing to provide a different approach.

Oh well, that’s what branches are for, right?

The important lesson I have is that, and I didn’t know this because I am a complete newbie, Flash and ActionScript 3 runs code synchronously (I think.) This was a problem with the initial way I was refilling pieces, because I essentially had a for loop that would check every single spot on the board, and if there was no sprite within that spot, it would start the animation to move all pieces above the empty square downward to fill the empty spot and create the new piece. However, if you have two (or more) empty squares on top of each other, the new piece creation happens simultaneously and you have stacked pieces in the same square.

As you can tell, I am not very experienced with puzzle game animations!

Octocat Emerges

On November 19th, Wayne sent me an email where he sketched out the alien: he had taken the Octocat, of GitHub fame, and turned it into the alien monster attacking the Earth. It shot lasers from its eyes, it was adorable, and I think it gave me a bit of extra motivation to see this project go all the way.

Alien Octocat

Aw, aren’t you a horrible little creature?

Final Stretch

It feels like I’ve left out a lot of details, but that’s because the entire month felt like a blur. I was constantly trying to fix our animation problem while building out the HUD (score, timer, etc) and the functionality to power the HUD. Wayne was churning out all of the necessary art assets for the game, and it was starting to come together.

Eventually, we decided that we weren’t going to complete the game in time, and we were alright with that. We were both willing to continue working on the game at a more leisurely pace after the deadline had passed, and that’s one of the side projects I am really looking forward to.

At the end of the day, the v0.1 build of Octocat Attacks, as in the one we’re submitting to GitHub Game Off, is a very incomplete game. We have an incomplete puzzle engine, no audio, and our content is far from complete.

However, we got it out there. We took the effort to start our project and bring it this far, and we’re continuing to push on. I’m very happy with how the game looks right now thanks to the hard (and amazing) work that Wayne has put into his pixel art, and our game is functional, which is a lot more than I expected when we started!

It’s been a really fun and educational experience to build a game from scratch, and you better believe that Wayne and I are going to continue developing games.

Octocat Attacks Stage Select
Octocat Attacks Gameplay