Game Design, Programming and running a one-man games business…

First site visit to the in-construction solar farm!

Today we drove 8 hours (4 hours from my house to site, 4 hours back) to visit the solar farm for the first time since we actually started work, and only the second time ever. We visited the morning after we got planning permission, but that was about 9 months ago now, which is crazy but true. At last, stuff is actually happening, and I wanted to see it for myself!

Amusingly, one of the benefits of visiting the site while its being built is there are two signs that say ‘site traffic’ which you can follow. Its REALLY hard to find otherwise. It’s so tricky that even with the postcode you can go the wrong way. Last time we blundered around for ages looking for the right field, but luckily this time we could just follow signs, even the amusingly amateur ‘solar’ sign to make it clear we are at the right field :D.

Apparently the gate just next to this had to be widened to allow some of the bigger trucks to get into the site. We then have all the excitement of our new road! We built this road, and it will be there as a permanent access road to the finished site. Its not exactly a tarmacked motorway, but its actually not too bad.

At the end of this road we have a temporary construction area, where a metal interlinked floor has been laid down (which took a whole day), so that HGVs can drive in, and reverse and get out again without destroying the field or getting stuck in mud. Apparently you can put 100 tons on each section of this stuff.

That green box is actually pretty cool, its a diesel generator plus kitchen plus office space all in a snazzy prefab unit that you can just drop on site as a kind of instant construction site HQ. There were plans on the walls showing the site layout, and the most important pre-construction hardware: a kettle. There are some other shipping containers used for secure storage for stuff like the inverters, when they show up, and are currently packed with sacks and sacks of panel-attachment fixings.

The rest of the site consists of lots and lots of rows of metal posts, and 2 tracked machines that basically repeatedly drop big heavy weights in a controlled way to bash metal posts very VERY firmly into the soil:

These are the main posts that form the chunkiest part of the frames. They are taller than they look in this picture, and pretty thick. There are also connecting pieces that will define the slope that the panels will rest on, then finally the rails that will connect them all together so that panels can be attached to them. At the moment, its just a matter of bashing the posts in. They are aiming to get 90 of them done per day, and we need a lot of them. I was told we have another 6 people joining the team on Monday, and a week later, the panels will be on site being fitted. Its going to move pretty quickly from here on. Also, they are in the middle of building the ‘stock fence’ which will be used to manage sheep so they can graze the other half of the field during construction. There is also a ‘deer fence’ that will form the entire perimeter of the site, and eventually some metal gates and a substation! Also CCTV masts.

Thats me trying to look like I do this all the time. Those two rows of cones define a zone of the field we cannot currently work on, because an 11,000 volt power cable is overhead. You really don’t want the pile-driver top to accidentally touch it! Soon, (but annoyingly we are not sure when), that power line will be buried by the DNO in a trench around the exterior of the site, and re-emerge near the substation. Currently, people are working either to the east of the line, or the west, but ignoring the middle bit until the cable is gone. Its a logistical pain in the ass, but its what we have to do in order to be working now, rather than wait for the DNO. We have waited long enough, so its really time to get building now.

I think these are the connecting frame bits, rather than the posts, but I’m not 100% sure TBH. There is a LOT of metal on the site. There is a surprisingly amount of stuff required to build a solar farm that is not solar panels. The big problem you have is longevity. Sure, you can bang any old metal post in a hole and screw a solar panel to it, but the issue is ensuring that its going to stay solid and upright for 25 years (40 preferred), despite driving rain, baking heat, and the occasional incredibly strong wind. Plus sheep scratching up against them, and god knows what else. Everything is pretty industrial, because it has to be built to last.

So… In terms of how physically big it is… its actually pretty big. I half expected to visit the site and go ‘oh its kinda small really, a bit trivial now I see it’ but no. Its going to be pretty awesome. The site looks impressive when you are there even just as a bunch of cones and posts. When I go back and see all the posts in, and some of the frames, its going to be super awesome. With panels and a substation it will be hilarious.

I suspect everyone who does stuff like this is very nervous with the first project, and obviously almost everyone experiences imposter syndrome to some degree or another. Despite that, today’s site visit went really well. I am very happy with the progress, it was good to meet the site manager in person for the first time and talk to him and other people there. I also forgot that its a REALLY nice spot. On a sunny day, the views from the site are really nice. Most solar farms are places pretty flat and boring, but this one is unusually hilly, and surrounded by other hills. I’m definitely excited to go back and see more!

What I learned from fixing a dumb bug in my graphics code

