Blog

★Bullies

In early April, the Department of Homeland Security under the Trump administration abruptly and unjustly terminated my SEVIS record. SEVIS is a database used by DHS to verify whether a student is eligible to study in the United States. Losing SEVIS status means an immediate loss of legal standing, the inability to enroll in classes, and the risk of deportation. I’m only able to write about this now because the administration reversed its decision three weeks later.

When I received the news on April 7th, I had already been studying in the U.S. for nearly a decade. I first came here as a high school exchange student and attended Poston Butte High School, a public school in Arizona. I was the only Chinese student at the school, and the cultural shock was intense. Many other exchange students at different schools returned home early, but I barely managed to hang on and adapt.

That year was the first time in my life I discovered my potential. Despite the cultural differences, I found myself better suited to life in America than back home. I decided to continue my studies in the U.S. and transferred to Valley Catholic High School in Portland for the remaining two years. There, I was able to take AP classes and challenge myself academically. Switching from a large public school to a private Catholic school gave me one of the most unique perspectives on American education and culture. I was shocked by how unequal America is, especially given how wealthy the country is.


Ironically, I ended up taking almost all the required courses for a CS degree anyway. But at the time, I lived by the motto “leave no way out,” so I deliberately prevented myself from pursuing a double major. It’s hard to say in hindsight whether that choice was brave or simply naive.


UCSC’s AGPM program turned out to be an incredible experience. It was (at the time) ranked among the top 10 game design programs in the country, with outstanding faculty like Robin Hunicke and Elizabeth Swensen. In fact, when I later decided to apply to graduate school, it was Professor Swensen who encouraged me to apply to USC and kindly wrote me a recommendation letter. I remain deeply grateful to her. At UCSC I made two amazing platformers that I remain very proud of WALL-B and Fragments of You. And a slew of mediocre stub games.

Another Professor I own a lot to is Professor James E Davis. He let me joined his computer graphic research lab - AVIS - as an undergraduate research assistant. He once told me “I have a very promising career ahead of me”. That and what he’s done for me motivated me until today. I had the opportunity to lead an undergraduate student research team under him. He also sponsored me to compete twice in Apple Swift Student Challenge and won both time.

You may noticed I didn’t mention any of my high school teachers. It’s because I became pretty depressed during high school, so I ended up blocking most of my memories from around that time. Sadly, I forgotten most of their name as a result. Thank you! My 10th degree chemistry teacher, you were excellent. My French teacher — thank you for being easy on me. My 11th degree Math teacher Kipp Johnson, I actually remembered your name because how much I revered you. My English teacher, you are so warm and gentle, you are the reason why I still have a habit of reading. My World History and Government teacher, I hate that you made me memorize the name of every country on earth. And my AP CS teacher, sorry I hacked your website and stole the midterm. Last but not least I’d like to thank my host families Jennifer, Jonathan and Veronica.

After UCSC I was admitted to USC as an Interactive Media & Games Division MS student. I was supposed to come to the U.S. in Fall of 2023. But during that summer, I was diagnosed with ulcerative colitis (UC) and had an infection so bad I had to be hospitalized for three months three. I ended up missing the Fall 2023 window.

After I healed, the ensuing year almost became a year of heartbreak. I led a team to raise money from VC, we made it very far only to be excluded at the last round. I was invited to Cupertino by Apple to attend WWDC only to not being able to make it. And throughout the entire year, I was convinced I will not be able to pursue my degree at USC.

When I finally entered the U.S. on August 2024, I cried in the LAX.

When I learned the news that my SEVIS was cancelled few weeks ago, I was furious (I still am) — I have endured so many hardships in the past decade. And throughout the entire time I followed the American law. I had no arrest, no charges, and no criminal history. Only to be cancelled without any notification or reasoning.

I learned about due process and rights in America in 11th grade thanks to my government teacher. I learned the same way all American learned their right.

This year, I learned those rights doesn’t apply to me. As long as the executive branch have the power to arbitrarily terminate any students’ Visa. We do not enjoy freedom of speech nor due process. What happened to me is cruel and unusual.

In fact, the existence of this very article may put myself at risk. But if there is one thing I learned in America, that is — you stand against bullies.

