At work we have a moderately sized React project that uses Webpack to build. We have a few customizations for Webpack, mainly to try to get it to go a bit faster, but I decided to look into Vite primarily because I want to try to improve our build speeds. I was surprised at the amount of obstacles we encountered along the way, so I’ve tried to lay them out here in case anyone else is looking to do the same.

Read More...

Inspired by recent work on an automatically-generated HTTP API I took a look at our WebSocket API. We had types defined on our backend, and some were shared by our frontend thanks to the typescript-generator plugin, but it was a hodge-podge of hand written TypeScript types and for loops with casts to try to ensure the frontend and backend stayed in sync - in other words, we had a lot of code that described the plumbing rather than doing useful things. Here I’ll demonstrate how we manage to share WebSocket calls, listeners, and types across our frontend and backend, ending up with a single clear and concise interface for us to use.

Read More...

At work we have a Java backend that exposes HTTP endpoints for our frontend to call. Some do simple create/read/update/delete, some do specific requests, and there are a bunch to remember with many different types of objects that are returned. Because we rely on these API calls so much, we’ve put a lot of effort into tooling to make the frontend/backend communication as seamless as possible for our developers. Here is a brief overview before I go into detail:

Read More...

Docker is becoming the de facto standard for packaging web applications, and Docker Compose is a pretty simple way to deploy it. One downside is that during a deployment, the old version is taken down before the new version is deployed, causing a brief service outage for clients:

Read More...

So: You’ve got a nice fast Windows desktop, and a nice portable laptop, and you want to edit code in IntelliJ on the laptop and run it on the desktop. Seems easy enough, right? VS Code does this pretty much out-of-the-box with its Remote Development feature. But for (apparently complex architectural) reasons this is not so easily done on JetBrains IDEs, so instead they’ve released software called Projector that allows them to run the IDE on the server, but rendering the GUI over HTTP to your web browser. Sounds a little crazy but it works quite well!

Read More...

For the last few weeks I’ve been in COVID-19 self isolation, and on unpaid leave, so things have been pretty quiet. My parents, on the other hand, own a small orchard and are classed as essential personnel, so they’ve been hard at work picking plums, grading them, packing, and (as the market is closed) hand delivering fruit around the region, and sometimes shipping boxes further afield. A lot of the manual labour is unavoidable but the sales and payments seemed like a lot of wasted work, so I thought I’d try to help with a simple website where customers could order fruit.

Read More...

Two successful kiteboarding sessions over the weekend! Had a fair bit of stopping and starting but eventually found the groove and wow, the feeling of being pulled over the water at high speed by the wind is like flying.

Read More...

Apex Legends is the latest in a genre nearing saturation, amongst “battle royale” shooters like Fortnite and PUBG. I was struck at just how “good” it felt immediately upon playing it, and after reading Derek Yu’s twitter thread on “jank” I started thinking about viewing games through the lens of what they do new and what they do well.

Read More...

A week with a client looking into some of their software has had me thinking about complexity. Some older code uses Spring Boot, which was a simplified approach to the complexity of Spring Framework, which itself was a response to the complexity of J2EE. And yet it’s still a giant hulking piece of software to use, and while there may be 100 great features it provides, if we only need 2 of those I think it’s worth remembering that they don’t come free.

Read More...

First week at the new job is done. Three days of intros and meetings and trying to remember names, then two days on-site with a client. I always enjoy getting a new laptop and setting it up just right, but Friday discovered we’d have to work inside Windows VMs to be able to access this customer’s intranet. Oh well.

Read More...

The last week of joblessness is over - tomorrow is my first day at a consulting agency. Hopefully a year from now I’ll have met a lot of people in the Melbourne tech scene, will have learned a lot more (new languages and technologies?) and will be well on the road to becoming a senior developer.

Read More...

Inspired by Alice Bartlett, this is minimal expectation blogging.

Read More...

