• Accomplishments for March 21, 2020

    For those not in the know, the entire New York state is in a complete shutdown. Social isolation is practically mandatory at this time, and as a fairly social person, this makes the situation fairly difficult. I confess that yesterday was probably the lowest point for me this week, so as a way to heal myself, I figured I’d list what positive accomplishments I made this week. Hopefully, I can keep a log on weekly accomplishments while the shutdown is happening.

    Actually started applying for work

    Part of the reason why Friday in particular was a difficult day to me was that I was getting resume rejection emails. But in hindsight, this can be viewed as a good thing: for the last month and a half, I’ve been working diligently on developing a creative portfolio, demo reel, and resume. In a way, receiving rejection emails is a good indicator I’m finally past the job search preparation phase, and now in actual application submission stage.

    In addition, I’ve been keeping an archive of resumes and cover letters I’ve been sending out. Now that there’s a decent library of them, it makes it easier to compose them as I can mix and match excerpts of prior cover letters to cater them to a specific opportunity. It has helped me keep up to pace with submitting at least one new application every day. That’s a significant progress from where I started early February, and I should be proud of that.

    Improving social media presence

    One of my new years resolution for this year include improving my social media presence, and I think I’m making some significant headway there. My LinkedIn and Twitter has near-daily posts and engagement with my network in some form, and I’m slowly but surely getting suggestions from others on how to improve my job search endeavors. Given where I started with near-zero engagement, I think this is a pretty huge accomplishment.

    My Github activity has increased noticeably as well, though it recently dropped due to the amount of time job search is taking over at the moment. In theory, with a better archive of resources I have available now, I should be able to reduce the time spent job searching, and return back to certain open-source projects I wanted to start again.

    Started researching into Unity’s own beta projects

    Lately, I’ve been hitting a significant wall with Air Flip Drive: I’ve acquired some technical debt and design problems. Some show-stoppers include:

    • Nauseating and unhelpful camera.
    • Unengaging track design (generated by a procedural algorithm).
    • Performance problems.
    • No online multiplayer support implemented.

    I’ve actually strongly been debating about developing the game back from scratch again given a number of fundamental problems. To help with that decision, I’ve finally started exploring into Unity’s sample DOTS project to check its stability. Alas, it isn’t as stable as I have hoped.

    I still have a few more Unity projects I’d like to research into before returning to game development again. In particular, I’ve been meaning to break-up the Template Unity Project into smaller packages, both for reducing coupling, and to improve compilation time. Anything to accelerate this development process would help, as well as letting me improve Air Flip Drive indirectly.

    Keeping a regular exercise routine

    As I’m no longer working in a coworking space, the extra time has given me an opportunity to exercise more often. It’s still only a short, around-an-hour-long walk around the now-empty neighborhood, but I think it’s immense progress from when I simply didn’t exercise at all.

    Now have a decent livestream setup

    Since the TVGS Sunday streams needs to be held outside of our usual studio, I’ve finally made preparations in my very own apartment to start streams. This also opens the opportunity to start working on my own project livestreams in the next few months, which I’m really looking forward to.

    Those were the accomplishments I’ve made so far, what about yours?

    Read more: Accomplishments for March 21, 2020
  • #WeeklyGameMusic: Ascension (Dear Esther)

    Around five years ago, I used to post video game music with the hashtag, #WeeklyGameMusic. To be honest, I’ve been really wanting to revive the series again, so here it is: new week, new game music. While I originally stuck to only one music per franchise (this series is about introducing the highlighted game to the reader as much as its music), it’s been so long since the last post, I’ll be resetting my past queue and allow myself to revisit some old franchises I’ve already introduced in this blog series. Anyways, where else to start then Dear Esther‘s Ascension, composed by Jessica Curry.

    Dead Esther is most well-known for kicking off the often derided Walking Simulator. Despite its criticism, though, I do believe the indie developers, The Chinese Room, answered a genuinely interesting game design question: what happens when the player is given conflicting information while they attempt to progress the story? How will they react when the story contradicts what one observes, and even itself? The game randomly choosing pre-written narration is a central part of the player’s experience as they make an attempt to piece together the clues they’re given. And, at least as a game designer, I find that fascinating.

    Dear Esther is available on Steam for Windows and Mac.

    Read more: #WeeklyGameMusic: Ascension (Dear Esther)
  • Website Update and New WordPress Theme

    As obviously noted on the front page, I’ve been restructuring this website to appear more like one would expect a creative portfolio to look like. Originally, the redesign was in preparation for Game Developers Conference (GDC), but while the event has been postponed, I still believed a redesign was well worth the effort.

    Like most sites, this site is powered by WordPress, and originally used Twenty Seventeen as the theme. Alas, Twenty Seventeen isn’t made for creative portfolios, so working with it in the past was a bit frustrating. This year, I’ve committed to developing my own theme, Game Dev Portfolio (based off of Underscore), to create a reactive website more closely aligned with what’s expected from a creative portfolio. In addition, I’ve also developed my own plugin, the Rรจsumรจ Block, to create the timeline seen in the Rรจsumรจ page. Both are open-sourced on Github under GPL, version 2. Feel free to use it for your own purposes!

    While I could probably make a couple more enhancements to the theme, I believe the current theme and plugin has enough features to be considered stable. That said, if there are any recommendations on content to add to this website, I’m definitely interested in hearing about it. Let me know on the respective Github repo! Happy blogging!

    Read more: Website Update and New WordPress Theme
  • Looking into 2020

    Looking into 2020

    Starting in mid-2014, I’ve made a serious attempt at going independent with the funds I’ve gathered from work. Naturally, it follows that my goals has been to become self-sustaining. The theme for 2020, however, is stability in a different way: I’ll be dedicating a significant portion of my time improving my online presence and seeking for a full-time position, such as fleshing out this portfolio site, updating my rรฉsumรฉ and LinkedIn profile, etc.

    As one can probably guess, things haven’t gone as planned over the last 5 years. I’ve lost a significant amount of resources, including finance, health, and mental energy. It’s unfortunately been a significant contribution to my seasonal depression early this year, and has forced me to reevaluate a number of responsibilities I’ve accumulated over the last few years. It’s time I start pivoting to other more urgent priorities, and bowing out other duties to give way for other.

    First, I have resigned from Tech Valley Game Space (TVGS). A non-profit game-making community and coworking space founded back in October 2014, I’ve been one of the key people to help grow the organization since it first started as a mere Meetup group. I’m incredibly proud of what I was able to achieve as the elected Executive Director during my tenure from April 2017 to, well, this month (February). Some notable accomplishments includes:

    • Executing the New York Digital Gaming Hub grant subaward for 2018 and 2019
      • Help execute New York state’s goal of encouraging more game makers to work in the Capital Region by improving TVGS benefits, establishing new events, and promoting the local region abroad.
      • Budgeting equipment, outsourced tasks, travel, and other business development tasks to build a more stable non-profit and providing more meaningful benefits to members.
    • Lift Off: Diversity Incubator
      • A six-week long program dedicated to mentoring underrepresented minorities and women to learn how to make their first game. Up to seven applications are accepted by the event organizers to be paired by a mentor that’ll meet weekly.
      • My involvement includes research, documentation, gathering resources (both people and materials), finding speakers and mentors, budgeting, preparations, and conducting the event.
    • Protostar Prototyping Pitching Contest
      • A one-day contest of teams pitching their game ideas to a group of industry experts on an opportunity to receive cash prizes to fund their project. The program is intended to both provide funding to deserving projects, as well as give an opportunity for local indie developers to receive expert feedback on how their pitch went.
      • My involvement includes budgeting, setting up necessary technical framework for the judges, preparations, and conducting the event.
    • And so much more!

    I did this, while still working as an unpaid volunteer (by choice), not unlike my original co-founder role. While I still believe in the TVGS goals of making game development accessible to everyone, and remain optimistic they’ll grow beyond their grassroots origins, alas, I still need to put food on the table. As sad as it sounds, it’s time I leave the community to better hands, as well as improving my own well-being.

    Second, I’ll be working on creating a more focused online presence this year. This includes establishing new online profiles, having a better content creating schedule, and deleting a number of profiles that either have been a serious source of stress, or I have not had the time to dedicate to. I’ve been aware that my time at TVGS has made it look like I have “disappeared” off the face of the internet, which I hope to start amending this year. First, I’m redesigning this website to put a stronger emphasis on the portfolio and (eventually) its videos. I also hope to start setting up a weekly development live-stream this year, both to encourage myself to keep a steady game development schedule, as well as slowly build a community and audience. For the profiles I will be deleting or removing myself from, I’ll be posting a prior notice on when that will happen. For example, I’ve already posted I’ll be closing my Patreon page sometime this month.

    My final goal for this year is to return my focus to game development again. As much as I love networking and speaking with people, I’ve had a strong itch to finish a few projects I left hanging for quite a long time now. My first goal is to split up the Template Unity Project to smaller Unity Packages, both to make it more versatile, and reduce the size of future game projects. I then hope to return to Air Flip Drive, and re-examine some of its game design flaws and technical debt. In the meantime, I am indeed looking for paid full-time position. If you’re in need of a gameplay programmer or a Unity developer, don’t hesitate to contact me.

    Here’s to a new and wonderful year!

    Read more: Looking into 2020
  • Stop Saying You Need To Know Math To Program

    Imagine that youโ€™re going to attend your first math class. Youโ€™ve asked everyone you trust about math, and theyโ€™ve told you that you need to be good at English before entering. And youโ€™ve studied everything you can about English. Youโ€™re prepared; you can take this “math” thing everyone was talking about. Confident about your abilities, you look up the black board, and see this:

    Solve:
    1 + 1 = ?

    Well, uh, yes, you know what “solve” means, but what does “+” or “=” stand for? And why are there so many numbers?

    Itโ€™s only until years later that you realize the only reason everyone recommended learning English before getting into this profession because in the real world, youโ€™re often translating word problems into math equations. This leaves you disgruntled. Sure, knowing English is useful if you already know math, but it didn’t help in the slightest when you’re learning it for the first time. It feels like everyone lied to you, despite their best intentions.

    The above example might sound rather absurd, but it’s exactly how I felt when I first learned programming. Everyone insisted that I improve my math skills because programming has strong similarities with math. Nothing could be farther from the truth. While it’s common for a programmer to translate math equations to code, knowing math does not help you learn coding any faster. Much like how English and math are two very different subjects, so to is math and programming.

    So what is programming? It’s about writing a set of instructions in a language a computer understands. Take the following example:

    Console.WriteLine("This is the first line.");
    Console.WriteLine("This line of code prints the second line.");
    Console.WriteLine("Let's print more lines!");

    This C# code above will print 3 lines on the console. Can you guess what those lines are? As a quick hint, the part, “Console.WriteLine” basically tells the computer that it should print the information between the two parenthesis in the console, before making a new line.

    If you guessed the following answer:

    This is the first line.
    This line of code prints the second line.
    Let's print more lines!

    Congratulations, you’re already on your first step in learning programming. No math needed!

    The only difficult part of this job is that the language a computer understands — store value here, recall said value, do this if that, etc. — is very limiting, and requires the programmer’s smarts and attention to detail to cover language’s the limitation. Coding requires you to know what conditionas are (true vs false), and when to use loops (do this 10 times). Programming also requires parsing out the state of stored variables after running through a set of instructions. In short, programming is a whole lot of logic, a subject most math courses don’t teach. Don’t worry about solving math problems: let the computer do that for you.

    So I ask from other programmers this: stop saying to those who doesn’t know programming yet and wants to learn coding that they need to know math. This gives the impression that programming is about solving 342 x 853 in their head. It gives the impression that they’ll need to combine 3 tangentally-related equations to solve a single word problem, when in the programming world, it’s actually better to leave those equations separated. Worst of all, it gives the impression that good mathematicians are automatically good programmers. None of these are true, and it all makes it unnecessarily harder for everyone to learn coding. Instead, say what is actually accurate: know a little bit of logic before learning programming.

    Read more: Stop Saying You Need To Know Math To Program
  • Anpanman, the inspiration of One-Punch Man

    Anpanman, the inspiration of One-Punch Man

    Note: this is a cross-post from a Facebook post I made.

    Seeing that my Facebook timeline is being filled with a lot of One-Punch Man‘s existential crisis, I should probably talk about Soreike! Anpanman (ใใ‚Œใ„ใ‘!ใ‚ขใƒณใƒ‘ใƒณใƒžใƒณ), a show I grew up with and what One-Punch Man is clearly based off of. They both fight against aliens with their signature one-punch, and their baldness and fashion style are eerily similar. Plus, anpan (red-bean-paste-filled bread) are delicious, so yeah, let’s talk about my childhood.

    Anpanman is a children’s anime. Yeah, I don’t have a particular strong feeling with this one like I would with Doraemon or Crayon Shin-chan. It’s clearly aimed at just above toddler and younger elementary kids. Every episode starts with the titular character, Anpanman and/or his friends flying around town filled with anthromophic animals and…more (noticeably annoying) characters with food as heads. An accident would occur, and the hero/heroine swoops in to the rescue. This ranges from something as dangerous as a bridge breaking apart while a bus full of kindergartners was crossing it to something as petty as a kid who’s hungry. For you see, Anpanman and his friends, Currypanman (curry-bread man), Shokupanman (white-bread man), Melonpanna (melon-bread girl), etc. has superhuman strength and hilariously bad substance-related weakness (typically water). A western audience would immediately figure out what these characters are based off of. That said, they also have one more interesting quirk: their heads, being bread, is both edible and directly related to their strength. This becomes an interesting character study when Anpanman doesn’t hesitate to help that hungry kid by feeding him a piece of his own head, thereby weakening himself. Additionally, it works as a Deux Ex Machina because baker Uncle Jam and Batako-san seems to bake an endless supply of Anpanman’s head replacements (they also have a truck that doubles as a helicopter and submarine, so this isn’t as out-of-ordinary as one would think). They literally unscrew his last head to replace it with a new one. Either that, or shoot the new head from a distance, hence knocking off the old head and screwing on the new. Very metal.

    This universe’s equivalent of Lex Luther is an alien named Baikinman (germ man), who also has a bratty but significantly nicer partner-in-crime, Dokinchan (heart-beat girl?). Baikinman is a bit of a mad-scientist, capable of making awesome robots in one night. He’s also childish, spoiled, and selfish, which combined with his mad genius, proves to be a deadly combination. His absolute insistence on destroying manners and consuming as much candy as possible (he also gets cavities a lot. Dude doesn’t learn) is what often causes trouble around town. That, and he hates Anpanman for his one-punch hits (Aaaaaaaan-puuuuunch!).

    As with most super heroes, Anpanman is a classical straight-man, and Baikinman is the one-dimensional, psychopathic brat. Instead, it’s the side characters that are the most interesting. For example, Dokinchan, while selfish, immature, and often cooperates with Baikinman on his greedy schemes, gets very annoyed with Baikinman temper tantrums and frequent lies. This, combined with her crush on Shokupanman, often leads her to back stab Baikinman and even show some good will in a couple episodes. Currypanman is like Donald Duck: good at heart, but has poor anger management. He has the ability to spit acidic curry, which makes him comparably more destructive than Anpanman, so any episodes starring him is usually about the struggle of staying happy while dealing with annoyances that comes with fame.

    Anyway, for those interested in seeing how Japan interprets super heroes aimed towards kids, Anpanman is actually pretty interesting cultural study. They do have an unusual focus towards proper manners and traditions, as seen by it’s opposite, Baikinman. That said, if you expect fast-paced action, blood, and gore One-Punch Man is known for, you’re going to be disappointed.

    Read more: Anpanman, the inspiration of One-Punch Man