I’ve recently been on a bit of a mission to improve the speed at which my game Democracy 4 runs on the intel Iris Xe graphics chip. For some background: Democracy 4 uses my own engine, and its a 2D game that uses a lot of text and vector graphics. The Iris Xe graphics chip is common on a lot of low end laptops, and especially laptops not intended for gaming. Nonetheless, its a popular chip, and almost all of the complaints I get regarding performance (and TBH there are not many) come from people who are unlucky enough to have this chip. In many cases, recommending a driver update fixes it, but not all.

Recently a fancy high-end laptop I own basically bricked itself during a bungled windows 11 update. I was furious, but also determined to get something totally different, so got a cheap laptop made partly from recycled materials. By random luck, it has this exact graphics chipset, which made the task of optimising code for that chip way easier.

If you are a coder working on real-time graphics stuff like games, and you have never used a graphics profiler, you need to fix that right away. They are amazing things. You might be familiar with general case profilers like vtune, but you really cannot beat a profiler made by the hardware vendor for your graphics card or chip. In this case, its the intel graphics monitor, which launches separate apps to capture frame traces, and then analyze them.

I’m not going to go through all the technical details of using the intel tools suite, as thats specific to their hardware, and the exact method of launching these programs, and analyzing a frame of a game varies between intel, AMD and nvidia. They all provide programs that do basically the same thing, so I’ll talk about the bug I found in general terms, not tied to vendor or API, which I think is much more useful. The web is too full of hyper-specific code examples and too lacking in terms of general advice.

All frame capture programs let you look at a single frame of your game, and lists every single draw-call made in that frame, showing visually whats drawn, what parameters were passed, and how long it took. You are probably aware that the complexity of the shader (if any), the number of primitives and the number of pixels rendered all combine in some way to determine how much GPU time is being sent on a specific draw call. A single tiny triangle flat shaded is quick, a multi-render-target combined shader that fills the screen with 10,000 triangles is slow. We all know this.

The reason I’m writing this article is precisely because this was NOT the case, and discovering the cause therefore took a lot of time. More than 2 weeks in fact. I was following my familiar route of capturing a frame, noting that there were a bunch of draw calls I could collapse together, and doing this as I watched the frame rate climb. This was going fine until I basically hit a wall. I could not reduce the draw calls any more, and performance still sucked. Why?

Obviously my first conclusion was that the Iris Xe graphics chip REALLY sucks, and such is life. But I was doing 35-40 draw calls a frame. Thats nothing. The amount of overdraw was also low. Was it REALLY this bad? can it be that a modern laptop would struggle with just 40 draw calls a frame? Luckily there was a way to see if this was true. I could simply run other games and see what they did.

One of the games I tested was Shadowhand. I chose this because it uses a different engine (gamemaker). I didnt even code this game, but the beauty of graphics profilers is this: You do NOT NEED A DEBUG BUILD OR SOURCE CODE. You can use them on any game you like! So I did, and noticed Shadowhand sometimes had 600 draw calls at 60 frames a second. I was struggling with 35 draw calls at 40fps. What the hell?

One of the advanced mode options in the intel profiler is to split open every draw call so you see now only the draw calls, but every call to an opengl API that happens between them. This was very very helpful. I’m not an opengl coder, I prefer directx, and the opengl code is legacy stuff coded by someone else. I immediately expect bad code, and do a lot of reading up on opengl syntax and so on. Eventually, just staring at this of API calls makes me realize there is a ton of redundancy. Certain render states get set to a value, then reverted, then set again, then reverted, then a draw call is made. There seems to be a lot of unnecessary calls to setting various blend modes. Could this be it?

Initially I thought that some inefficiency was arising from a function that set a source blend state, and then a destination blend state as two different calls, when there was a perfectly good OpenGL API call that did both at once. I rewrote the code to do this, and was smug about having halved the number of blend mode state calls. This made things a bit faster, but not enough. Crucially, the number of totally redundant set and reset calls was still scattered all over the place.

To understand why this matters, you need to understand that most graphics APIs are buffered command lists. When you make a draw call, it just gets put into a list of stuff to be done, and if you make multiple draws without changing states, sometimes the card gets to make some super-clever optimisations and batch things better for you. This is ‘lazy’ rendering, and very common, and a very good idea. However, when you change certain render states, graphics APIs cannot do this. They effectively have to ‘flush’ the current list of draw calls, and everything has to sit and wait until they are finished before proceeding. This is ‘stalling’ the graphics pipeline, and you don’t want to do it unless you have to. You REALLY don’t want to constantly flip back and forth between render states.

Obviously I was doing exactly that. But how?

