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.
Blog
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:
- Think Aloud: Testers need to verbalize their thoughts while using the product.
- Minimal Guidance: You refrain from explaining or guiding them throughout the process, unless they become truly stuck.
- Inquire About Decisions: Ask them how they think and why they clicked one button instead of another.
- Regular Sessions: Conduct playtesting sessions regularly and frequently—weekly, every other day, or even daily.
- Open to Feedback: Be open to disagreeing with what testers say.
- 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:
- Identify Design Flaws: Watching a user struggle with your design makes the issues painfully clear and obvious.
- Discover New Ideas: You often uncover new ideas by observing how others interact with your product.
- 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.
Lack of Oxygen
For the second day in a row, I climbed Griffith Observatory. I did it because I’ll be heading to Dallas soon and won’t be back until January. Having just gotten a new bike to dive into cycling, I felt compelled to ride.
I was introduced to the sport by my friend Coop at USC. Coop, who was part of the NYU Cycling Team during undergrad, has completed some impressive tours—Tibet and Trans-America, for example. As an avid cyclist, he took me to the USC Cycling Club and rode with me a couple of times. It didn’t take long before I fell in love with the sport, and soon after, I decided to buy my first road bike: a Specialized Allez.
Griffith is a hard yet rewarding ride. The route I take begins with a long stretch of flat land, circling around the base of the mountain. As you approach the foot of the climb, the road ends for cars—a gate blocks their path. Cyclists and hikers, though, can easily go around it. I like to rest a little at this point because the first third of the climb is the most brutal.
The road is steep, and it’s easy to feel tempted to turn back. You gain most of the elevation in a short period of time. Then, all of a sudden, the steep uphill becomes a descent—a welcome reprieve. The downhill section is short but sweet, with a few good curves to enjoy.
After that, the road begins to climb again, but this time it’s less steep. You spend about a third of the ride on this more manageable stretch. It gives you time to find your rhythm and mentally prepare for what’s next.
The final third turns steep again, and once more, it feels as though all the oxygen is being sucked out of you. Yet, strangely, this part feels easier. You’re so close to the top that turning back is no longer an option. The summit feels inevitable, and that knowledge alone carries you forward.

My Uncle
His name is Yuan Yuwen. He was a father, a son, a brother. A first-generation college graduate. A civil servant. And he was my uncle.
I used to pride myself on not being part of a big family. Knowing how complicated big families can be, I always thought it was for the better. For the longest time, I only really knew the people closest to me—Mom, Dad, my grandparents, and, of course, her daughter, my cousin. But for the longest time, I felt I barely knew him. He always seemed to be away, absent from me, from her, from us.
The truth is, I do have a big family. A cruel decade uprooted this family, and we drifted apart. And the truth is, I regret letting myself drift even further. But the truth is—I did get to know him.
I learned he was the first in our family to be admitted to college. He became a role model for his siblings, who followed in his footsteps and went to college as well. I learned he graduated, became a civil servant, and earned a starting salary higher than his father’s. I learned about the divorce that haunted my mom’s side of the family, an event so painful it became a taboo to talk about.
I learned he once served in the most remote parts of the country—a sacrifice that made him sick, along with his smoking habit. I learned he was a plain-spoken, observant, and intelligent man. And I learned he could be stubborn.
I learned he loved his daughter deeply. Despite his struggles, his daughter loved him just as much. I knew my father liked him. I knew my mom loved him. I knew his mom loved and cared him. He passed away one month before his granddaughter was born. I know he would have been proud.
What else is there to know? Except that he loved and was loved.
