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

Why bother upgrading?

My office is having new windows put in (at last!) which will mean its no longer unbearably cold in winter (yay) or unbearably hot in summer (yay), so I am currently sat at a laptop, researching the current state of abortion legislation in the USA for Democracy 4.


The laptop I’m typing this on is a nice shiny Asus Intel core i7 laptop. To be precise, its an Asus zenbook ux303ua i7-6500 12GB RAM, running windows 10. I mainly use it to surf, check twitter, watch the odd TV thing, blog and do forum posting, plus the odd casual game now and then. I bought it in 2016 for £767.

Its fine. In fact its great. It runs fairly fast, The screen is still fine, the keyboard still works, it doesnt crash, it doesnt lag. I had to reinstall windows once (repair from the existing install), but thats it, in four years of owning it. I cannot think of any real justification for getting a new laptop, other than the fact that my wife’s laptop is newer, and bigger, and theoretically better.

Four years might not sound old for a laptop, but it is for me. As a developer, I can get the benefit of claiming the VAT (sales tax) back, plus its a business expense. So no VAT (saves 20%) and effectively saving another 20% on the tax. Plus I LIVE for computers and online stuff, so its easy to justify a new PC at the most flimsy justification!

How Much Is Your Old Vintage Apple Mac Computer Worth? | TurboFuture

But…not any more. Its four years old and its an i7. Whats new these days? The i9? sure you CAN get them, at 4x what I paid for this laptop, but are they four times better? even three times? twice as good? Even a noticeable difference? I dont think so, unless you want to play an FPS like Battlefield V with HDR and so on, laptops that are used for work are basically very happy with an older, cheaper i7 or even i5 chip. Even the 12GB RAM is overkill tbh. I upgraded my desktop from 8->16GB and noticed very little difference.

I am not one to trot out the ‘640k is enough for everyone’ line. I am a developer, and my main PC is pretty decent (still just an i7 though), with an RTX card and a monitor the size of Texas. I get it, but most people are not software devs, and even most gamers are not playing super-demanding games. I am pretty sure I could play minecraft or fortnite on this laptop, even league of legends and football manager, so thats 99.99% of gamers covered right there!

I think we have reached a bit of a plateau where laptops are simply overpowered. The reasons to upgrade are minimal, and it shows! if I check amazon for just ‘laptop’ I’m recomended the best seller at £159.99. Thats hilarious. Laptops used to always cost a thousand pounds or more…

Asus VivoBook 14 X412FJ-EB023T - External Reviews

Its not only laptops, but many things seem to be going that way. I’ve had the same ‘smart’ TV for five years and despite checking regularly there seems to be little benefit to an upgrade there. Even my bleeding edge car (tesla model s) is from 2015, and the only possible reason to upgrade would be to get a slightly smaller one, or with extra autopilot cameras. Quite hard to justify even for me, a tesla fanboy.

This is actually *not a bad thing*. Maybe if we were better at designing economic systems, somehow things would shift from selling increasingly over-specced gadgets to the wealthiest, to just get ‘adequate’ tech to everyone. There are hundreds of millions of people around the world who would love that £159.99 laptop, or a modern low-power-usage TV, or even a decent fridge. The question is how to shift the focus of an economy in that direction, in a way that people accept.

I dont have any answers. I’m a capitalist, and believe in the free market, but believe it needs a nudge now and then. Maybe its actually a good thing that western tech companies have manufacturing based in relatively poorer countries, as at least some of that money then goes into the pockets of those very people who would be an eager market for the suddenly-affordable tech. Like everything though, the inter-relationships of that business model are all over the place. Should we really be shipping physical goods all over the world by container ship? what happens to the US economy when all the USA manufacturing jobs go to china?

There are no easy solutions, and even modelling some of this stuff in Democracy 4 gives me a headache, but I guess at least its a good thing that a really decent laptop no longer requires people to sell a kidney.

The death of UK Television

Its shocking just how awful UK TV is these days. I am old enoguh to remember just 3 channels, broadcasting stopping totally around midnight, and no TV at all during the mornings. TV quality was actually BETTER back then.

We now have about 500 channels, and they are uniformly awful. As a creature of habit aged 50, I still optimistically find myself seeing if anything is on TV tonight. There never is. its all dumbed-down, patronizing crap, repeats, movies from fifteen years ago, or TV that honestly seems designed to rot peoples brains. The cheaper the TV the better, so reality TV is king, and anything where the ‘content’ is just random unpaid members of the public waffling is ideal.

British Tv just cannot compete with amazon prime, the disney channel and netflix. its game over. Why the hell would I watch UK TV when programs that are world reknown, cost 100x the average BBC budget and everybody is talking about…are just a convenient click away, scheduled whenever I like them? Of course I am FORCED to pay for thew BBC by law.

For a LONG time I listened to radio 4’s political ‘today’ program when I woke up. I now wake up listening to the theme music from Star Trek:DS9. I feel I’m more informed, educated, and calm listening to that than I do to the shouty, interrupt-laden cross-talking imbecilic bullshit that passes for ‘political journalism’ in the UK these days.

