Dutch Game Garden
AI-assisted summary of Jan Willem Nijman - Vlambeer - "The art of screenshake" at INDIGO Classes 2013 — original source. Check the original for full context.
Source published:
Key ideas
- Vlambeer approaches game feel primarily through micro-interactions in the kinetic loop, turning player inputs like trigger presses into instant, high-impact audiovisual consequences. (2:05)
- Audiovisual framing often shapes player perception of weapon power more than underlying balance; boosting weapon audio by +12 dB can resolve player complaints without touching damage or projectile code. (21:41)
- Screen shake and hitstop pauses (such as 20 ms engine freezes) dramatically elevate perceived combat weight, though screen shake requires accessibility toggles to prevent player nausea. (18:01)
- Vlambeer's production methodology builds a playable core prototype within two to three days, devoting the remaining months or year entirely to UI menus and tuning game juice. (35:17)
Detailed notes
## Background Published by Dutch Game Garden on YouTube on December 16, 2013, this video captures Jan Willem Nijman's presentation at INDIGO Classes 2013. The talk explores 'The Art of Screenshake' and investigates why one game can feel satisfying to play while an ostensibly similar title feels terrible.
## TL;DR Jan Willem Nijman, co-founder of indie studio Vlambeer, casts aside academic game design theory to present practical craftsmanship tips for improving action titles. Using a live, custom-built GameMaker prototype, he systematically transforms a limp, dull 2D shooter into an explosive, punchy arcade game by layering visual feedback, oversized bullets, enemy hit flashes, sleep pauses, and directional screenshake. He demonstrates that tactile 'game feel' comes down to microscopic sensory details—such as environmental permanence, bass-heavy audio, and recoil mechanics—rather than complex underlying math. During the audience Q&A and live demo, Nijman emphasizes outside playtesting, balancing through mechanical constraints, and the intentional artistry behind Vlambeer's kinetic signature.
## Atmosphere & style The session carries a breezy, subversive, and refreshingly unpretentious workshop atmosphere, fueled by Nijman's dry humor, self-deprecating remarks, and candid rejection of high-minded industry jargon. His easygoing rapport with the host and live audience makes the talk feel less like a formal lecture and more like a backstage game jam hangout. Watching the prototype evolve from a soul-crushing crawl into a screen-shaking spectacle creates an immediate, visceral sense of discovery that matches the tactile punch of the games he makes.
## Bulletin - [02:05](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=125s) Vlambeer approaches game feel primarily through micro-interactions in the kinetic loop, turning player inputs like trigger presses into instant, high-impact audiovisual consequences. - [21:41](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1301s) Audiovisual framing often shapes player perception of weapon power more than underlying balance; boosting weapon audio by +12 dB can resolve player complaints without touching damage or projectile code. - [18:01](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1081s) Screen shake and hitstop pauses (such as 20 ms engine freezes) dramatically elevate perceived combat weight, though screen shake requires accessibility toggles to prevent player nausea. - [35:17](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=2117s) Vlambeer's production methodology builds a playable core prototype within two to three days, devoting the remaining months or year entirely to UI menus and tuning game juice.
## Key takeaways - [02:05](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=125s) The core of action game feel sits in the immediate feedback loop connecting player input directly to visible and audible game-state changes. - [09:28](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=568s) Lowering enemy health while multiplying spawn counts creates a more engaging sense of momentum and accomplishment than grinding down a single high-health sponge. - [09:28](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=568s) Exaggerating bullet sizes, accelerating projectile speed, and adding slight inaccuracy prevents gunplay from looking repetitive or sluggish. - [11:58](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=718s) White damage flashes and physical knockback communicate cause and effect to the player while dynamically shifting encounter geometry. - [13:07](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=787s) Maintaining permanent corpses, spent brass casings, and environmental destruction gives combat historical weight and aids player navigation. - [14:42](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=882s) Camera lerping and predictive offset targeting prioritize showing what the player is shooting rather than simply centering on the avatar. - [16:30](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=990s) Player recoil knockback introduces meaningful choices by turning shooting into an auxiliary movement and positioning mechanic. - [18:01](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1081s) Freezing the game engine for roughly 20 milliseconds on hit impacts gives the player's brain time to register kinetic crunch. - [21:41](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1301s) Sound design alone can completely alter perceived weapon balance and satisfaction without changing mechanical damage code. - [25:07](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1507s) Directional camera kick moving opposite to projectile trajectory visually reinforces the immense physical force of player weapons. - [26:31](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1591s) Massive explosion footprints and smoke plumes elevate arcade combat by turning misses into kinetic spectacle. - [28:16](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1696s) True game stakes require reciprocal vulnerability, giving enemies the ability to inflict lethal failure on the player. - [30:51](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1851s) Developers easily build subconscious tolerance to excessive juice and should use external playtesters to detect usability issues and motion sickness. - [33:01](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1981s) Polishing flight physics and turning speeds in Luftrausers aimed to make players immediately feel like elite pilots regardless of their final score. - [35:17](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=2117s) Vlambeer's distinct studio feel is the direct product of persistent personal aesthetic tuning rather than focus groups. - [37:22](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=2242s) Screen shake in Vlambeer games is deliberately coded by hand rather than an accidental legacy engine artifact.
## Detailed walkthrough ### [00:05](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=5s) Introduction and Vlambeer’s Portfolio
The host introduces Jan Willem Nijman (JW) from Vlambeer, noting that their backstage discussions about the phrase "game feel" nearly ended in an argument because Jan Willem disliked the term so much. Despite Jan Willem's threat to destroy the label, the host invites him on stage to explain what makes video games feel satisfying to play. Taking the microphone, Jan Willem introduces himself as one-half of indie powerhouse Vlambeer, remarking that he handles "game design and execution, whatever that means." He jokingly points out the endless quotation marks surrounding the phrase "game feel" before displaying Vlambeer's flaming bear logo.
Jan Willem briefly showcases the studio's portfolio of work to establish their pedigree in the action genre. He mentions *Ridiculous Fishing*, jokingly brushing aside any discussion of awards, followed by *Super Crate Box*, which is freely available on Steam. He highlights *GUN GODZ*, describing it as a Venusian gangster rap first-person shooter that few people played despite being genuinely solid. He then previews a cropped screenshot of the upcoming aerial dogfighting title *Luftrausers*, and concludes with *Nuclear Throne*, an active production described as a post-apocalyptic roguelike centered on mutated creatures growing new limbs and fighting monsters.
[02:05](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=125s) The Player Interaction Loop and the Mechanics of "Game Feel"
Jan Willem disclaims any academic authority, freely admitting that he is not a psychologist or a theorist, but rather someone who prototypes ideas, builds them, and prefers tweeting because it requires fewer words. He nods toward Martin Jonasson and Petri Purho, who are present in the audience and scheduled to deliver a similar lecture later that day, as well as Jonatan Söderström (Cactus), whose 2009 Independent Games Summit (IGS) talk compared making games to making babies while sharing foundational advice on game juice. Jan Willem describes the word "feel" as notoriously slippery because it is purely abstract and varies wildly across different humans.
```mermaid flowchart TD accTitle: The Video Game Interaction Loop accDescr: A loop diagram illustrating how sensory output from a game reaches the player, leads to physical inputs that change the game state, and provokes emotional reflection.
subgraph Engine ["The Machine"] G["Game State"] GC["State Changes"] end
subgraph User ["The Human"] P["Player Senses\n(Sight & Sound)"] T["Meaning & Thought\n(Learning & Value)"] end
G -->|"Visuals & Audio"| P P -->|"Controller Input"| GC GC -->|"Feedback"| G GC -->|"Impact"| T T -.->|"Informs Strategy"| P ```
To explain how video games function, Jan Willem breaks down the communication cycle between the machine and the human. A game sitting idle on hardware is lifeless until a player engages with it. The machine outputs sensory feedback—specifically through visuals and sound, since smell-based games do not exist yet—which the player interprets before feeding input back via physical buttons. The game alters its state in response to those inputs, sending new audiovisual stimuli back to the user. When this loop succeeds, the player reflects on the outcome, elevating button inputs into meaning, learning, and personal transformation. Reflecting on his studio's narrow focus within this broader cycle, Jan Willem says:
> “With Vlambeer, we're basically good at just one thing with making games, and that's like this part which is after the game goes into the player and then the player puts input into the game, the game goes back into the player; that's like I press a button and a bullet flies and the bullet hits something, that's that blue arrow there, and we make that feel good.”
He laments that many triple-A titles merely dump overwhelming audiovisual production into the player's eyes without demanding meaningful player interaction in return, while smaller art projects lean entirely into reflective contemplation. Vlambeer's specialty sits squarely at the kinetic intersection of input and instantaneous consequence.
[06:28](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=388s) Abandoning Theory: 30 Tiny Tricks for Action Games
Rejecting the scheduled conference label "The Art of Screenshake" as well as the phrase "game feel," Jan Willem decides to throw out high-minded theoretical discussion altogether. He announces that the session will instead be an intensely practical workshop titled "30 Tiny Tricks That Will Make Your Action Game Better." Because his entire background consists of shipping fast-paced shooters rather than writing papers, he intends to demonstrate these practical tweaks directly on screen using a live, custom-built testbed game.
As Jan Willem asserts regarding his qualification to teach actionable craftsmanship over abstract design frameworks:
> “I'm just going to cut all the talk crap and just teach you guys some tricks I learned while making games: so this talk is now officially called 30 tiny tricks that will make your action game better, which is something I can actually talk about, because I might not be an academic or a psychologist, I make action games, and I'm proud of it.”
[07:21](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=441s) The Dull Prototype: Animation, Audio, and Health Tuning
Jan Willem opens the live demonstration with an intentionally bad, bare-bones 2D platforming shooter, calling it the type of uninspired project anyone could assemble after following a few beginner programming tutorials. Borrowing an illustrative gag from Jonatan Söderström's 2009 talk—where an unpolished Mario clone required hitting enemies an absurd number of times—he shows how tedious the base game feels when a gun fires silent, microscopic projectiles at damage-sponge enemies that do not react to being shot.
He introduces the first foundational changes: basic animations and retro sound effects created using sfxr. The player avatar is given walking animations, a jumping frame where its hair bobs—matching the actual sweater Jan Willem is wearing on stage—and simple weapon discharge audio. Next, he tackles the tedious enemy combat balance by dramatically lowering enemy hit points. Rather than spending dozens of bullets whittling down a single static foe, enemies now drop after taking immediate, direct damage. Jan Willem notes:
> “Like this is such a silly tiny change, but if I would have shown you the first game instead of this one, you would have totally thought it was a shitty game, but this is not that bad, like this is starting to get somewhere.”
- **Trick 1: Basic Animations and Sound:** Adding walk cycles, jump frames, and audio generated from tools like sfxr immediately grounds the mechanics. - **Trick 2: Lower Enemy HP:** Reducing excessive enemy health pools eliminates combat drag and makes combat instantly rewarding.
[09:28](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=568s) Weapon Tuning: Rate of Fire, Density, and Bullet Feedback
With the core loop feeling slightly less tedious, Jan Willem addresses the weapon mechanics and encounter pacing. He raises the rate of fire on the player's weapon, arguing that in a title devoted exclusively to gunplay, withholding firepower makes no sense when shooting is the player's primary means of interacting with the game's world. To balance out the reduced enemy health and rapid-fire gunplay, he multiplies the enemy count from one high-health target to six low-health targets. Mathematically, the encounter represents a comparable damage pool, but psychological pacing and player satisfaction surge when the player mows through swarms of frail targets.
Jan Willem then systematically alters projectile presentation. He ridicules the common novice habit of making bullets tiny dots to mimic real-world dimensions, arguing that video game projectiles should be exaggerated to the size of a character's chest. He demonstrates a trademark Vlambeer shortcut for muzzle flashes: drawing a basic bright circle on the very first frame of the bullet's sprite animation. He accelerates bullet velocity across the screen, introduces a slight degree of inaccuracy to randomize bullet trajectory, and adds particle impact sparks when rounds collide with geometry or targets. Addressing the necessity of weapon spread, Jan Willem explains:
> “Less accuracy because it looks more fun, and it actually influences gameplay a little bit... it makes it less boring to watch it, and this is pretty much all there is to watch with this game; it's all about shooting, you know, it's a mindless stupid game, so make it look different every single time.”
- **Trick 3: Higher Rate of Fire:** Increasing firing cadence gives the player continuous responsive feedback from their primary tool. - **Trick 4: More Enemies:** Swapping a single tank-like target for multiple fragile enemies creates an engaging feeling of momentum without compromising difficulty. - **Trick 5: Bigger Bullets:** Scaling projectiles up to dramatic proportions ensures they read clearly on screen and feel physically formidable. - **Trick 6: Muzzle Flash:** Spawning a simple circular graphic on frame zero of the bullet projectile provides instant visual confirmation of every trigger press. - **Trick 7: Faster Bullets:** Rapid projectile speeds prevent sluggishness and sell the kinetic punch of the weapon. - **Trick 8: Less Accuracy:** Adding slight weapon spread breaks visual monotony and injects organic variation into every shot. - **Trick 9: Impact Effects:** Drawing visual impact sparks where bullets strike walls or enemies guarantees that projectiles never vanish silently into thin air.
[11:58](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=718s) Hit Animations and Enemy Knockback
Jan Willem Nijman continues demonstrating his interactive prototype, showing how small graphical and physical reactions instantly communicate cause and effect to the player. When bullets strike an enemy, the target flashes white, shifts into a slightly different pose, and its facial details briefly disappear. This visual hit reaction serves the exact same communicative purpose as the red arrow flying back into the player's skull shown earlier: it clearly indicates that damage has been dealt.
```mermaid flowchart LR accTitle: Combat Feedback Flow accDescr: A visual diagram illustrating how player attacks produce immediate sensory feedback and positional gameplay shifts. subgraph Feedback ["Visual Feedback"] A["Bullet Hit"] --> B["White Flash"] A --> C["Pose Change"] end subgraph Mechanics ["Physical Gameplay"] A --> D["Enemy Knockback"] D --> E["Positional Shift"] E --> F["Dynamic Combat"] end ```
Moving beyond pure visuals, Nijman introduces enemy knockback, an adjustment where enemies are shoved back a couple of pixels upon taking damage. While seemingly a minor aesthetic touch, knockback fundamentally alters encounters by pushing enemies around the geometry, causing them to fall off platforms or flank the player from unexpected angles. Jan Willem remarks on why the reaction feels so natural to watch: “Basically all I did was move them back a couple pixels when they get hit because like that's what happens when you get shot in real life too.”
[13:07](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=787s) Permanence, Corpses, and Barroom Destruction
Turning to the aftermath of an encounter, Nijman argues strongly against wiping clean spaces where fighting just took place. In his demo, fallen enemies remain on the floor, allowing the player to look back and trace exactly how many foes were slaughtered. This visual history doubles as organic navigation; when doubling back through a maze-like corridor, dead bodies serve as breadcrumbs showing where the player has already ventured. Nijman points out that modern hardware has eliminated any technical excuse for cleaning up: “Computers are super good nowadays right you could just put a million corpses in there and your computer would be like oh they don't have to disappear like that stuff is fine nowadays.”
To illustrate this philosophy in practice, he tabs over to *Nuclear Throne*, wandering across a wasteland level packed with broken rubble, scattered debris, and defeated maggots: - Dead bodies and rubble do not alter core mechanics, but they visually reinforce that the protagonist is “basically a guy made out of muscles and you shoot things.” - Destructible props such as cacti and rocks ensure that stray bullets never feel wasted, mirroring action cinema: “And that's also why in movies shootouts in bars are so good because every bullet that misses actually hits a bottle.” - The environment absorbs the combat, turning missed shots into kinetic spectacles rather than empty misses.
[14:42](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=882s) Camera Lerping, Framing, and Predictive Math
Nijman next addresses camera behavior by implementing camera lerp (linear interpolation). Instead of being rigidly glued to the protagonist's coordinates, the camera smoothly lags slightly behind motion, smoothing out player traversal. However, simply smoothing the tracking is not enough because centering the avatar misidentifies the true focus of an action title: “The game is not here to show you the player because this game is not about the player this game is about shooting things and you're shooting things in front of you so we might as well do this and like move the camera around a bit and show show you what's happening a bit more.”
He contrasts this with the camera work in Vlambeer's upcoming title *Luftrausers* (which he jokes is coming out “sometime in 2017”): - The camera dynamically pans ahead toward the player's aiming reticle rather than just tracking the plane. - When diving close to the ocean surface, the view automatically dips down to warn the player of incoming water. - All active enemy bullets on screen are fed into a mathematical formula that calculates their collective center point, gently pulling the camera toward incoming danger so players instinctively dodge off-screen threats before dying.
[16:30](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=990s) Screenshake and Player Knockback
Arriving at the title topic of the lecture, Nijman addresses why Vlambeer is so closely associated with screenshake: whenever developers ask for advice on how to polish an underwhelming prototype, adding screenshake is almost always the easiest fix that yields immediate gratification. In the demo, adding even a subtle screen rattle when firing or hitting targets instantly shifts the tone, turning a sad, limp avatar into an energetic, powerful experience.
Alongside screenshake, he adds player recoil knockback. Firing now shoves the player character backward, transforming shooting into an auxiliary movement mechanic: - A player can traverse the level entirely by firing in reverse, squeezing additional gameplay value out of the primary interaction button. - Because firing pushes the character backward, walking forward while shooting significantly slows movement down. - This creates meaningful decision-making: “If you put a button in a game like a firing button give someone a reason to not press it even if it's something tiny like this knockback otherwise you might as well remove the firing button and just have a game that automatically fires always.” - Recoil introduces environmental danger, such as accidentally sliding backward into a pool of lava while shooting enemies, or using continuous fire to float temporarily in midair.
[18:01](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1081s) Impact Pauses and "Sleep"
Nijman reveals one of his favorite tactile tricks: the "sleep" command. In GameMaker, sleep forces the entire engine to freeze for a specified number of milliseconds. He admits he knows little about low-level software engineering, but he places tiny freezes—roughly 20 milliseconds—directly onto frames where an attack connects or an enemy dies:
```mermaid flowchart TD accTitle: Hitstop Execution Flow accDescr: Flowchart showing how a projectile hit triggers an engine freeze to give the human brain time to register impact. P["Projectile Impacts Enemy"] --> S["Sleep Command (approx. 20ms)"] S --> F["Engine Pauses Frame Completely"] F --> B["Player Brain Processes Impact & Weight"] B --> R["Gameplay Resumes"] ```
Jan Willem explains his personal theory of hitstop perception: “When I hit an enemy it will pause for 20 milliseconds or something and your brain won't notice that but kind of use that time to process what's happening a bit more so all the moments that I want to have impact your brain is like oh yeah I remember that more because it took longer.” While virtually undetectable to the naked eye, the microscopic pause gives combat a visceral crunch. He looks out into the auditorium to see who is actually following along with the downloadable demo build, joking that watching someone else play is inherently flawed because game feel must be physically touched: “Next year we'll have 200 keyboards here for everybody under your chair.”
[19:37](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1177s) Gun Aesthetics, Strafing, and Spent Shells
Polishing weapons involves minor spatial tweaks. Nijman points out a weapon-lag effect—originally an accidental programming bug—where the gun sprite lags slightly behind player movement, giving the weapon tangible weight as though it is being physically hauled around. He pairs this with weapon kickback, sliding the gun sprite backward against the avatar's body every time a round discharges to emphasize firearm power.
He then adds strafing, allowing the avatar to walk backwards while aiming and firing in the opposite direction. Reversing direction requires letting go of the attack button for a split second to flip the character sprite, introducing another micro-decision that punishes mindless trigger-holding.
To reinforce permanence further, the weapon now spits out brass shells that bounce and remain permanently on the ground: - Modern systems have ample memory to track hundreds of discarded shell casings without clearing them. - Players can return to an area and admire the carpet of brass: “Later when I'm walking back here from defeating some boss or something like oh yeah I shot a lot of bullets there that was fun and I can actually count how many bullets I shot to check if the achievements were correct or whatever.” - Nijman jokingly calls out Finnish developer Petri Purho, suggesting that someone like Petri should simulate physics on every individual shell so players can pile them up and swim in mountains of spent brass.
[21:41](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1301s) Sound Design and Bass Boosted Audio
Nijman illustrates the psychological trickery of game feel with an industry anecdote from an acquaintance who currently serves as a senior designer at BioWare, but previously worked at Raven Software. During development on a first-person shooter—which Nijman recalls was likely the 2009 *Wolfenstein* reboot—investors complained that a specific weapon felt terrible, weak, and unpopular, ordering the designers to overhaul its core gameplay balance.
Instead of altering damage, fire rate, spread, or range, the designer simply opened Audacity, imported the firing sound effect, applied a +12 dB bass boost, and reinserted the asset into the project. When presented back to the investors with zero underlying code changes, they immediately praised the revision, declaring that the weapon finally played great.
Nijman emphasizes that the audio is still in the shipping game, where the gun became a player favorite. He proves the point live on stage by switching the demo's firing audio between thin, tinny clicks and a deep, thumping bass report, polling the audience to demonstrate how sound alone creates the illusion of raw mechanical power. Taking advantage of the existing bullet logic, he then transitions the weapon into a heavy, inaccurate machine gun to show how easily complex arsenals grow out of simple, juiced-up foundational mechanics.
[23:32](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1412s) Triple Machine Guns, Random Explosions, and Enemy Speed
Jan Willem Nijman continues mutating his bare-bones prototype into a full-blown spectacle by stacking ridiculous action tropes on top of the base mechanics. He swaps out the single shot for a spread-firing triple machine gun purely because the bullet object already existed and was easy to multiply. Embracing pure action-game excess, he argues: “If you're making an action game you might as well make a proper action game.” He then injects an arbitrary 33% chance for defeated enemies to violently detonate upon death. While admitting that spontaneous enemy combustion has very little to do with traditional game feel principles, it immediately satisfies player expectations and makes combat punchy, proving that mechanics do not always need logical justification if they feel undeniably fun.
```mermaid flowchart TD accTitle: Escalation of Combat Juice accDescr: Diagram showing how weapon upgrades lead to enemy buffs and visual juice. subgraph Offensive["Offense & Destruction"] A["Triple Machine Gun"] --> B["33% Death Explosions"] end subgraph Counterbalance["Balancing & Pace"] B --> C["Faster Enemies"] C --> D["Higher Enemy Count"] end subgraph Feedback["Juice Layer"] D --> E["Cranked Fire Rate"] E --> F["Directional Camera Kick"] end ```
Because these random cascading explosions clear the screen so effectively, the prototype abruptly becomes too easy. Nijman counters this imbalance by cranking up enemy movement speed and swarming the arena with larger mobs. Watching the red squares dart frantically toward the player while bullets spray across the screen, he points out how the visual rhythm instantly begins looking like an authentic, promising commercial title rather than a classroom test. He draws particular attention to the gun kick on the player sprite, noting that even though the animation consists of literally three poorly drawn pixels jolting backward, the kinetic illusion is complete. Nijman becomes so caught up in the flow of blowing up enemies that he jokingly threatens to stop talking entirely and just play the prototype for the rest of the session.
- **Weapon Upgrade:** Tripled the bullet stream across a forward spread. - **Explosion Chance:** Added a flat 33% chance of enemy detonation on death. - **Pacing Adjustments:** Boosted enemy movement speed and spawn counts to counterbalance player firepower. - **Visual Feedback:** Added a three-pixel weapon recoil kick directly onto the player character.
---
[25:07](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1507s) Rate of Fire, the Luftrausers Camera Kick, and Vlambeer Secrets
With the enemy population surging, Nijman dials the gun's rate of fire even higher, pointing out that adjusting core variables takes seconds in code and should be pushed as far as the design allows. He then reveals a subtle technique he originally intended to introduce as a standalone step: directional camera kick. While standard screen shake randomly offsets the viewport along the X and Y axes, this trick dynamically punches the camera slightly backward in the exact opposite direction of the player's aim.
Explaining the origin of the technique, Nijman notes: “So that camera kick is a little trick I figured out while making *Luftrausers*—instead of just having random shake, it also moves the camera back a little bit.” When firing toward the right, the entire world jerks slightly leftward, selling the immense physical force required to unleash the player's firepower. He breaks the fourth wall to banter with the audience, quipping that by exposing every single proprietary trick in his toolbox, Vlambeer will immediately go out of business and cancel all their projects. He jokes that since his co-founder Rami Ismail is not in the room to stop him, he is free to give away all of their secrets without getting yelled at.
- **Camera Kick Mechanic:** Shifts the viewport opposite to projectile velocity alongside random noise, grounding the recoil. - **Origins:** Developed during the tuning and prototyping of Vlambeer's aerial dogfighting title *Luftrausers*. - **Implementation:** Integrated cleanly into the shooting script without rewriting underlying engine code.
---
[26:31](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1591s) Cactus's Golden Rule: Huge Explosions and Environmental Permanence
Reflecting on his development philosophies, Nijman shares what he considers the single most transformative piece of game design advice he ever received. Around 2004 or 2005, when he set out to build a shoot 'em up, he reached out to Jonatan Söderström (better known in the indie scene as Cactus, and co-creator of *Hotline Miami*). Nijman asked him what it took to build genuinely great arcade experiences: “Anyway he told—I asked him how do you make good arcade games and he told me make really big explosions; and I've been working by that lesson ever since.”
To demonstrate, Nijman radically blows up the scale of the in-game blasts. Despite the visual asset being nothing more than an expanding geometric circle that flashes rapidly between solid black and white, the sheer footprint makes combat immediately feel massive. Nijman draws a direct line between visual impact and permanence, praising how *Hotline Miami* forces the player to slaughter an entire floor, ascend to the next room, and then slowly retrace their steps through an uninterrupted sea of corpses. This tactic forces the visceral "feel cycle" of combat to crash directly into the reflective "thinking cycle" of the narrative. To replicate that lingering aftermath in his prototype, he attaches fading smoke particles to every blast site. He urges designers not to stop at the bare surface, encouraging them to pile on gibs, dismembered heads, and permanent environmental scars to reinforce the weight of destruction.
- **Jonatan "Cactus" Söderström's Advice:** Maximize explosion size to instantly elevate arcade game feel. - **Explosion Asset Construction:** A single expanding circular primitive cycling between black and white flash states. - **Permanence Layering:** Added trailing smoke plumes that slowly dissipate long after combat concludes. - **Extreme Possibilities:** Nijman advocates pushing debris, gibs, and severed limbs to reinforce player impact.
---
[28:16](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1696s) Giving the Game Meaning: Cheap Slow-Mo and "You Were the Monster All Along"
Despite having intense particle effects, screenshake, and gunplay, Nijman points out that the prototype is still technically missing actual gameplay. Up to this stage, the player can act upon the world, but the world cannot push back; the enemies simply drift passively into the meat grinder. Nijman stresses that designers must stop relying on developer shortcuts like manually hitting a restart key when they collide with an obstacle: “Program that game over state, add some meaning to your game.” To give the combat dramatic stakes, he programs a lethal enemy collision that triggers a sudden, tragic narrative reversal.
```mermaid flowchart LR accTitle: Player Death Sequence Architecture accDescr: Sequence showing enemy contact triggering cheap slow-mo and narrative punchline. A["Enemy Hits Player"] --> B["Drop Engine to 10 FPS"] B --> C["Player Falls Under Gravity"] C --> D["Restore 60 FPS on Impact"] D --> E["Display Punchline: 'You were the monster'"] ```
When an enemy finally touches the player, Nijman executes a remarkably cheap developer trick to simulate cinematic slow motion: he drops the engine's internal frame rate down to 10 frames per second. Nijman jokes to the crowd: “Did you see how I just like put the frame rate at 10 frames per second because you won't notice on a shitty beamer and it looks like I program slow motion?” The player character tumbles helplessly downward in faux slow-mo until slamming into the floor, at which point the engine snaps back to full speed and presents a screen reading: *You were the monster all along*. Nijman contrasts this fully realized, juicy micro-game with the barren, unresponsive step-one prototype from the beginning of his talk—a version where the player could not even strafe. He concludes his core lecture to enthusiastic applause, summarizing his thesis: “Fill your games with love and tiny details.”
- **The Meaning Dilemma:** True game feel requires reciprocal vulnerability between the player avatar and the world. - **Cheap Slow Motion:** Forcing the game engine to 10 FPS upon fatal damage to bypass writing dedicated time-dilation code. - **The Punchline:** Inverting the narrative context by framing the passive, wandering enemies as the victims and the player as the monster. - **Core Takeaway:** Contrast between unpolished input and deeply layered feedback demonstrates the transformative power of juice.
---
[30:51](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1851s) Q&A: Weapon Balancing, Gut Feelings, and Screen Shake Nausea
The presentation transitions into a Q&A session moderated by the host. An audience member asks Nijman about his methodology for game balancing—specifically how he decides on enemy counts, ammunition pools, and level durations. Nijman responds that balance entirely depends on the underlying design philosophy. In *Super Crate Box*, for example, Vlambeer eliminated ammunition management altogether by placing crates that randomly force weapon swaps upon collection. Because weapon switches were mandatory to score points, individual weapon imbalances became a feature rather than a flaw. On the subject of testing these numbers, Nijman warns against trusting your own judgment: “Trust your initial gut feeling and then stop playing your game yourself because you're the worst playtester in the world because you just are too close to your game and there are way more other people than there are you.”
The moderator follows up by asking how a developer knows when they have added too much juice. Nijman candidly reveals that screen shake can become an addictive crutch for developers. While working on *Nuclear Throne*, the team grew so desensitized to excessive screenshake that they completely stopped noticing it, while first-time players became violently nauseous. Vlambeer ultimately had to implement an accessibility menu option to let players disable screen shake entirely. Nijman laughs that developers often run playtests, see people get sick, think it looks cool, and ignore the feedback anyway. He offers a hard practical boundary: “Don't put things in your game that hurt people physically, other than that just keep adding it until you're out of money.”
- **Balance via Mechanics (*Super Crate Box*):** Sidestepped mathematical weapon balance by tying progression to mandatory, random weapon swaps. - **Playtesting Trap:** Designers build muscle memory and become blinded to their own game's flaws and balance shifts. - **Physical Limits of Juice (*Nuclear Throne*):** Intense screenshake caused motion sickness, mandating an in-game toggle. - **The Golden Rule:** Push game feel and juice as far as production budget allows, stopping only when it induces literal physical distress.
---
[33:01](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1981s) Q&A: Subconscious Bug Avoidance and Tuning the Feel of Luftrausers
Expanding on the necessity of outside playtesting, Nijman brings up an earlier INDIGO talk by developer Brendon Chung. He admits he is shamelessly recycling Chung's insights just like he borrowed from Petri Purho and Martin Jonasson's famous juice presentation. He recounts Chung's observation that creators developing games in small teams end up subconsciously playing around their own unfinished work: “When you're playing your own game you're kind of subconsciously avoiding bugs and like oh yeah there's a problem here but I'm going to ignore it and yeah this game is a lot of fun and when someone else plays it it might turn out they have no clue how things work or they totally break your game and it's not fun for them.” A game is fundamentally an empty artifact until an outside human interacts with it, meaning external testers are mandatory to reveal reality.
The host highlights how much time Nijman personally spent fine-tuning the flight handling in *Luftrausers*—specifically tweaking the fine turning rates for left, right, up, and down until steering felt silky smooth despite being tricky to master. Nijman confirms that dialing in those exact values consumed a massive portion of the schedule because mechanical control feel was the entire thesis of the game. Nijman explains the design philosophy behind that tuning: “With *Luftrausers* we set out to make it a game that feels great to play for everybody—like I give you the computer and you launch and you start blowing up things and you feel like oh yeah I'm the coolest fighter pilot in the world.” Even if a newcomer dies instantly with an abysmal final score, the immediate sensory feedback of piloting the aircraft makes them feel legendary from their very first second on the throttle.
- **Subconscious Bias:** Creators naturally avoid game-breaking edge cases and blind themselves to obtuse UX during internal sessions. - **The Player Dependency:** A game has no intrinsic meaning until an impartial human player steps in to interact with its systems. - ***Luftrausers* Core Mandate:** Prioritized steering responsiveness and immediate empowerment over mechanical simplicity. - **The Illusion of Competence:** Ensuring the player feels like an elite ace pilot regardless of actual mechanical mastery or low scores.
[35:17](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=2117s) The "Vlambeer Feel" and the Polish Phase
The discussion opens with reflections on player perception of difficulty and performance. Reflecting on past projects, Jan Willem Nijman points out the difference between games that feel rewarding versus games that are punishingly hard, recalling internal debates with his Vlambeer co-founder Rami Ismail: “Whereas with Super Crate Box we had a fight about—I said it's way too hard, it's way too hard, and Rami was like, ‘No, no, it's supposed to be this way.’” When asked how much time the studio devotes to initial setup versus final refinement, Nijman reveals their typical production pipeline. Vlambeer creates the core functional game in a matter of days, only to spend the rest of the year refining every detail. For *Luftrausers*, the very first prototype was mechanically identical to the finished release; it simply lacked front-end menus. Nijman jokes that because designing menus is completely uninteresting compared to programming explosions and particle effects, that tedious development window becomes an extended sandbox for fine-tuning game feel.
```mermaid flowchart LR accTitle: Vlambeer Development Pipeline accDescr: Diagram showing the rapid core prototyping phase followed by an extended polishing and menu-building phase. subgraph Rapid["Days 1-3: Core Setup"] A["Core Prototype Built"] --> B["Basic Mechanics & Gunplay"] end subgraph Polish["Year-Long Polish Phase"] C["Build Menus & UI"] D["Tune Game Feel & Juice"] E["Flashing, Shake & Particles"] C <--> D D --> E end Rapid --> Polish ```
This persistent tweaking caters directly to the developers' personal tastes rather than broad focus groups. Nijman explains that what people perceive as the distinct "Vlambeer feel" is simply his personal definition of what feels satisfying in action games: triple machine guns, high-velocity rounds, enemies that flash white on impact, and chaotic explosions. When audience members inquire whether hardware platforms and input methods alter that sensation, Nijman agrees that controls fundamentally reshape the experience. He cites platform ports as an example where subtle nuances can be lost: *Radical Fishing* was originally programmed in Game Maker before Rami Ismail ported it to Flash, and Nijman still quietly prefers the feel of the Game Maker original, teasing that Rami was responsible for the discrepancy.
- Initial Vlambeer prototypes are created within a few days, followed by up to a year of polish and menu construction. - The "Vlambeer feel" is defined by specific audiovisual cues: intense screen trauma, flashing sprites on damage, recoil, and high-impact weapon feedback. - Porting engines and switching controllers—such as transitioning between keyboards and gamepads or moving from Game Maker to Flash—can subtly alter movement and timing physics.
---
[37:22](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=2242s) Haptic Feedback and the Myth of the Screenshake Bug
The conversation turns to tactile feedback. An attendee asks whether Vlambeer incorporates controller rumble or haptic feedback into their games. Nijman admits that while haptic feedback is an incredible sensory tool, he personally has rarely implemented it in his own code, noting that other collaborators handled rumble integration when *Luftrausers* came to consoles. Instead, he jokes about taking physical feedback to the extreme by wanting to engineer a computer monitor with built-in motors that physically shakes the hardware on every shot.
An audience member asks about a rumor circulating among game design students that screen shaking originally began as an accidental engine bug in Game Maker that Vlambeer decided to keep. Nijman firmly dispels this myth. He clarifies that while very low-resolution games frequently suffer from jittery, unintentionally shaky camera tracking because smooth sub-pixel camera scrolling is difficult, the dramatic screen shake featured in Vlambeer titles is entirely intentional and programmed by hand. Regardless of its historical origin across the medium, Nijman maintains an uncompromising stance on its utility in game design: “I also would like to say that probably every game would benefit from having screen shake—even if you're like, ‘Oh, my puzzle game doesn't need screen shake,’ you're wrong.”
---
[39:11](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=2351s) Marketing Game Feel and the Power of Subtle Details
When asked whether Vlambeer actively markets screen shake or leaves it for players to uncover on their own, Nijman outlines the psychological disconnect players have with game juice. If an action game lacks dynamic feedback, players simply label it as bad or unengaging without understanding why; when the feedback is present, players enjoy the experience seamlessly without ever analyzing the underlying mechanics. Because players subconsciously absorb these micro-interactions rather than consciously deconstructing them, Vlambeer actively uses the discussion of game feel as a promotional tool.
Pointing out another tiny detail he snuck into the demo—a puff-of-dust cloud under the player's feet upon jumping—Nijman stresses: “No player without seeing this presentation is going to understand that or feel it or—well, they feel it, but don't think about it, and screen shake is like the most basic example of how to make games feel good.” By explicitly pulling back the curtain on tiny elements like knockback, hit-stops, and screen trauma, the studio turns technical craftsmanship into an identifiable brand identity. Closing the Q&A segment, an audience member asks about upcoming releases or secret projects. Nijman teases that the studio has major news dropping later that evening that he is not yet allowed to reveal, advising everyone in the room to keep their phones nearby.
---
[41:12](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=2472s) Live Demo: Experiencing "Meaning" and Prototype Graphics
The host asks Nijman about the technical setup of his talk, specifically how he was able to switch seamlessly between playable, fully functional demo slides. Nijman reveals that the entire presentation is not a slideshow software file, but a custom application coded entirely from scratch in Game Maker. To demonstrate the contrast, Nijman hands the host the controls for a live playtest.
The interactive controls demonstrate how different layers alter the emotional texture of play: - Pressing **D** toggles "Meaning," enabling enemy damage so the player character can actually die. - Pressing **S** reloads the active scene and respawns the player. - Pressing **A** steps back into previous slides to compare earlier, stripped-down iterations.
```mermaid flowchart TD accTitle: Live Demo Control Mapping accDescr: Key bindings used during the interactive INDIGO presentation demo. K_A["Key: A"] --> A_Action["Step Back Previous Iteration / Slide"] K_S["Key: S"] --> S_Action["Reload Current Room / Respawn"] K_D["Key: D"] --> D_Action["Toggle 'Meaning' (Enable Enemy Damage)"] ```
When Nijman turns on mortality by pressing D, the host immediately dies and laughs as Nijman asks, “Don't you feel like guilt for killing them?” Nijman then flips the game back to the bare-bones, un-juiced prototype from the start of the lecture. Stripped of screenshake, sound effects, hit flashes, and weapon kick, the host remarks that the game feels “very lame,” although he jokingly promises that Dutch Game Garden would fund the concept completely. The session concludes with playful banter over the art assets: the host assumes the wandering enemies are zombies, but Nijman retorts that they might just be neighborhood kids trick-or-treating in skull masks. Nijman also proudly confirms that he drew and animated all the custom sprites himself—including the protagonist’s floppy hair, which mirrors his own need for a haircut—before stepping down to warm applause from the room.
## Notable quotes > [37:22](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=2242s) probably every game would benefit from having screen shake—even if you're like, ‘Oh, my puzzle game doesn't need screen shake,’ you're wrong. — Jan Willem Nijman
> [30:51](https://www.youtube.com/watch?v=AJdEqssNZ-U&t=1851s) Trust your initial gut feeling and then stop playing your game yourself because you're the worst playtester in the world because you just are too close to your game and there are way more other people than there are you. — Jan Willem Nijman
## Mentioned Jan Willem Nijman, Rami Ismail, Vlambeer, Dutch Game Garden, Martin Jonasson, Petri Purho, Jonatan Söderström, Brendon Chung, BioWare, Raven Software, Ridiculous Fishing, Super Crate Box, GUN GODZ, Luftrausers, Nuclear Throne, Radical Fishing, Hotline Miami, Wolfenstein, GameMaker, Audacity, sfxr, Steam
## Video description INDIGO Classes 2013: Jan Willem Nijman is 50% of indie power house Vlambeer. He talks about 'The Art of Screenshake'. Why is it that one game plays great and another, similar game feels terrible?
[Source](https://www.youtube.com/watch?v=AJdEqssNZ-U)