How I cut GTA Online loading times by 70%
Some debug-stepping later it turns out it’s… JSON!
Of course it is. But a really solid reversing effort. And a nice fix.
Why are video games graphics (still) a challenge? Productionizing rendering algorithms
This post will cover challenges and aspects of production to consider when creating new rendering / graphics techniques and algorithms – especially in the context of applied research for real time rendering. I will base this on my personal experiences, working on Witcher 2, Assassin’s Creed 4: Black Flag, Far Cry 4, and God of War.
Many of those challenges are easily ignored – they are real problems in production, but not necessarily there only if you only read about those techniques, or if you work on pure research, writing papers, or create tech demos.
I have seen statements like “why is this brilliant research technique X not used in production?” both from gamers, but also from my colleagues with academic background. And there are always some good reasons!
This is quite extensive.
Fixing a 3+ year old bug in NVIDIA GeForce Experience
So the issue is such: If you have a joystick plugged in, and the GeForce Experience overlay enabled, your display will not sleep. If you unplug the joystick, the display sleeps. If you disable the overlay, the display sleeps. You can have one or the other - but not both. People hadn’t just tracked the issue down - people tracked it down 3 years ago!
But now for the deep dive disassembly to find and fix the bug. Solid work.
The Door Problem
Game design is one of those nebulous terms to people outside the game industry that’s about as clear as the “astrophysicist” job title is to me. It’s also my job, so I find myself explaining what game design means to a lot of people from different backgrounds, some of whom don’t know anything about games.
I like to describe my job in terms of “The Door Problem”.
This is a fun read.
When SimCity got serious: the story of Maxis Business Simulations and SimRefinery
SimCity wasn’t meant to be taken seriously.
The game was inspired by research on real-world urban planning concepts, and although it was created as a way for players to experiment running a city, the goal was to be fun rather than accurate. “I realized early on, because of chaos theory and a lot of other things,” said designer Will Wright, “that it’s kind of hopeless to approach simulations like that, as predictive endeavors. But we’ve kind of caricatured our systems. SimCity was always meant to be a caricature of the way a city works, not a realistic model of the way a city works.”
Over 200 offensive slurs could soon be banned from competitive Scrabble
The North American Scrabble Players Association (NASPA) seems poised to remove hundreds of offensive slurs from tournament-level Scrabble play.
Words that are “used to cause offense on scatological, prurient, profane or other grounds” are not under discussion this time around. NASPA publishes an obfuscated, anagrammed list of which offensive words fall into each category.
Reverse-engineering and comparing two Game Boy audio amplifier chips
The Nintendo Game Boy contains an audio amplifier chip for sound through a speaker or headphones. In this post, I reverse-engineer this chip and compare it with the later Game Boy Color chip (reverse-engineered earlier). Unexpectedly the Game Boy Color uses an entirely different amplifier design from the original Game Boy, which may explain why the two systems sound different.
How to Put More “Character” Into Your NPCs
There’s something about the term “NPC” (Non-Player Character) that sounds hollow to me. Maybe it’s the ambiguousness of acronyms, or how the term literally sounds like “empty.” As a narrative designer, my philosophy is to think of NPCs less like assets on a spreadsheet, and more like my cast. There are big and small parts, but I believe designers can give any character soul. (Even a character whose soul was stolen by an evil wizard of some sort!) A bit more effort can make a minor NPC more human, and a game’s world more alive.
WSJ Jigsaw Puzzle
Play our game and also read more about these famous faces, quirky news subjects and other images in the stipple style
I appreciate that it works on phones.
Videogame Doesn’t Infringe Tattoo Copyright By Depicting Basketball Players
This case deals with a venerable and vexing copyright law problem: if a person doesn’t own the copyright to his/her tattoos, do other people infringe by accurately depicting the person? The answer surely has to be “no.” Otherwise, ordinary daily activities, such as photos and videos in public, become an unnavigable thicket of potential liability. Fortunately, this case decisively reaches the right result. However, it’s unclear how much it predicts future cases.
Hot Air and High Winds: A Love Letter to the Fantasy Airship
I’ve had a bit of a thing for airships since I was in my teens. I loved - and love - all airships, but it was the great steampunk contraptions of wood and cloth and wrought iron that had me most under their spell. Where the ‘ship’ is taken literally and a creaking old galleon is slung implausibly and enchantingly beneath bulging balloons. Games love them too - they’re most associated with JRPGs, although I think it must have been in Super Mario Bros 3 that I first encountered them. But the airship that really sparked my love affair was in a much more obscure place. Does anyone remember the Fantastic Worlds expansion pack for Civilization 2? Anyone remember the airship units? I do. For some reason that unit captivated me. I loved it, in all its tiny, pixellated glory. I couldn’t find a picture of it. Sorry. Take my word for it, though: that was a good airship.
The Polygons Of Another World
An other choice would be Eric Chahi’s 1991 critically acclaimed” title “Another World”, better known in North America as “Out Of This World” which also happens to be ubiquitous. I would argue it is in fact more interesting to study than DOOM because of its polygon based graphics which are suitable to wild optimizations. In some cases, clever tricks allowed Another World to run on hardware built up to five years prior to the game release.
This series is a journey through the video-games hardware of the early 90s. From the Amiga 500, Atari ST, IBM PC, Super Nintendo, up to the Sega Genesis. For each machine, I attempted to discover how Another World was implemented. I found an environment made rich by its diversity where the now ubiquitous CPU/GPU did not exist yet. In the process, I discovered the untold stories of seemingly impossible problems heroically solved by lone programmers.
How the scourge of cheating is changing speedrunning
How do you catch fakes when it’s easier than ever to manipulate video?
'Mario Maker 2' Creators Are Using Cryptography to Make Impossible Levels
A strange competition has popped up to create levels with audacious passcodes that you could spend a lifetime trying to guess.
The role of posters in video game worldbuilding
Symbolic of a larger universe, video game posters provide the gateway to a more expansive world.
Vulkan Progress Report #5
Another month, another Vulkan progress report! October was a busy month, as most of it was split between working on the new Global Illumination system and Godotcon/GIC in Poland. Despite this, strong progress was made and the new GI system seems pretty much complete.
Godot 3.0 introduced GIProbes. They provide Global Illumination to scenes. They were, however, pretty limited. Only static geometry could provide GI and dynamic objects were ignored. Added to this, changes in light settings had significant frames of delay. Added to a not so great performance and quality, the feature was barely usable as is.
For Godot 4.0, GIProbes will see several significant changes, which will be outlined as follows:
Untitled Goose Game: how a video game that started as a joke went viral
To get more insight into Untitled Goose Game’s meteoric rise, I called up Disseldorp to get the backstory on how the game came to be and why it’s struck such a nerve. Here’s the full story of how a workplace joke about a video game starring a bratty goose became a full-fledged, delightfully silly bestseller.
Factorio New pathfinding algorithm
A simple choice for this function is simply the straight-line distance from the node to the goal position – this is what we have been using in Factorio since forever, and it’s what makes the algorithm initially go straight. It’s not the only choice, however – if the heuristic function knew about some of the obstacles, it could steer the algorithm around them, which would result in a faster search, since it wouldn’t have to explore extra nodes. Obviously, the smarter the heuristic, the more difficult it is to implement.
The simple straight-line heuristic function is fine for pathfinding over relatively short distances. This was okay in past versions of Factorio – about the only long distance pathfinding was done by biters made angry by pollution, and that doesn’t happen very often, relatively speaking. These days, however, we have artillery. Artillery can easily shoot – and aggro – massive numbers of biters on the far end of a large lake, who will then all try to pathfind around the lake. The video below shows what it looks like when the simple A* algorithm we’ve been using until now tries to go around a lake.
Coffee is Hard
Quest games started with a premise like “escape the wizard” or “escape the aliens” then forced you to do a series of banal and random tasks to avoid the many, many ways to die. Once you know the way, most of the games can be completed in under an hour. On the first go, it took my whole family weeks. Not the least of the horror was often having to do things several scenes before there’s any reason for having done them: in Space Quest I, the hero-janitor Roger has to refuse the first offer for his bike, so the guy will come back a little later and throw in a jetpack. Of course there’s no indication that he’ll come back with a jetpack, and no reason to think there’s a need for a jetpack until three days later when Roger exits his spaceship and floats into the void because he doesn’t have a jetpack. This leads to replaying most of the game a dozen times just looking for a jetpack, which is hidden not in a spaceship closet or a bar or a cavern, but behind a tough-but-not-too-tough bargaining strategy. It also took about ninety seconds to switch between screens, so exploration was grueling on a good day.
After playing the first two, I realized I’d been programming for 17 years and could probably make my own, especially when all the art is 320 pixels wide and that’s about how many pixels I can work with before people give me a sideways look and ask if I really have a liberal arts degree. I decided to base the story loosely on my novel, for two reasons: first, if the game happens to get the kind of notoriety my novel has not, I might be able to boost sales by claiming the novel can serve as a hint book. Second, I spent nineteen years writing that stupid book, and this seemed like a good a way to manage the withdrawal symptoms. Three weeks later I’d built a rendering engine I’m quite proud of, a simple command and scene logic processor, and accidentally reinvented GIF compression.