Sometimes a fresh new idea doesn’t require the invention of something genuinely new, but just the composition of existing disparate concepts. (In fact, I’d wager that’s more common than not.) Slay the Spire, the debut title from Mega Crit Games, is a perfect example. Take a deck-building mechanic (very popular right now in titles like Hearthstone), add a rogue-like randomly generated map to explore (also very hot right now), and build that on top of a very simple turn-based combat game and you’ve got something that feels both familiar and yet like a new experience.

Read More...

Somehow I spent the first thirty years of my nerdy life without playing Dungeons and Dragons. After listening to the first season of The Adventure Zone I decided I’d been missing out and convinced a small group of friends (with even less experience than I with pen-and-paper RPGs) to spend an evening imagining themselves in a world I’d made up.

Read More...

I’m a sucker for games about digging. I don’t know what it is, but there’s something satisfying about going deeper and deeper for more precious resources as the danger increases them dragging your haul back to the surface.

Read More...

Often conversations about recent video games center around what a game does that’s new, as if new experiences were like a breath of fresh air. In the case of Steamworld Heist, there is little that is really novel, but the humble execution of the game as a whole feels genuinely refreshing.

Read More...

Yesterday I attended my second gamejam, an eight hour event where teams form to work on small games together around some loose themes, which this time were Black & White, Rockets, and Masks.

Read More...

It’s early to say this, and maybe a little crazy, but I can’t help but put Twenty, a simple game from Stephen French, in the same category as Tetris. Not just in the way it plays - though it shares that methodical feeling of clearing a space that transitions to crowded panic - but in how it takes just a single mechanic and a simple interface to create something truly elegant and timeless. Twenty deserves to be played for decades to come, just like Tetris.

Read More...

Phantogram always puts on a great concert and at the last one I was struck by a black and white animated backdrop of concentric circles giving the illusion of a slithering snake. As a challenge I decided to see if I could recreate this effect in a web browser. After starting out with Snap.svg I realised I could probably do the whole thing in CSS.

Read More...

Inspired by Shamus Young’s Procedural City series, where he builds a randomly generated city set at night, I decided to attempt to recreate his metropolis in Javascript, using Three.js, a library I’d experimented with briefly but never really used.

Read More...

A little background: @horse_ebooks at some point was a spam Twitter account that followed some algorithm to tweet odd amalgamations of sentences that people decided was cute or interesting. Eventually it turned into a weird art project thing but that’s not too important - eventually people took the idea and built their own little Twitter bots that did something similar.

Read More...

Nuclear Throne, an early access retro-styled action game from Vlambeer, has held my attention since I bought it last week. The randomly generated levels maintain balance, the game is challenging but rarely unfair, and the game looks great, but what is most impressive is the ‘juiciness’ it provides.

Read More...

Kerbal Space Program is a) the game NASA should have made long ago and b) something that should be in every classroom. The game centers largely around two modes: build a spaceship out of somewhat realistic parts (rockets, fuel tanks, solar panels, crew pods, etc.), and then attempt to launch your rocket into space, where you can orbit your planet, travel elsewhere, perform a spacewalk or whatever you’d like. The only failure state is crashing (or your rocket exploding from poor design or overheating), and goals are whatever you decide.

Read More...

Last week I went on a bit of a road trip of California, starting with a three day hike through the Sierras. My friend Janet and I had a little experience with odd hikes as kids but it’d been a fair while since we’d done any long treks, especially overnight, so oddly we decided to do a somewhat strenuous 30 mile hike over the course of three days. My dad had recommended it as one of his favourite hikes in the Mammoth area, and he’d mentioned something about hot springs, so we were sold.

Read More...

A while ago I saw amBX online, a lighting system for your computer that changes colours depending what is on screen. Kind of cool but not really necessary. However, after receiving my Phillips Hue lights, I wondered if I could hack together the same thing.

Read More...

Once a quarter, we hold an ‘Innovation Week’ at Sonos, where employees are mostly free to take a break from their regularly assigned work and make something cool that’s Sonos related. Sometimes these hacks can make it into future products or software releases, sometimes they are more funny than useful, sometimes they end up not even seeing the light of day (a week isn’t a very long time it turns out!). For me it’s a great way to put my rusting programming skills to use and learn a thing or two while I’m at it.