The answer is why I wrote this article, because its a general case piece of wisdom every coder should have. Its not even graphics related. Here is what happened:

I wrote some code ages ago that takes some data about a chunk of text, and processes all the data into indexed vertexes in a vertexbuffer full of vector-rendered crisp text. It makes a note of all this stuff but does not render anything. You can make multiple calls to this AddText() function, without caring if this is the first, last or middle bit of text in this window. The only caveat is to remember to call DrawText() before the window is done, so that text doesnt ‘spill through’ onto any later windows rendered above this one.

DrawText() goes through the existing list, and renders all that text in one huge efficient draw call. Clean, Fast, Optimised, Excellent code.

Thats how all my games work, even the directx ones, as its API-agnostic. However, there is a big, big problem in the actual implementation. The problem is this: The code DrawText() stores the current API render states, then sets them to be the ones needed for text rendering, then goes through the pending list of text, and does the draw call, then resets all those render states back how they were. Do you see the bug? I didn’t. Not for years!

The problem didn’t exist until I spotted the odd bug in my code where I had rendered text, but forgotten to call DrawText() at the end of a window, so you saw text spill over into a pop-up dialog box now and then. This was an easy fix though, as I could just go through every window where I render some text and add a DrawText() call to the end of that window draw function. I even wrote it as a DRAWTEXT macro to make it a bit easier. I spammed this macro all over my code, and all of my bugs disappeared. Life was good.

Have you spotted it now?

The redundant render state changes eventually clued-me-in. Stupidly, the code for DrawText() didn’t make the simple, obvious check of whether or not there was even anything in the queue of text at all. If I had spammed this call at the end of a dialog box that already had drawn all its text, or even had none at all, then the function still went through all the motions to draw some. It stored the current render states, set new ones, then did nothing…because the text queue was empty, then reset everything. And this happened LOTS of time each frame, creating a stupid number of stalls in the rendering pipeline in order to achieve NOTHING. It was fixed with a single line of code. (A simple .empty() check on a vector and some curly brackets… to return without doing anything).

Three things conspired to make finding this bug hard. First: I previously owned no hardware I could reproduce it on. Second: It was something that didn’t even show up when looking at each draw call, it manifested as making every draw call slower. Third: it was not a bad API call, or use of the wrong function, or a syntax error, but a conceptual code design fuck-up by me, My design of the text renderer was flawed, in a way that had zero side-effects apart from redundant API calls.

What can be learned?

Macros, and functions can be evil, because they hide a lot of sins. When we write an entire game as a massive long list of assembly instructions (do not do this) it becomes painfully obvious that we just typed a bazillion lines of code. When we hide code in a function, and then hide even the function call in a macro, we totally forget whats in there. I managed to hide a lot of sins inside this:

DRAWTEXT

Whereas what it really should have been though of was this

STORERENDERSTATESANDTHENSETTHEMTHENGOTHROUGHALISTTHENRESETEVERYTHINGBACK

This is an incredibly common problem that happens in large code bases, and is made way worse when you have a lot of developers. Coder A writes a fast, streamlined function that does X. Coder B finds that the function needs to do Y and Z as well, and expands upon it. Coder A knows its a fast function so he spams calls to it whenever he thinks he needs it, because its basically ‘free’ from a performance POV. Producer C then asks why the game is slow, and nobody knows.

As programmers, we are aware that some code is slow (saving a game state to disk) and some is fast (adding 2 variables together). What we forget is how fast or slow all those little functions we work on during development have become. I’ve only really worked on 3 massive games (Republic: The Revolution, an unshipped X Box game, and The Movies), but my memory of large codebases is that they all suffer from this problem. You are busy working on your bit of the code. Someone else coded some stuff you now need to interface with. They tell you that function Y does this, and they get back to their job, you get back to yours. They have no idea that you are calling function Y in a loop 30,000 times a frame. They KNOW its slow, why would anybody do that? But you don’t. Why would you? its someone else’s code.

Using code you are not familiar with is like using machinery you are not familiar with. Most safety engineers would say its dangerous to just point somebody at the new amazing LaserLathe3000 and tell them to get on with it, but this is the default way in which programmers communicate,

Have you EVER seen an API spec that lists the average time each function call will take? I haven’t. Not even any supporting documentation that says ‘This is slow btw’. We have got so used to infinite RAM and compute that nobody cares. We really SHOULD care about this stuff. At the moment we use code like people use energy. Your lightbulb uses 5 watts, your oven probably 3,000 watts. Do you think like that? Do you imagine turning on 600 light bulbs when you switch the oven on? (You should!).