Just a FEW of the traits of modern TV ‘news’ (ha!) reporting that drives me insane.

  • TWO presenters. One male, one female because….why? wwe need to double the salary? I dont give a fuck what gender reasds the news, I only need one person to do it for fucks sake.
  • SMILE SMILE SMILE. Why? You just look like a drooling imbecile. I dont smile that much in a month.
  • BIG HAND GESTURES. For no apparent reason. Why the hell? just talk. I dont need you to immitate someone doing fucking origami as you explain the news.
  • TOTALLY random EMPHASIS on the OCCASIONAL word for no EASILY understandable REASON. Nobody on the planet talks like this to their friends. What on earth are you doing?
  • Completely pointless cross-focus camera effects to go from a leaf, to a street sign as somebody is talking. WHY?
  • Taking some random item in a scene and using it as the background for a CGI graph to show that you can do that. Am I supposed to clap?
  • Walking slowly towards the camera as it pans backwards to reveal that you are in a busy street, walking extra slowly, and babbling to nobody like some sort of maniac. For fucks sake stand still.
  • Cutting back and forth between the person being interviewed and the interviewer, nodding, like an idiot when we all know these ‘nodding’ bits are filmed afterwards. We understand the concept that you are still there for fucks sake.

All of this gives me the strong impression that modern UK TV is aimed at idiots. Anybody who can tie there shoelaces is supposed to get their news online, but hopefully not from the similarly dumbed-down drivel and lecturing, patronizing bullshit that is the BBC news website.

Oh By the way… climate change is in full force right now. its 45 degrees above normal in the fucking ARCTIC CIRCLE and nobody has even put this on the bloody news. You have zero future, and we are heading towards a climate armageddon. Enjoy Love Island.

That's a lot of singletons! 150,000 people apply for the new ...

I’ve been using GPUPerfStudio

Have you heard of it? I had not either, but its a thing, and its a free thing, and its pretty cool. Its a similar tool to nvidia nsight, which I used to love, until they basically broke it entirely for older copies of visual studio. I would love to live in this delusional world where people make dev tools and think that every developer is sat there, staring at their code thinking ‘it would be great to take a few days off to install a new version of this IDE, with virtually no improvements, but lots of changes and incompatibilities. Plus I am tired of having money, take my dollars…”

FWIW I develop Democracy 4 with Visual Studio professional 2013. Its great. It works, and I don’t see any reason to ever upgrade. I think the previous version I had was one I sued for about eight years, so theoretically I might consider upgrading in 2021… but why would I?

The question should always be ‘why should I upgrade?’ not ‘why should I stay on an old version. an IDE is just a tool. My office chair is a tool, and I think thats about 8-9 years old now. I expect it to last another 10 years minimum. Stick with stuff that works well.

Anyway, lets talk about GPUPerfStudio!

This is a free tool you can get here. Its a way of debugging the way you draw stuff in your game, and it seems to support directx, opengl and vulcan whatever that is :D Its not flawless, but its pretty easy to setup and use, which is one of the most important criteria for devs like me who code everything, and thus the debugging of rendering issues is only a tiny part of my job… With that in mind here is a tutorial on how to use GPUPerfstudio with your game.

It seems all you do is download and unzip the thing into a folder, and launch the executable (GPUPerfClient.exe). BTW whats weird about this tool is that to actually run a program and debug it, you click this top left icon that looks like a monitor… whats wrong with a ‘play’ icon? You then browse to the path of your .exe file (debug or release builds are both fine, and click on ‘next’, then ‘connect’.

This then launches some command line window which you can ignore, and your actual app. It then pops up a dialog box for you to confirm what graphics API you are using, and wahey! you can run and use your app as normal until you get to a screen you want to analyze. When you are there, you click back to the GPUPerfStudio window and hit the ‘pause’ button. NOTHING happens! Until you click back to give your game window focus. It then takes a snapshot, and you are in business, and its time to hit that (now highlighted ) frame debugger button. This then generates some cool stuff:

You need to click around on various stuff to get the layout the way you like, but to be simplistic about it, on the left hand side in a column of every draw call made to render this scene. To the right of that is a diagram showing the various stages in preparing and rendering each draw call, and to the right of that is a bunch of render targets and textures you can zoom in on by clicking on them. I’ve selected RT[0] which is essentially the screen, and selected one of the later draw calls. I’m not using fancy shaders so I don’t care about the RHS windows, I just want to see what is rendered when.

With that in mind, I can select an earlier draw call on the LHS…

Tada! Thats draw call #6 where a bunch of icons get drawn to the screen. I can click on the source texture for all that and see how much of it using and what the source looks like, and if I want more detail on the actual draw call data I can click on VAO for the vertex stuff, and actually inspect the contents of the vertex buffer I’m using…

BTW the pink highlights on the screen texture are showing you the verts you draw in the current call, which is clearer if I look at a later draw call:

You can see there that I just drew all those blue rectangles on the left of the screen (with a single draw call, for max speed).
Also check out this cool screen, the CPU API Trace, which seems to show you a timeline of all your draw calls and how long each thing took. If you suspect one draw call takes way too long, this may explain why, or at least confirm it…

BTW top tip: ctrl+mouse wheel on the top progress bar does fine-tuning of zooming in and out to see each item…

Ultimately, tools like this are a great way of working out when you are doing *really dumb stuff*. I found out yesterday that despite writing super cool code to batch drawing all of the voter strips in 3 or 4 draw calls, I was then rendering each one of them individually in bits again right afterwards due to a bug. I would NEVER notice this any other way, because obviously you cant tell when items have been drawn twice perfectly on top of each other, but it was killing my frame rate.

Anyway, this software is cool, interesting, seems to work, and its free. What else can anybody want?