Read More...

There are plenty of video games that match the bullet points on an imagined box for Hotline Miami. Plenty of senseless killing, fast action, gratuitous violence - it sounds like just another game action game, so why does it feel so different? It’s hard to rave about the game without using phrases that are so overused they just sound generic (heart-pounding, gripping), but I think they are accurate.

Read More...

I’d only briefly played a few of the XCOM games, many years after they were released, and dismissed them pretty quickly as not my type of game. I picked up the new one after hearing so many good things about it and enjoying the demo, and it immediately hooked me. XCOM: Enemy Unknown is an old fashioned game that feels very modern, and I love how successful it’s being for doing so.

Read More...

I don’t even know why I played so much Words With Friends. The more I played the more I became disillusioned with the core game: they took Scrabble, took out what made Scrabble great, and then put it on the iPhone. No longer was it a game of smarts and vocabulary, impressing your friends with big words - ‘is that even a word?’ - but instead a game of repeatedly putting down every combination of letters on the triple word score until the game decides that you’ve somehow come across a word. But every time I’d get that notification that my friend played a turn I’d have to go back and play.

Read More...

Buying groceries with roommates, sharing bills, and splitting the check at restaurants seem to be a problem just waiting to be solved. Having to carry around cash is a pain enough, but now you’ve got to split change, remember who owes whom… I felt like, in our digital age, surely there’s a simple way to keep a tab between friends?

Read More...

I managed to convince half a dozen friends to see The Master with me over the weekend. I knew it was reviewing well, it was a Paul Thomas Anderson film, and it apparently included some kind of critique of Scientology, so I decided I wanted to see it. I also avoided trailers and previews to try to go in with as few expectations as possible - though, considering I ended up bringing friends with the promise of ‘this movie is supposed to be great,’ perhaps this wasn’t such a good idea.

Read More...

I meant to post about this earlier, but the whole controversy surrounding Steam Greenlight’s $100 fee took the attention away from what I consider to be the core issue with the service. Greenlight allows the gaming community to vote on which developer-submitted titles they wish to see on Steam, but I’m not sure it’s as successful as Valve is hoping. The reason (and I’m still working on the phrasing of this) is: people are stupid. Individuals may be smart but you get a large enough group of people together and you’ll see some pretty dumb things happening.

Read More...

What’s the old saying about a good engineer being done when everything is taken away? I’m certain you can apply that adage completely to Terry Cavanagh’s games. Another that would fit quite well is ‘easy to learn, hard to master.’ I think a game that defines itself so simply and elegantly as Super Hexagon or VVVVVV leaves little room for flaws and leaves a much stronger impression as a quintessential game.

Read More...

An excellent thing happened at PAX this year: Valve’s second annual Dota 2 tournament, The International. Hosted just a few blocks away from my hotel, and with free entry for PAX attendees, it was easy to attend and I’m very glad I did. I’d seen the odd camera-pan-over-the-crowd from online broadcasts Starcraft 2 tournaments and thought to myself, boy, those people are serious nerds. However, it didn’t take long in the crowd before I was cheering at the top of my lungs with the crowd.

Read More...

I spent a large amount of time wandering the indie game section of PAX, checking out the widely varied games and chatting to developers. One that especially caught my eye was Brendon Chung’s new title, Quadrilateral Cowboy. I’d heard about it via the Idle Thumbs panel earlier that day, and had played a couple of his previous titles; Atom Zombie Smasher and Thirty Flights of Loving most recently, so I was eager to play, and was not disappointed.

Read More...

Dark Souls

I managed to avoid the whole Demon Souls/Dark Souls series by not having a Playstation 3, but heard enough about the games that I was awfully excited to see the sequel come out on PC finally. Both games seem to be very much love/hate affairs, with many gushing over their brutally unforgiving gameplay while others throw up their hands in disgust after dying over and over and over again.

