Now that my blog supports Japanese characters I can finally start posting the reading reports I’ve been accumulating. Over the next few days, a large number of posts will be back-dated across the last year and a half.

These reports were originally intended for 日本語と英語, a Discord community for people learning Japanese or English.

The long drought

It’s been about four years since I’ve posted regularly on this blog, and the reason is as simple as it is uninteresting: I really didn’t have that much to say. My former job, which dealt with anti-money-laundering and financial compliance, had me under heavy NDA to the point where I couldn’t discuss any details about the technology we were working with, let alone the day-to-day. We were in a continual state of slipping behind; always pushing back against management in an attempt to stop incurring technical debt, and always being rebuffed. It was a vicious cycle that I fed into by being willing to work extreme hours at the cost of my own mental and physical health — which only served to embolden upper management as they saw that we were capable of “working miracles”.

During this time of working long hours and fighting to keep RSI at bay, my motivation to work on personal projects was at an all-time low. I released the odd update for Glide but besides that, I did very little coding at home. Not only was I unable to write about my professional work, but my passion projects were so neglected that there was nothing to write about in the first place.

Something had to fill the gap left by my hobby programming, and by happy coincidence I had begun studying Japanese around the same time that I started my job. I made lots of missteps the first two years (more on that in a later post), but at around the two-year mark I had a breakthrough and started reading extensively, which turned out to be incredibly effective. I’ve been part of a reading club for over a year now (and have submitted a reading report every single week), but when I tried to crosspost my reports here, I found that my ancient WordPress install was still using a latin database charset and everything I typed would show up as ????????. Unwilling to risk losing my existing posts, I left it alone.

Last night I bit the bullet, nuked my entire website and reinstalled WordPress fresh. Fortunately my posts imported without issue (though some media references are still broken).

Since leaving my job I’ve had a lot of free time to work on personal projects; watch this space more details on that front. And with a shiny new database that supports non-latin characters, I should have a lot more freedom to write about what’s been going on with my life lately.

これからも、よろしくお願いします

Glide update: Tween overwriting

I’ve just added support for property overwriting to Glide, my Tweening engine for C#. This functionality exists in Actuate (a great Haxe library from which I’ve taken a lot of inspiration) and I’ve wanted it in Glide for a while now because it’s just so darn handy.

Imagine you start a tween off on its way:

// move image to (100, 200) over five seconds
Tweener.Tween(image, new { X = 100, Y = 200 }, 5);

…but then something changes, and now you want your image to travel instead to (X = 500) instead, and it should only take two seconds:

Tweener.Tween(image, new {X = 500}, 2);

At first this will work fine, but when the second tween finishes, suddenly the first one takes precedence again and your image will keep moving towards (X = 100). You could cancel the first tween, but that would also cancel the movement towards (Y = 200).

Now, creating a new Tween on an object that’s already being tweened will cancel the movement of any properties that are currently being tracked. In the example above, the new X tween would overwrite the old one, the original Y tween would keep on working, and there’s no need to manually cancel anything.

The old behavior is still available; just pass false to the overwrite parameter. I’m pretty sure that won’t be necessary in the majority of cases, but it does exist if you want it.

Stop looking to form gamedev teams

I frequent the Reddit /r/gamedev board, and it seems like every hour there’s a new post by someone looking to start a team to make some awesome game. The poster goes into great detail about the type of gameplay the game will have, lists games that inspired its design, and explains that he only needs a few people to help him out in order to get started.

He then goes on to list the roles that need to be filled; artist, programmer, audio design…finally wrapping up by describing himself as the “idea guy”.

I hate to sound cruel, but at this point I can state with absolute certainty that the project he wants to lead will never get off the ground.

One such topic was posted recently by a guy who wanted to make a game like Telltale’s The Walking Dead, which has been praised for its emphasis on branching storylines and player choice. I wrote a longish reply to help set him on the right track. Unfortunately, he deleted the post before I finished and I was unable to reply, so I’m copying it here.

My recommendation: stop looking to start a team so early on. It sounds like you have little to no experience with making games, and you’re going to need it. Teams that are founded by people with no experience end up falling apart and going nowhere.

If you want to get your feet wet, try out this tutorial for Twine. It’ll help you realize your goal and get a prototype together that is functionally the same as The Walking Dead in regards to choices and interactive storytelling.

Maybe partway through you’ll realize you aren’t actually interested in finishing it. That’s fine; it’s always better to ditch a prototype than a project you’ve invested tons of work into.

Or, maybe you’ll come up with something awesome and other people will look to team up with you and take it to the next level. That’s great! At that point you’ll be more than just the ideas guy; you’ll have demonstrated you have the talent and perseverance to stick through and see a project to the end.

Either way, it can only help you to start off by yourself. The type of people who would offer to join up with you based on your post are not the kind of people who have any serious experience.