Anyway, we need better documentation of what functions actually do, what their side effects are, what CPU time they use up, and when and how to use them. An API spec that just lists variable types and a single line of description is just not good enough. I got tripped up by code I wrote myself. Imagine how much of the API calls we make are doing horrendously inefficient redundant work that we just don’t know about. We really need to get better at this stuff.

Footnote: Amusingly, this change got me to 50 FPS. It really bugged me that it was still not 60 FPS> Hilariously I realised that just plugging my laptop in to a mains charger bumped it to 60. Damn intel and their stealth GPU-speed-throttling when on battery power. At least tell me when you do that!

Solar Farm Update: New connection plans

I’m going to try to get into the habit of more frequent updates to my ongoing solar-farm-project, because stuff is starting to happen now. Here is a brief run-down on whats happened since the last blog post on April 3 2023.

Well we had a meeting about the farm progress on 12th May, and there was a lot to discuss. We finally had the details from the DNO about the earthing requirements for the farm, so our high-voltage engineer could look at that and then design the earthing layout for us.

There was then some bad news about the inverters. We were going to use Solis inverters, but the ones we wanted were no longer available, so the plan was now to switch to Huawei inverters instead. These are Chinese, and some people have views of using kit made my Huawei but I don’t. I really don’t think there is a backdoor in them that will let the Chinese communist party turn off my solar farm, but I do think there are a lot of conspiracy-theorists that probably do :D. This change to different inverters might seem like no big deal, but its actually hellishly complicated…

Changing inverters means you suddenly have a different number of strings, and the way the panels are wired up is suddenly different. You might assume (as I did) that the panels were in nice neat rows, and there was an inverter for each row, or each two rows. No! Apparently thats not how its done, especially on undulating land. Its actually a lot more complex than that, and the positioning of the inverters and which panels get attached to each inverter is hellishly complicated, and done by some complex solar-farm management software.

Anyway, this was generally a good news meeting. Mounting frames were ordered, people booked in to do work.

There was then a LOT of emails back and forth about voltages and another meeting on 26th May. This is where stuff got super involved…

I had assumed that you always connected a solar farm at high voltage, and needed a transformer up to 11kv, at which point the DNO takes over. BUT NO. Suddenly the DNO says they have changed their internal regulations regarding what size inverters they let connect directly to them, and it had gone from 50kw to 200kw. Our inverters are about 110kw, so they were suddenly chill about us effectively giving them nine cables from 9 110kw inverters at low voltage (about 410v I think).

This is a BIG DEAL, because it vastly changes who pays for what, and whats included. Suddenly we arent doing ANY high voltage cabling, or switchgear, and we wont need a transformer at all. This saves a LOT of money in terms of connection offers. Apparently I will get a new connection offer tommorow, and the old one will be cancelled.

In theory this is good, but I wouldnt be surprised to find that the lower connection offer is offset by all the other materials and labor price increases that have happened since we started. Sure, its GOOD news to have a number actually come DOWN instead of up, but I’m not getting too excited by it.

Its hard to convey just how complex a project like this is. The change to the offer would mean that we can move our (much smaller) substation closer to the one for the DNO. That means the site layout can be slightly smaller, which means less fencing (which would be cheaper!). However, it also totally screws up our earthing design, because we now have different stuff, in a different place, at a different voltage… arggghhh. The one bright spot is that apparently moving our substation will not be a planning issue. Thank Christ.

Anyway, the truly exciting news is that a ground survey was done 2 days ago, and the ‘setting out’ engineer will visit the site this week, I think wednesday. Thats the very last step before people show up to build an access road and start building stuff with concrete bases and installing ground mount frames and the security fence. This is all getting very close!

The current plan is for setting out on 31st, then the fencing, then access road. 26th June is pencilled in for the day they start building the ground mount frames. I will nip up there when that happens and take a look at it all, and take a stupid number of photos. Its looking quit likely that we get energised this year, and start generating power, and maybe (gasp) earning revenue this year!

Is the age of big tech growth over?

Not just as someone who works in tech (as a computer games programmer, and previously, an IT support guy), but also as someone who has invested in the stock market for 20 years, I’ve definitely got used to the idea that the ‘tech titans’ are the lords and masters of the modern world. It certainly has seemed so from a financial point of view, with companies like Apple and Microsoft achieving insanely high market caps, and mind-boggling revenues. When people talk about making big money, they often talk about working for fat salaries at a tech company, or cashing in super-lucrative stock options, or even just being sassy enough to have bought Apple, Microsoft, Facebook stock really early.