Lastly I like to thank everyone that helped me through past few weeks, it was genuinely difficult, and this time I like to remember them before I forgot. Thanks Professor Danny Bilson, Professor Peter Brinson, Professor Debbie Yuen, Assistant Dean Marcus Anderson, Professor Mark Bolas, Cooper, Justin, Hanwen, Aria, Jerry, E, Chellie, Jason, Ari, Miles, Anthony, Tielong, Xiao, Ebay, Rae, Lisa, Kiwi, Chuke, Olivia, JC, Wenxuan, and everyone else I couldn’t name here. Thank you for making me feel like I belong.

What happened to Only Paranoid Survives?

I am halfway through Tae Kim’s The Nvidia Way, and it’s the 2007 to early 2010s. Nvidia has introduced CUDA and worked with companies like Adobe and Autodesk to enable parallel computing to massively make their applications faster. And I just can’t stop thinking — Oh my god, how is Intel letting this happening. It’s absurd that it’s Intel’s Andy Grove coined the term Only Paranoid Survive, and 1 CEO later that’s all down the shitter.

Needlessly to say, Intel had another giant miss during the same era — iPhone. The most common version of the Intel’s iPhone story is Apple has approached Intel to design a iPhone chip and Intel passed/not winning it. Apparently, according to Tony Fadell . This narrative was not true at all, Apple never considered Intel since their chips were so inefficient. But the point still stands, Intel happily stand on the sidelines and let Samsung then TSMC took this one.

Here what happened, Intel saw they had deep moats in CPU for decades. So they ignored all the emerging market segments that had lower profit margins and niche addressable market. And when those segments become too big to ignore, they wrongfully believed they can easily integrate new capabilities (integrated graphics) or easily scale down. They allowed their competitors to survive and strive from below. Ironically, the exact same thing happened to Intel in the 80s. When the Intel had to withdraw from their then main business DRAM and focus on logics. Intel forgot Only Paranoid Survives, and proceeded to getting killed in Mobile, GPU, PC, Cloud, and AI.

Learning to sing alone

In the past, learning to sing alone is one of the biggest hurdles for me in regard to guitar. I can never find the rhythm. Also the moment I started to sing, my playing become messy too. This time though, I decide I want to overcome this hurdle. After two days of practice that turned my fingertips to black. I finally be able to sing alone A Horse With No Name poorly while playing guitar. You can follow my progress here.

Establishing a Movement Shooter

My friend Coop and I are building a movement shooter together. Shooter as a genre is very popular, and never lacks well designed game. So it is challenging to build something new, novel, while maintain a good sense of design. It’s gonna be a long journey before we get to there. In the meantime, I would like document all the design thinking behind this game. Below is one of the first pieces of deign document written for this game. Cooper wrote it as an email while he was on plane from New York to Los Angeles.


Yuhao:

After Peter’s lecture on turning our limitations into features of the game, I realized the best approach is to eliminate any heavy art-related elements. I was also thinking about the mechanics from your previous game, which relied heavily on physics. Right now, in our current design, “physics” mainly show up when a player inputs something, and there’s only minimal interaction with the environment. That got me wondering how we could introduce stronger physics-based interactions between players—and also how to address one of my biggest concerns: finding a compelling gameplay reason for players to move so fast or chain their movements to maintain momentum, aside from just the thrill of speed.

When I look at movement shooters like Doom Eternal or Quake, I notice Doom Eternal doesn’t really emphasize going “very fast,” but rather continuous movement for dodging bullets and chaining weapon usage. Meanwhile, Quake focuses on speed to grab resources quickly and launch surprise attacks. We both love moving fast, maintaining momentum, and especially chaining different movement mechanics to get massive bursts of speed. But I’m still not fully convinced we’ve found a unique gameplay motivation for that speed beyond the usual “surprise attack” or “resource race.”

Then I thought about Ace Combat—the dogfights between two high-speed fighter jets. In those games, you don’t get to fire your weapon too often, and controlling your position is key. That concept of a dogfight reminded me of Smash Bros., where aerial movement is crucial to return to the stage after being knocked out. I started wondering if that dogfight idea could serve as the main goal in our game. It seems promising, especially if we replace the traditional health bar with a knockback meter.

So here’s the idea: a Smash Bros. + movement shooter hybrid. Picture a 1v1 match on a floating island arena with no walls, so players can fall off. Each player has a different ability—say, Player A has a grappling hook, Player B has an air dash—and they only have their bare fists as a “weapon.” Instead of health, there’s a knockback meter that increases each time you get hit, and the higher it is, the farther you’ll be knocked back. The objective is to knock your opponent off the island.