Read More...

Firstly: I’m loving 10000000 , a retro-styled iOS puzzle RPG hybrid. It plays like Tetris Attack with RPG mechanics - on the top of your screen you trudge through an eternal dungeon, and you match keys on the bottom screen to open chests or swords to slay monsters, for example. You’ll die a lot; each gameplay session only lasts a few minutes, which is perfect for iPhone gaming.

Read More...

I picked up Zineth, a free student-made punk-styled game, after someone mentioned it on Twitter and was surprised to remember just how fun navigating a virtual space can be. The game involves skating, sliding and leaping through an ultra-stylized 3D world in some kind of mash up between Tony Hawk and Tribes, and while it sure feels rough around the edges at times, it can be an absolute joy to play. The sensation of speed and powerful movement ends up making me feel like a barely-in-control superhero.

Read More...

Once in a while we all feel a bit disillusioned with video games, like every big new title that comes out is really digging us deeper into some cultural backwater. Next time you feel like that, fire up The Walking Dead, the latest adventure game from Telltale Games, loosely based on the comic books of the same name. I played through the first two episodes and was totally engrossed, despite previously thinking I despised all adventure games.

Read More...

I can’t really remember where I came upon it, but somehow I ended up with a pretty fascinating iPhone app called Chromatic Vision Simulator. It’s a very simple app that utilises the camera - point it at something colourful, select a variety of colourblindness, and you’ll see the colour-limited version on screen. It does it job without any fuss and even features a few nice side-by-side comparisons.

Read More...

I’m not a big fan of horror films or books most of the time, but I enjoy horror games - Alan Wake, Dead Space, ever since the original Aliens mod for Doom I’ve enjoyed the scary situations they provide and I think the difference is in a game I’m in control. Feeling afraid and facing it can be satisfying, and it avoids the whole ‘oh god don’t split up’ thing that happens so much in horror films when you just wish characters would be smart.

Read More...

After being briefly interested in Spec Ops: The Line thanks to its unusual setting in desert-reclaimed Dubai I promptly forgot about it until strong recommendations started popping up on Twitter.

Read More...

In previous dabbles with physics in video games I discovered that simply adding velocity to position each frame sometimes ran into issues with certain simulations, like a rope or force-based graph. The helpful crew at Stack Exchange explained why this was so and pointed me to some better solutions.

Read More...

I’m about halfway (maybe a bit more?) into Max Payne 3 and it’s undoubtedly an enjoyable game. It runs very well, feels like a great port on the PC, and all in all is an impressive effort to make a modern sequel by a different developer to one of my favourite games.

Read More...

On the trip I read Ready Player One by Ernest Cline. School doesn’t leave much time for reading anything not class related so it’s great being able to have some spare time again. I used to read a ton as a kid, and it sort of feels like I’m not as good at it anymore. I think that might be a shorter attention span, but who knows.

Read More...

I’m on a road trip from Santa Barbara to Portland, which should be the best time to write but the drive has given me writer’s cramp.

Read More...

I was pretty darned excited for Prometheus when I heard about it. Another Alien-ish movie from Ridley Scott? Sign me up. I always struggle a bit with movies like this: I want to know about it and see the trailer and get excited but I also want to avoid knowledge of the film so I can go in as free of expectations as possible.

Read More...

It’s really easy to dismiss television at crass lowest-common-denominator content. Usually this belief arises from turning on your television at nearly any given time, but that’s like typing in random web addresses to see what’s on the internet. Despite being raised on (by?) The Simpsons I never watched a lot of television shows until getting enticed by Battlestar Galactica, then Lost, The Wire, and now Game of Thrones.

Read More...

My sister Naomi just reached the end of her six month sailing trip. After much searching, she bought a Columbia 23 with trailer for a couple grand and spent a summer preparing her. In October she crossed the border and put Medusa in the water at the top of the Sea of Cortez, and set off down the western coast of Central America, meandering down on her own or with whatever crew she could scavenge until reaching El Salvador before the hurricane season began.