Especially in the US, ‘tech-worker’ has been synonymous with money. People with non tech jobs in the San Francisco bay area have long bemonaed the super-wealthy tech workers impact on the cost of housing. Tech workers were so elite, that they got bussed past the remaining poor people directly to their super-high-tech and luxurious offices. At work, thet would be pampered with free food, expert chefs, sushi-on-demand, massages at your desk, huge bonuses (obviously), yoga retreats, amazing health care coverage, and premium coffee. It was like living and working in some star trek future paradise…

But it might, just might be coming to an end, in all sorts of ways.

One of the most interesting developments in tech recently was elon musks buyout of twitter. I have no time for, or patience with the various angry rants about the man, but what I want to talk about is the immediate and dramatic firing of so many employees at twitter. To the mainstream tech media, this was indeed, ‘nasty and brutal and dangerous’, and obviously there was a huge swathe of recently fired twitter employees who were happy to predict the imminent explosion of the western world because they lost their jobs. This is predictable, and not very enlightening. Last time I checked, the world still exists, and twitter is still up and running.

What I find interesting is the divide between many mainstream media reports of the potential catastrophe around firing 50% of the staff….and both the reality, and the barely-heard discourse from some experienced developers who took a different view. Those views are often shared in private, between friends, because sharing any opinion other than ‘firing people is awful’ online is an invitation to horrendous abuse…

Nevertheless, I count myself among those people who shared musks view that it was clear that a LOT of developers working at that company were clearly adding little to no value. In fact, if you have ever worked on a large project with a large number of programmers, you will be aware of a point where adding extra coders actually makes things slower, and worse. With twitter it felt like this had happened years ago, but the hiring kept going. As a long term twitter user, I would struggle to find ANYTHING that was added to the platform in the last decade. There was rumours of longer tweets, which was apparently something akin to the manhattan project and all 7,500 twitter staff could not collectively implement this, let alone an edit button…

The very short time since the twitter takeover has given rise to a huge number of new features. Subscriptions are now a thing (and I subscribed), monetization of content, and premium-paywalled content is now a thing. Super long tweets are now a thing, as is some simple formatting. It turns out that you dont need 7,500 developers to implement a few basic features to an app. Who knew?

Whats interesting to me, apart from twitter as a case study, is that so many companies almost IMMEDIATELY followed suit, and laid off a huge chunk of staff. All over the world of tech, those big companies started firing thousands of developers. Its like Elon has been used as a human shield, absorbing all the hate for layoffs, which have allowed senior management to actually do what they knew needed doing, and firing the least productive staff.

In itself, thats interesting, but just maybe a phase in the continual growth of the power of big tech companies. Firing developers whose productivity is close to zero will cut costs, boost profits but not change the relative power of these companies. However, I suspect there may be bigger, more structural changes coming that will reduce the power of the tech sector in general, and not just the FAANG crowd. AI may shake-up the market and re-arrange which companies are on top, but I think the whole tech market may be heading for a correction. Maybe those tech companies have seen it coming, and is why they were so happy to slim down. Maybe their internal predictions for the future of tech growth are a lot lower than they let on?

There was an interesting story recently about photobooths in south korea. We even saw some when we were there recently. Its a craze, which looks like it may stick around, where groups of friends cram into a photobooth (like passport photos) and take actual old-school real photographs in silly poses wearing hats and with props. Its something people do with a group of friends. Why is this a big threat to big tech? Its because its prioritixing something that is anathema to the tech companies: actual physical activity in the real world, and its taking off in famously tech-friendly south korea.

They say that young people no longer desire possession, but desire experiences. I think thats true. The one exception has been the phone, which has become many peoples most important and valuable possessions, but as more and more revisions come to the latest mobile phone, the feature gap between this year and last years model shrinks even more. I have a samsung galaxy S8. It is absolutely amazing, and does everything I can imagine ever needing. I’d like a longer lasting battery, but not enough to upgrade…

I have a friend who refuses to own a smart phone of any kind. I can send him a text, and thats it. He is happier that way. He is about 12 years younger than me. I have another friend who refuses to be on social media of any kind, even asks people not to post pictures of him. I doubt these people are total outliers. The shine of social media has worn off. Stuff like cambridge analytica, the widespread problem of cyber stalking and online abuse has meant that people are very aware of the downsides to always being on social media.