As the match starts, both players dash toward specific areas to pick up weapons or equipment—things like an air-blast gun (similar to Lucio’s right-click in Overwatch), a grenade that creates walls (like Sage’s wall in Valorant), or a throwable jump pad to alter the level for the whole game. Each item has limited uses (maybe 1–3), so players have to keep searching for more. You can only carry one or two at a time. The “first phase” is grabbing these items, and the “second phase” is the dogfight, using everything you’ve collected. If we make the movement system flexible and momentum-based, I think we’ll see a lot of cool, emergent plays.

The game cycles between these two phases—collecting and fighting—until a “knockout phase” occurs. For example, if Player B’s meter is high and they get knocked off, they’ll have to use every ability and gadget to get back. That tests how well they know their own tools. If they recover, the fight goes on; if they fail, they fall and lose, or we could do a Smash Bros.-style stock system.

I believe this setup is straightforward and addresses my concern about motivation for fast movement. I’m not entirely sure if everything will work perfectly, but it combines what we both love, and it seems like a fresh take. I don’t know any shooter that does this, and it fits our goal of pushing everything to the limit instead of making something mediocre.

Coop

Learning to strum again

haven’t touched, or seen, my guitar, or any guitar, since the pandemic. Now that I have her again, I decided to learn a song —— A Horse With No Name by America. The song is very friendly, I was able to pick it up pretty quick. The song only has two chords Em and D6/9, I still remember several chords from back then, so I had no trouble with those. But it turned out I can no longer keep a beat while strumming. It took me roughly an hour to learn this strum, and with a little more practice I am now able to do it somewhat consistently. I tried to sing alone but I struggle to find the rhythm. That’s problem for another day. In the meantime, here is what I can do so far ⭐️.

Game testing and software testing

One of the things I am always wondering is why don’t software do playtesting like the way gaming does. Being in both fields, I found user experience research in game and software are quite different:

In software, testing usually happens in productions, either during official or beta releases. These tests are highly data driven, large scale, and often invisible to the participants. Takes A/B testing for example, a method that compare two (or more) design variations, rolls out to hundreds of thousands of live users; key outcome metrics like conversion, click rates, and etc. are measured to highlight any statistical significances. And afterward product manager would analyze these data and provide insights and assumptions into potential behavior changes, as well as actionable decisions and tasks. While these testing are great at revealing users preferences. They often fail to provide larger context in design; require you to have a sizable audience to start with; and they can stifle innovative idea as user preferences could be wrong. For example, another form a testing common used in software is user testing, And if we had conduct one of this on smartphone users back in 2007, asking whether they preferred BlackBerry’s physical keyboard or newly created iOS’s on-screen keyboard. Odds are, the physical keyboard would have won by a landslide, given its familiarity and track record. But had those early tests dictated the product direction, the breakthrough of the modern software keyboard might never have taken off.

Which is why I believe that playtesting—the favorite methodology of game designers—should be adopted in software development as well. The goal of playtesting is to provide designers with an empirical understanding of their product. Playtesting begins as soon as you start building and continues throughout the entire development and design process.

These tests are conducted on a very small scale, often involving colleagues, friends, and family members. The rules are straightforward:

  1. Think Aloud: Testers need to verbalize their thoughts while using the product.
  2. Minimal Guidance: You refrain from explaining or guiding them throughout the process, unless they become truly stuck.
  3. Inquire About Decisions: Ask them how they think and why they clicked one button instead of another.
  4. Regular Sessions: Conduct playtesting sessions regularly and frequently—weekly, every other day, or even daily.
  5. Open to Feedback: Be open to disagreeing with what testers say.
  6. Team Involvement: Ensure that you and everyone on your team are present to observe the testing.

That’s all there is to it!

For those immersed in data-driven design, it will be difficult to wrap your head around why playtesting is an effective tool without actually trying it. However, I can share why I believe it’s invaluable:

  1. Identify Design Flaws: Watching a user struggle with your design makes the issues painfully clear and obvious.
  2. Discover New Ideas: You often uncover new ideas by observing how others interact with your product.
  3. Enhance Team Engagement: Your team becomes more engaged with the product through the playtesting process. I can’t tell you how motivated it is to watch user responds to your work. And it lights people asses on fire when they realize the product have major flaws.

Simply, it will just tell you which design needs more work and motivate you to do it. Moreover, the 3 points I just gave you are what I personally found valuable. If you want to learn more I recommend this video by Game Maker’s Toolkit:

Complicated V.S. Complex