Read More...

Well, that headline sure makes the game sound boring, doesn’t it? It’s deliberately deceptive to be honest because Diablo III, after a decade or so in the making, has some pretty high expectations. That said, some people have been disappointed with certain aspects of the game and I think it’s because they had unreasonable expectations for the game.

Read More...

Today, the day of Diablo 3’s release, I’m stuck with an unworking computer thanks to a BIOS update gone wrong. So, while everyone else is either slaying demons or staring at login errors I suppose I’ll talk about my recent experiences in Day Z, the ARMA II mod that’s getting a huge amount of press lately.

Read More...

I signed up for the COMET program at school that connects existing transfers to potential transfers, so students interested in UCSC can talk to someone that’s currently attending in their major. A couple of friends are attending, too so I thought I’d put down my advice on how to make the most of university here.

Read More...

I have two projects due this week and two midterms next week so all I’m going to say is: Go see The Cabin in the Woods. It’s a non-traditional horror movie, and I hardly like horror movies at all. That’s all the detail I want to get into because it’s really a movie you should go see with as few expectations as possible.

Read More...

From a game design standpoint, Dota 2 seems like an objectively bad game. There are several design decisions (that I suspect are mostly due to the series’ origins in the Warcraft 3 engine and its restrictions) that appear from the outside to be pretty darned stupid. Somehow it all comes together for a clearly very successful game, though.

Read More...

I had a chat with my friend James Hawkins about The Atlantic’s article on Jonathan Blow that has been getting a fair bit of attention lately. Blow seems to take his games very seriously as a medium to convey a message, and looks with disdain on the many mainstream games that aim for entertainment instead. As a result he’s seen as a bit pretentious to some (not much of an insult in gaming as Chris Remo points out) or even arrogant, but I think he recognizes gaming’s potential and feels frustration at being the lone (loud) voice on the topic.

Read More...

Mmm, if there’s one thing I love it’s procedurally generated games. Roguelikes are probably the best example of this, having been around since the 80s, and I enjoy them but am usually overcome by their complexity. My favourite one is Spelunky, featuring a near-endless sidescrolling adventure downwards towards more treasure and more danger, but I recently discovered a new one, TowerClimb.

Read More...

I’ve wondered what makes certain games ‘feel’ better almost as long as I’ve noticed it. I asked Reddit what they thought and it made me realise that it’s even harder to answer this question people seem to have different definitions of what game ‘feel’ is anyway. Something about the controls being responsive, cohesive interactions with appropriate feedback, a consistent aesthetic, as well as a half dozen other indicators factor in, apparently.

Read More...

I’ve been playing Dota 2 lately, and it has made me think a lot about losing (cue laughter). Losing is part of any competitive game but there are steps that can be made to soften the blow.

Read More...

I took CMPS161 this quarter, a class about data visualisation. In addition to several lab projects we had a quarter-long personal project, which was essentially to take some data and visualise it in an interesting way to gain some kind of insight to the data.

Read More...

The day I found out I was going to UCSC was one of the most disappointing days of my life. I had planned for years to go to UCSB, and when they turned me down it meant leaving all my friends, my family, and various other plans for a place I’d never even been to. As move-in day neared I talked to a few friends who had been there who made me feel better, and the campus seemed cool when I visited for orientation, but it was still with a strong sense of trepidation and regret that I packed all my stuff up and left Santa Barbara.

Read More...

Last Friday I was lucky enough to see the first screening of Indie Game: The Movie at the Rio Theatre with some friends. I’d pushed a few of them in to coming and was worried - I did the same thing once with Max Payne (the movie, that is) which obviously ended poorly. Turns out the movie was great and everyone loved it!

Read More...

In 2005-ish I went through a serious Dance Dance Revolution phase. My girlfriend, my two cousins, and I had a setup where we progressed through increasingly more expensive pads as we wore out the last ones, hooked up to a computer with a thousand or so songs, connected to an old TV. Many late nights were spent with high pitched J-pop blasting out the playroom windows (had to be open; it gets bloody hot playing just a few songs).