Because I am old (53 I think?) I can remember before any of this was a thing. My life has taken me from a big chunky (rented) TV with 3 channels, and an expensive home land-line rotary-dial phone, to an age of VR, AI and smartphones. The technological transformation has been absolutely mind blowing. However, taken over a much shorter timescale, I’m not sure whats got better lately. In fact, it feels amost like tech is degrading and getting worse. My new laptop (the old one self-bricked itself due to software after under 2 years) has a one terrabyte SSD (insane), but has software bugs meaning sound is muffled and stuck at 50% volume. Thats brand new out of the box. Utter trash, coded by idiots, probably spending more time at the yoga retreat than learning to write audio drivers…

Tech is losing its sheen. I recently bought this new laptop (about £800) and a new pair of sneakers (£93). I am way more pleased with, and excited by the sneakers than the laptop, and I am a fucking computer programmer. This is weird, this is a change. I can totally see how happiness with ‘real-world’ stuff somehow feels more ‘real’ and ‘wholesome’ than any advance in tech Advances in tech just feel like meaningless numbers. Oh look, a 16MP camera, and a 2TB hard disk. 64 GB RAM Whoop-do. Who fucking cares? a 4K TV… why? whats next? a 32K TV? really?

Why does this matter?

As a stock-market investor, I take this stuff seriously. I spend a lot of time looking at trends, and data and considering what the future brings. Recently I was hunting for stocks and found two companies (Dicks Sporting Goods and Academy Sports and Outdoors) that had insanely low price-to-earnings ratios. This basically means that investors dont think much of the future for those companies. A P/E thats super high implies you expect earnings to climb dramatically, and is appropriate for a fast-growing tech startup. A low P/E implies stagnation, and boredom.

There is a whole host of tech companies with insane high P/Es and a slew of real-world companies with insane low P/Es. This is an opportunity. If I’m right, and people are falling out of love with tech and re-allocating their furure spending towards the real world, then there is a massive opportunity to buy those low P/E companies now and watch the stock climb. I’ve already done this with those 2 companies, and I’m now doing it with the toy company ‘Jakks’. I’ve also got my eye on the company that makes ‘crocs’ footwear. Make no mistake, these companies look boring, but that may be where the value is. I sold some nvidia to buy Jakks.

I have no idea whether my own experiences and views can be generalized, which is why I find the South Korea photobooth phenomena so interesting. Its also why I find the healthy market for live music so fascinating. Crowding together with tens of thousands of people to witness a live event is the complete antithesis of tech. We should all be at home, alone, sending skypes and whatsapp messages to our friends ffs! not actually in the real world with people!

On a related note, I found a recent book interesting. It was about people losing the ability to focus due to social media, but one specific section in there was especially interesting. The author mentioned that it would be trivial for social media apps to have a feature to make it easy to tell us when our friends were nearby, maybe in town the same time as us, so we could arrange an impromptu meetup. If I’m in a coffee shop and it turns out a buddy is in the shop 3 doors down, wouldn’t it be cool to let us know so we can say hi? (optionally!). The thing is… social media companies do not WANT us to do this. All the time we are separate and alone, we use social media, and see ads, and generate data and content, for free. They simply have no way to monetize real world friendship.

For a long time, we have been so dazzled by the shiny features of technology that we have thought of nothing else, but in the same way that electricity or cars were at one point amazing new things to obsess over, maybe ‘tech’ will just become another part of life, such as plumbing, or heating, or home appliances like washing machines. Maybe we will relegate a mobile phone to the same status as a microwave. Why get a microwave 14.0? it still just cooks food right? If we DO this, then the currentl market valuations for a bunch of tech companies are going to collapse. Dont be caught holding speculative tech stocks when the music stops.

Cliff’s ultimate guide to Korean Drama TV (kdramas)

It all started with watching ‘parasite’. We loved it. So much in fact, that I looked at what Korean TV dramas were available on Netflix. That got us hooked, and now I would say probably 75% of my TV viewing is Korean dramas on netflix. I’ve watched a LOT of them, and they are long….. and some are better than others. Here is my much delayed ultimate guide to how to get into korean dramas.

NOT SQUID GAME

I’ve never watched squid game. I don’t like dark, or violent or ‘harrowing’ TV. If you loved squid game and want more of the same, I cannot help you. The kind of drama I like is very very low-stakes. Think downton abbey with noodles. There are no exploding helicopters or torture scenes. Although some of the dinner-table arguments in some kdramas are a sort of mental torture I guess…

THINGS TO WARN YOU ABOUT

Do you have Misophonia? Its a fear/hatred of the sounds of people eating, specifically slurping. If so. Just stop reading here. Its culturally totally accepted for people to make loud slurping noises when eating and drinking in Korea. Its expected. I’ve sat through hours of people slurping noodles noisely. You have been warned.