Recently, I ran into an interesting explanation of how to distinguish a production process that’s complicated versus complex. A complicated process is a linear process that takes many steps to make, and each step is difficult in its own right. And a complex process is a system that consist of many simple modules, and it’s difficulty lie in the integration between these modules.

I learnt this definition from my Professor Peter Brinson, and he was teaching about game production process. For example, a narrative game would often be a more complicated process and is difficult to pivot once you get started. You can’t really pivot a story and expect to keep most of the script. Whereas, a platformer would be complex and easier to pivot half-way through. You can change your core mechanics and rest of your system would work just fine.

But I found these concepts are useful for other process too, like startups. Generally they can be divided into two categories. Those who tackle complicated problems (like semiconductors), and those who tackle the complex problems (like software).

Burnout

One of the most valuable lessons I have learned during my health break is how to deal with burnout. Burnout is often a sign of anxiety catching up with you. The tasks in front of you are monumental, so you become unmotivated, overwhelmed. Which further decimated your productivity, which further sucks you into this vicious cycle of crippling anxiety. For me, the key to dealing with is being patient. You are in quick sand and the harder you fight the deeper the hole becomes. Instead, you need to have faith that you will become afloat again if you just take a break and leave things be.

2025

Happy New Year Everyone! Despite the trends that’s happening around the world. I remain more optimistic than ever about what this year could bring. I am convinced that this year is gonna be kind to me; to Sunny and I as a couple; to my family and I. And great things ahead for all of us. My optimism is not entirely unfounded. And I would like to elaborate at a later date. But for right now, I wish everyone a good and happy 2025!

Theme System Journaling So Far, and 2025

I’ve been using the Theme System Journal for over a year now. I can’t recall the exact date I started, but I know it’s been helping me align my life with what truly matters to me. Over the past year (2024), I chose The Year of Fitness and Continue Reading as my theme (Yes, my theme sounds clunky and kind of greedy -two big goals in one-, but it worked for me), and I’m really happy with the progress I’ve made. I feel a lot less anxious these days.

Of those two goals, fitness was where I saw the most success. Because last year, I faced a bunch of obstacles in life, and there was a point where I nearly gave up on my fitness goal. Journaling helped me hang in there and not throw in the towel.

The reading part was a bit harder, but the same thing goes — I was really passionate about reading in 2023 and wanted to keep that going this year. But my newly re-ignited love for programming kept me so busy I barely made time for books. Even so, the theme pulled me through. I’ve managed to read 21 books this year—actually more than last year, so that’s something to celebrate.

For 2025, I’m once again mixing two areas of focus: The Year of Better Writing and Planning.

For the first part, ever since I restarted my blog late last year, I’ve been searching for my “voice” in writing. I want to express myself well, and the only real way to do that is to write a lot more. But I didn’t write as much as I wanted to this year. So, that’s my first focus.

As for the planning side, my thinking goes something like this: I’ve already filled up most of my schedule. If I want to do more, I have to be more strategic and plan better—maybe squeeze more productivity out of the same 24 hours. That’s why it’s my second big focus.

Truth be told, I haven’t been using everything the Theme System Journal offers. I mostly stuck to the yearly theme and didn’t really do the weekly trackers or the daily journaling part. But because 2025 is about planning, I’ve decided I’m going all in.

I like to start my yearly theme a bit early, so I am happy to report —— for the past two weeks, I’ve been traveling for the holidays while testing out the new system. Normally, travel completely ruins my productivity, but this time, I stayed on top of things. I’ve already done more than last year, even though I’m technically on vacation. It feels good to have a system that supports me rather than stress me out.

I’ve started using weekly trackers, and I’m shocked by how helpful they are for keeping me headed in the right direction—without the usual anxiety that comes from perfectionism or rigid goals.

I’ve learned two tips that help me a lot:
1. Make your goals slightly out of reach. That way, you’re kind of “expected” to fail sometimes, so you won’t be obsessed with a perfect record.
2. Dedicate one hour specifically to knocking out tasks that are on your tracker but aren’t yet habits. It’s an easy way to make incremental progress.

Lastly, daily journaling has been a nice surprise. It aligns perfectly with my goal of writing more. When I first started, I didn’t overthink it. I just wrote about whatever. Over time, it grew into a space where I can reflect and be a bit creative. Sometimes, it turns into something I’m happy about. Like this one.

© 2026 Yuhao. All Rights Reserved. Made with love.

Privacy