Read More...

When a consumer desires digital content, they have two choices available: pirating or purchasing it. People may never consider one of these options, or they may not even realise that they have an option at all, but I’m talking about your common internet-literate digital consumer.

Read More...

Lately I’ve been playing some games that aren’t video games and it occurred to me how some self-balance in a very useful way, allowing experts and newbies to mutually enjoy a game.

Read More...

Over the weekend I finished Uncharted: Drake’s Fortune. It’s a very
well constructed game, ensuring I never got stuck for too long while
gently prodding me in the next direction. I liked the Indiana Jones-ish
vibe I got from the well acted and written cutscenes, and especially
the subtle mutterings Nathan would make to himself through the game.
I always loved it when he’d say something like ‘Aw, not again’ when
encountering an ambush of enemies just as I thought the same.

Read More...

In one of those weird urges, last week I decided to play through God Hand for the third time. I’m normally not one for difficult games but God Hand’s mix of beat-em-up combat amongst ludicrous characters and setting managed to get me hooked before.

Read More...

I just wrapped up the main story in Batman: Arkham City, and according to my save I’m 35% of the way through the game. This is a good indicator of just how much stuff there is in the game - extra skills, side missions, Riddler tokens, challenge levels, all available to find and unlock through the city. I’ve heard from many players who just love this stuff (and if you are that kind of person then you will love Arkham City) but I wonder if there’s a tipping point where it becomes overwhelming. I picked up the immediately obvious Riddler tokens, and unlocked the grapple boost because it seemed like a useful mechanic, but rarely sought out any objectives not immediately related to the main story. I did enjoy how the Riddler almost made fun of the achievement-hungry when he first introduced himself.

Read More...

Amidst ultra-dry classes like Compiler Design and Computational Modeling, last quarter I took a class that I really enjoyed: Introduction to Computer Graphics. It effectively was an openGL class, going over coordinate systems, transformations, shading techniques and such, but what I really enjoyed were the labs. They probably had a similar level of coding to previous CS classes, but something about being able to get a visual result so immediately was very satisfying. Plus it’s easier to show off a 3d model to your friends than a sort algorithm, I suppose.

Read More...

I missed the initial excitement for Everyday Shooter, after it was released on Playstation Network, a platform I didn’t own a console for. But I’d heard enough about it to remain interested and when it finally saw a Steam release I picked it up on launch.

Read More...

I’ve put about ten hours into the Battlefield 3 beta now, after getting in once it went public, and my general feeling about the game has changed from eager anticipation to mild disappointment and frustration upon release to now feeling pretty confident about the game. It definitely has some flaws but it’s captured the excitement and fun of the previous games well.

Read More...

In Winter 2011, I took CMPS20 at UCSC, taught by Arnav Jhala. The course title is ‘The Game Design Experience,’ and involved forming a team of four students (with a grad or teacher as mentor) and creating a game from scratch using XNA, for the eventual submission to the Imagine Cup. Penguin Pull was my group’s creation: a retro-styled arcade game involving dodging obstacles and picking up penguins, while keeping your ice floe in the shade of clouds as you traveled onwards.

Read More...

If you’re a student, you can get a bunch of software from Microsoft for significantly lower prices. The idea is that if Microsoft can get students to use the software, they’ll go out into the industry with those skills, leading to companies purchasing more MS software.

Read More...

Many universities and colleges require a Unix coding environment for students, with SSH access for remote editing. If you’re familiar with vi or emacs then that’s probably all fine, but for the children of the GUI era, something a little more modern may be in order. With Notepad++ you can code as if it was on your machine, and with Putty you can run your code it as if it was on your machine. Here’s how:

Read More...

WordPress has a maximum upload size for files which may be annoying for anything but images and small documents. The limit comes from an internal PHP setting, which can be changed with access to the php.ini file.

Read More...