Does workplace bullying trigger you? If so, you may also want to quit now. There are constant themes of workplace bullying in Korean dramas. I dont mean passive-aggressive emails, I mean people physically assaulting subordinates in an office and yelling abuse in their faces. Super common. Its kinda shocking.

There is no sex and almost no violence. Thats likely a positive but some people will find Korean dramas laughably tame. I’m sticking with my ‘downton abbey with noodles’ theme. The EMOTIONAL power of the best of the series is exceptional, but I am yet to see an exploding helicopter.

COMMON THEMES

KDramas do some weird things that western dramas just DO NOT DO. For example, if someone smiles in some of the lighter dramas, and its supposed to be cute, don’t be shocked to see some added emojis and cartoon graphics appear on screen. Its a thing. Also, don’t be surprised if, the first time we see a good looking young man, he is walking in slow motion with his own theme song. Yup, thats a thing too. Oh and there will be an enormous amount of bowing, of drinking soju, a lot of people printing documents and shredding and scanning documents, a lot of late night drinking in bars that are seemingly tents, and a staggering amount of discussion of school homework.

KDRAMA #1: CRASH LANDING ON YOU.

People who have only watched one KDrama apart from squid game have watched this one. I almost skipped it, because the premise was so stupid: Fashion designer and daughter of billionaire accidentally skydives into North Korea’. Seriously? Although apparently this is more common that you might think. Anyway… this is a really good one. Its a romance, but its the most ‘action’ of all the dramas listed here. There are actual chases! on a motorbike! someone fires a gun!

CLOY (as its known) is a typically epic story about the repercussions of a wealthy families daughter ending up in North Korea. Its a very clever intertwined romance that involves a bunch of people, multiple families, a lot of history, a cover-up and conspiracy, corruption, and lots more. You might *think* at the start that its a lightweight comedy, but its actually got more depth than you think. Its also got a superb cast.

CLOY plays heavily with the hilarity of a wealthy fashion celeb who finds herself stuck in a peasant village, where only 4 different state-sanctioned hairstyles are permitted, and everything she tells people about her life is dismissed as ‘southern propaganda’. The North Korean soldiers who find her are often hilarious. CLOY got some grief for not depicting North Korean life as harshly as it maybe should have, which is fair, but its a comedy and a romance, not a documentary. Its long, but worth the effort. I’ve watched the whole thing twice.

KDRAMA #2 SKY CASTLE

Do you think parents put too much pressure on their kids to do well at school? HAHAHAHA. You might think that, but unless you are an upper-middle class South Korean mother, you are absolutely kidding. This drama shows you what REAL pressure on kids is like, and this is a common theme in many kdramas. South Korean kids have a staggeringly high suicide rate, and when you watch this series you will understand why. Oh. My. God.

Like all the best kdramas, the first few episodes of Sky castle make you think you know how its all going to go. ‘Ok, so its about all these elite families and the lengths they go to in order to get their kids to the top of the class right?’ But it goes way further, and into way more into depth than you expect. Characters that you think you know all about very definitely turn out to have more depth. It also has some really superb performances, and is very, very emotional. I don’t have kids, and I’m massively affected by watching this. Its maybe a bit long, and some of the more lightweight plots, to do with the day jobs (mostly as doctors) of the parents can seem a bit ‘meh’ compared to the fairly dark and serious stuff, but I massively recommend this. It probably has the most jaw-open OMG moments of any kdrama

KDRAMA #3: EXTRAORDINARY ATTORNEY WOO

Not for everyone. Its unusual. EAW is about Koreas first attorney who is diagnosed as autistic. I REALLY like it. It handles it very well, although the lead character is probably a bit of a media-cliche of someone with autism. On the surface, again like all kdramas, its a simple premise: Young attorney Woo starts her first ever job, and learns to navigate the work environment, and make new friends. However, over time, you realize there is a lot of backstory and bigger, more serious plot also playing out in the background.

The thing that really makes this special for me is the way in which they portray an autistic character as being openly, proudly and specifically autistic. There is none of this ‘shes a bit different’ or ‘thats just how she is I guess’ coded bullshit. She even introduces herself as autistic to the jury. Its really nicely done. I warn you that its one of those ‘wacky’ kdramas that is not afraid of cartoon sound effects and other silliness. Whenever Woo ‘cracks a case’ she gets visions of dolphins and her hair is blown back the wind. Yes really.

Woo also has some really great performances. Specifically, her immediate boss does a brilliant job of navigating from arrogant and work-obsessed lawyer who hates the idea of woo in the office, to understanding, to friendship, and eventually to becoming a really likable character. Unlike the other shows listed here, Woo is very episodic. Each episode in a case, and the over-arching drama/romance is secondary.

KDRAMA #4 MY MISTER

This one is SO HARD to describe without it sounding boring, or unfocused. It is however, excellent, and probably has the best acting out of all these ones listed here, plus some great writing. The main star was also in Parasite, as the rich man, if that helps at all. Its really hard to explain the plot… but basically its about a family of 3 brothers, and how they are coping at a certain point in their life. One had a business fail, and is now unemployed and living back with the mother. Another is a once super-cool, but now failed movie director, also stuck at home with the mother. The third, and the ‘star’ is working as a structural engineer for a massive company, and it seems like the plot is basically going to be about an attempt to force him out of his job…

My mister is LONG, and pretty dark, but its well worth the effort. It genuinely makes you feel for the characters, and you get to know so much about them. It has a unique mood, thats very carefully crafted, and really draws you in. Some of the characters are better than others, and the villains evil sidekick is *probably* funny on some level in Korea, but he just comes across as an over-the-top buffoon. Where My Mister really shines is the chemistry between the two stars. You *think* that this is going to be some sort of office romance between them… then you think ‘hell no, its a corruption/blackmail/stalking thing?’ and then your perspective on it changes again and again.

My Mister has a big cast, and it doesn’t exactly race by. There is a LOT of drunken banter, a lot of slow moody scenes of people walking home in the dark, a lot of scenes of people loading and unloading paper into photocopiers… but its all awesome. What My Mister does really well is the philosophizing of the main characters. These are not people just slinging out snappy one-liners. There is a lot of deep introspection about life, what matters, whats important, emotions, and relationships. Its probably the best written kdrama in this list. Its also big on office politics. Which leads us to…

#KDRAMA #5: MISAENG

Dont ask me about the titles. Who knows how this happens… Anyway, this is an office drama. Like all Korean dramas, the focus of every single employee in these massive conglomerates is 100% on how they can screw over people in another department. Its amazing that ANYTHING gets made in Korea. All of the staff are constantly fighting with other departments. Its almost comical.

Misaeng is basically about an intern at some big company. He is unusual in that he has very few qualifications, and has thus got he job through ‘connections’ (a common angry theme in kdramas). He is a one time professional baduk (Korean ‘go’, basically) player, who couldn’t make it full time, so suddenly has to refocus and get an office job. Sounds pretty tame?

Misaeng was one of the first series we watched, so I was a bit shocked by how long it is, how AWFUL the workplace environment is for interns in a korean office, and all the other culture shock stuff, like the extreme, extreme deference to superiors at work (not at all unusual for everyone to stand and bow if the manager walks into the room). I also found myself constantly thinking ‘What the hell does this company even DO?’, but all of that is secondary to the relationships between the people in the tiny department it focuses on.

I guess ultimately misaeng is about friendships at work, and how people rely on one another, and get to know one another. Its amazing watching it a second time, because you see your first impressions of almost everyone are so wrong. You end up REALLY rooting for the manager of this small team, and really caring about them when things dont go their way. Be warned: if watching a billion hours of people answering the phone and writing reports and fetching coffee is going to kill you, then probably don’t get started with this one :D.

KDRAMA #6: LEGAL HIGH

This one is DEFINITELY an acquired taste. Its super weird, but for some reason I found it absolutely hilarious. It REALLY piles on the wacky sound effects and crazy camera tricks, but it does it with such style… Its basically the story of a lawyer who has a reputation for never, ever, ever losing a case, and who is famously obsessed with money (or is he?). Due to a hilarious translation, his nickname is ‘monster pervert’, but you have to just mentally ignore that, because its clearly gone a bit wrong there…

Anyway, I LOVE the main character, he was obviously born to play this role. He excels at pulling the most amazingly smug expressions every time he inexplicably wins a case and things go his way. His assistant, a man obviously styled on Batman’s ‘Alfred’ is also good value. Some of the other characters can be over-the-top and annoying, but its worth it for those scenes where Ko Tae Rim goes into one of his rapid fire nonsensical monologues that win over the jury.

OTHER KDRAMAS

Trust me, these are the best 6. I’ve watched a load more, including Startup, Strongest Deliveryman, Our Blues, Revolutionary Love, Crash Course in Romance and likely more I cant remember. If you want something closest to a western drama in style, its probably Crash landing. If you want excellent writing, its My Mister. For light hearted fun, Legal High or Attorney Woo. Sky Castle is tough to watch but worth it. Misaeng will make you glad you arent an office worker in Korea.