Fixed: Nickname max length not counting UTF-8 characters correctly
Snakes without Brakes 1.0.1
Added: Automatically reset if player gets stuck
Fixed: Levels not loading correctly in Firefox
PolyTrack 0.3.1
This update is compatible with 0.3.0, so updating is optional but recommended.
Added: In-game Discord link
Added: The escape key can now be used to close the leaderboard, track import/export and track selection screens.
Changed: When two leaderboard entries have the same time, the person who submitted the record first will be at the top.
Changed: Improved the determinism test to be more accurate to prevent invalid replays being submitted.
Optimized: Verification process
Fixed: Frame color not affecting wheels in leaderboard images
Fixed: A rare problem where some valid replays would be marked as invalid
Fixed: Long nicknames would create a line break and hide the verification status in the leaderboard
Fixed: The track import window was slightly overlapping the game logo
Fixed: Error if wheel audio plays before audio panners had been initialized
PolyTrack 0.3.0 - Checkpoints & leaderboards
Added: Leaderboard
Added: Select opponents to play against from the leaderboard
Added: Checkpoints
Added: Dynamic clouds
Added: New music
Added: Settings menu
Option for imperial units
Option to disable reset hint
Option to disable ghost car
Option to disable particles
Option to disable skidmarks
Graphics settings
Audio settings
Key bindings
Added: Cockpit camera by pressing [C] or [M]
Added: Checkpoint sound effect
Added: Editor keyboard camera controls
Added: Editor delete hotkey [X] or [DELETE]
Added: Menu button icon animations
Added: Track thumbnails shows checkpoints
Added: New tracks
Track 8
Track 9
Track 10
Added: New track parts
Checkpoint
Half block
Quarter block
Half plane
Quarter plane
Plane bridge
Sign arrow left
Sign arrow right
Sign arrow up
Sign arrow down
Sign warning
Sign wrong way
Wide checkpoint
Wall track ceiling
Wall track floor
Block sloped down
Block sloped down inner corner
Block sloped down outer corner
Block sloped up
Block sloped up inner corner
Block sloped up outer corner
Wide finish
Plane checkpoint
Plane finish
Plane wide checkpoint
Plane wide finish
Added: Localization
Arabic
German
Spanish
French
Italian
Japanese
Korean
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Russian
Turkish
Ukrainian
Simplified Chinese
Traditional Chinese
Changed: Added checkpoints to all existing tracks
Changed: Car collision model to prevent bouncing when hitting barrier
Changed: Car handling to prevent spinning out
Changed: Car frame color also affect wheels
Changed: Base62 is now used for track codes to prevent issues with the - and _ characters
Changed: Track names are now also encoded to prevent issues with special characters
Changed: When a track has multiple starting points, the last one will be used instead of the first
Changed: A time difference of zero is now red instead of green
Changed: Car collision audio
Changed: Ghost car audio volume
Changed: The UI will be scaled down on small screens
Changed: The mouse cursor is shown when it is moved
Changed: Track thumbnail minimum zoom for very small tracks
Changed: The timer can also be started by reversing now
Changed: Slightly lighter tire color
Changed: Road barriers slightly lighter color
Changed: Editor prevent building too far from center to prevent mistakes
Changed: Updated ThreeJS to r155
Optimized: Skidmark raytracing
Optimized: Enabled backface culling
Optimized: Lowered physics activation distance
Optimized: Compressed tracks
Optimized: Compressed replays
Fixed: Track material being too reflective
Fixed: Wheels not spinning when not in contact with ground
Fixed: Wheels not spinning when accelerating without ground contact
Fixed: Engine volume when in mid-air
Fixed: Error when importing very large tracks
Fixed: Car collision audio not always playing
Fixed: Crackling tire audio in Firefox
Fixed: Car shadow shaking on some devices
Fixed: Game rendering in too low resolution since the pixel ratio of the device was not accounted for
Fixed: Tracks could not be imported if there was a whitespace in the track code
Fixed: Error when importing track code with an invalid character
Fixed: Tracks with very long names creating wide cards in track selection
Fixed: Fonts not loading in some browsers
Fixed: Physics memory leak causing crash when playing for a long time
Fixed: XML parse errors in Firefox console
PolyTrack 0.2.0
Added: Ghost replays to race against
Added: Ghost replays driving on the track in the menu
Added: New track save format
Added: New tracks
Track 5
Track 6
Track 7
Added: New track parts
Short smooth turn
Long smooth turn
Long slope up
Long slope down
Slope with pillar at bottom
S-curve left
S-curve right
T-intersection
Cross intersection
Pillar with one side branch
Pillar with two side branches
Pillar with three side branches
Pillar with four side branches
Vertical track bottom round corner
Vertical track middle corner
Vertical track top round corner
Added: Background mountains
Added: Smoke particle effect from skid marks
Added: Up and down buttons in editor
Tweaked: UI rework
Tweaked: New logo
Tweaked: New font
Tweaked: Updated track 1
Tweaked: Updated car model
Tweaked: Rotated car in customization so it is not in shadow
Tweaked: Adjusted steering curve
Tweaked: Increased tires audio volume
Fixed: Timer showing "undefined" when over 10 minutes
Fixed: Reset part selection when leaving editor
Fixed: Physics were not completely deterministic
Fixed: Crashing into finish from underneath being detected
PolyTrack 0.1.1
Fixed: The UI click sound failed to load in Firefox
Fixed: After finishing a track, the time announcement UI would sometimes get stuck and show in the menu as well
PolyTrack
PolyTrack is a low-poly racing game with loops, jumps and high speeds, where every millisecond counts. The game is heavily inspired by TrackMania, where you race against the clock to improve your time on different tracks.
The game includes a level editor where you can create tracks, which you can then export and share with others.
Krossa 1.02.6 & DustSim 1.03.1
Fixed: Query string parameters not working since document.domain has been deprecated
New website design
My website is more than 5 years old now, so it was certainly time for a refresh.
The new design uses a purple dark theme instead of the old very bright white and orange theme.
I also have a new logo which is a bit more distinct than a plain orange square!
The biggest reason for the redesign wasn't actually to just make it look nicer,
but with my old website it was a bit cumbersome to add new projects and
blog posts. For example, when I wanted to add a new project on my old website, I had to add
code at 7 different places across the website, but now with my new website all
I have to do is drag in a folder and PHP takes care of the rest.
If you find any problems with the new design you can message me on Twitter or email me.
DustSim 1.03 - The Scenario Editor
This update includes a scenario editor which you can use to modify the built-in scenarios or even create your own DustSim scenarios. These scenarios can then be saved and shared either as a link or as a string of data.
Added: Scenario editor
Added: Import/Export scenarios
Added: Loading screen when loading scenarios
Added: 12 new scenarios
Encounter negative
Encounter negative 2
Collision
Cut
Orbiters in ring
Eccentric orbits
Swing
Swing negative
Blender two
Blender four
Blender eight
Carousel
Added: Poles separate options for giving and receiving gravity from other poles
Added: Poles transparency setting
Added: Button for resetting all view options to default
Added: Setting for adjusting the gravity influence on particles
Added: Advanced allow super high amount of particles
Added: Advanced option to disable anti-aliasing
Added: Advanced setting show steps and time elapsed
Added: Touch screen support
Tweaked: Increased maximum amount of poles to 50 from 12
Tweaked: Lowered the default particle limit again due to the new advanced particle limit option
Tweaked: Consistent zoom on different sized screens
Tweaked: The outline in the pole creation tool is now easier to see
Tweaked: Step length is now a global setting instead of a scenario specific setting
Tweaked: The pole models now have more vertices to give them a smoother look
Tweaked: The arrow keys can now be used to change the color in a color picker instead of having to tab through every single color individually
Tweaked: "Max particles" renamed to "Particle limit"
Tweaked: "Interpolar force strength" renamed to "Pole influence"
Tweaked: "Pole tool" renamed to "Poles"
Tweaked: "Particle tool" renamed to "Particles"
Fixed: Gaps when creating particles and moving mouse quickly
Fixed: Using up/down arrow keys to move camera would scroll side tab
Fixed: Using arrow keys to change slider value would move the camera
Fixed: Some hardware(mainly mobile) were using lowp samplers causing particles to behave weirdly
Fixed: The scenarios "Crushing six" and "Crushing eight" were broken
Fixed: Poles and particles updating in an incorrect order
Fixed: Particle tool failing to create particles in some circumstances
DustSim 1.02 - Accessibility & Aesthetics
Accessibility is an important part of this update. All buttons and settings can now be accessed with just a keyboard. Particles and poles cannot be spawned without a mouse, but at least the preconfigured scenarios can be viewed now.
The camera can be moved using WASD or the arrow keys and zoom can be changed with Q & E. There are new shortcut keys for quickly pausing the simulation(Space or P) and for hiding the user interface(H).
The update includes several new features for changing the look of the particles, as well as changing the color of the poles and background. Many new scenarios have been added in addition to some minor optimizations and bug fixes.
Added: Particle sprites
Added: Slider for choosing the size of the particle sprites
Added: New particle color theme depending on the direction of travel
Added: New particle color theme where every particle is randomly colored
Added: When the single color theme is used the color can be selected instead of just being white
Added: Option to disable particle brightness variation
Added: The background color can now be changed in the view tab
Added: The color of the poles can also be changed in the view tab
Added: A slider for changing the display size of the poles
Added: Option to have the display size of the poles not depend on the zoom
Added: 18 new scenarios
Spinning around grid
Tidal force 2
Two orbiting rings
Three orbiting rings
Moon with ring
Moon inside ring
Symmetry 3
Drop two
Drop three
Drop six
Birds
Flower six
Flower twelve
Exploding flower
Crushing ring
Crushing spinning
Umbrella
Contained rings
Added: The camera can now be moved using the arrow keys or WASD
Added: All buttons, sliders and other settings are now accessible with a keyboard
Added: The simulation can now easily be paused by pressing Space or P
Added: Press H to completely hide the user interface
Added: The zoom percentage can now be seen in the top right corner
Added: Scrollbar subtle hover effect
Added: WebGL2 support
Tweaked: Moved view settings out of the settings tab to its own separate view tab
Tweaked: Increased the max particles limit to 37 748 736
Tweaked: Particle tool default amount changed to 90 000
Tweaked: Particle tool default random velocity changed to 5
Tweaked: Changed style of FPS counter to be smaller
Tweaked: Particle brightness renamed to particle opacity
Tweaked: Renamed custom particle color theme to multicolor
Tweaked: Interpolar force strength is now shown as percentage of default
Tweaked: Interpolar force strength increased max amount
Tweaked: Interpolar force strength increased default value
Tweaked: Icons are now SVGs instead of raster images
Tweaked: Max particles slider will be reset if switching tab before applying
Tweaked: Updated Three.js to r124
Optimized: Rendering by precomputing the projectionModelView matrix outside of the shader
Optimized: Simulation by not simulating unused poles
Fixed: Color theme would get reset if the max amount of particles was changed
Fixed: Zooming while dragging the view behaved weirdly
Fixed: FPS counter never showed less than 10 fps
Fixed: A bug causing the canvas to constantly resize degrading performance
Game of Life 3D 1.01.2
Fixed: Inaccurate simulation results on some graphics cards due to rounding errors
Fixed: Some UI elements being refreshed twice when scenes were loaded
Game of Life 3D 1.01.1
Fixed: Copy save string was not working
Fixed: When opening a searched pattern the correct rules, world size and other options will be set
Fixed: Simulation running much slower due to the wrap around option
Fixed: Searcher not working in Internet Explorer
Game of Life 3D 1.01
Added: A new much faster rendering method which can be enabled by setting Simulation, Rendering: Fast
Added: Quicksaving(Shortcut key: K) and quickloading(Shortcut key: L)
Added: Shareable save strings
Added: Soup searching tool which can be used to find new patterns
Added: Option to have walls wrap around or block
Added: Press Space or P to temorarily pause the simulation
Fixed: The application could freeze if the user switched tabs
Fixed: Memory leaks when changing size
Added: New rule presets
6855: A ruleset that seems to be stable when the density is higher than 15% but fades to nothing otherwise
4526: An infinitely expanding ruleset growing crystal-like structures
4544: Another rapidly infinitely expanding ruleset
Tweaked: Antialiasing is now always enabled. This disables OVR_multiview2 which was not working properly on Oculus Quest
Tweaked: Updated Three.js to r117
Optimized: Better render order to allow for more early Z-testing
Fixed: Probably fixed black screen on Oculus Quest
Planets by Earth 1.00.1
Tweaked: Lowered music and ambient volume
Optimized: Better render order to allow for more early Z-testing
Fixed: Smaller fallback textures in case higher resolution textures are not supported to avoid textures failing to load
Big Bubbles 1.04.1
Tweaked: The distance from the mouse to the center now affects the speed
Tweaked: The distance from the touch point to the center now affects the speed
Tweaked: "Press R to restart" changed to "Press R / CLICK to restart"
Fixed: Could zoom with scroll wheel before game had loaded
Big Bubbles 1.04
Added: Music
Added: Mouse controls
Added: Touch controls
Added: Gamepad controls
Tweaked: Checkpoints every 5 levels from which you will restart if you lose
Tweaked: More responsive player movement
Optimized: Better culling of bubbles
Optimized: Hide bubble level numbers if they are too small on the screen
Optimized: Cache and reuse color gradients for bubbles
Fixed: Workaround for a Chromium bug causing the game to use CPU Compositing and running super slowly
Fixed: The player could sometimes move before the game had started
Fixed: Game title would sometimes be too wide on small screens
Fixed: Disabled page zooming on mobile
Fixed: Zooming out in the beginning on small screens
Planets by Earth [VR]
What if the Moon was replaced by planets in the Solar System?
Planets by Earth is a short VR experience built with A-Frame showing what the night sky would look like if we replaced the Moon with planets in the Solar System.
The experience is built to be viewed in VR but can also be viewed without a VR-headset.
DustSim 1.01
Added: Particle colors
Color depending on velocity
Custom particle colors
Color picker
Added: New scenarios
Encounter 2
Grid
Moon
Symmetry 2
Two moons
Two negative moons
Added: Move view with left mouse button when no is tool selected
Added: Encounter as default scenario
Added: Scenario selection hover effect
Added: Navigate with 1,2,3,4 as keyboard shortcuts
Tweaked: Updated all scenario images to use the new colors
Tweaked: Moved speed slider from view to simulation settings
Tweaked: Updated Three.js to r114
Tweaked: Negative and positive attract each other rather than repell
Tweaked: Black scenario images rather than transparent while loading
Fixed: DustSim asking for permission to access VR in Firefox even though it is not a VR application
Krossa 1.02.4
Added: Ammo.js WebAssembly (Disabled in FF due to performance problems)
Added: Lite mode for standalone headsets
Disabled shadows
Disabled antialiasing
Two vases rather than four
Lower quality baseball bat
Tweaked: Updated Ammo.js
Tweaked: Easier snap turning
Fixed: Vase hit haptics
Fixed: Cloud rendering on mobile hardware
Fixed: Depth buffer not being cleared properly
Fixed: Physics bugs if physics thread takes too long to initalize
Fixed: Error message in some browsers(OculusBrowser)
Optimized: Use WebGL2 and OVR_multiview2 if possible
Optimized: Switched from PCFSoft to PCF shadows
Optimized: Less triangles in title model
Optimized: Lower quality for generated text
Optimized: Texture mipmapping and anisotropy
Optimized: Materials
Optimized: Disabled stencil buffer
Krossa 1.02.3
Fixed: Haptic actuators error
Krossa 1.02.2
Tweaked: The website link is now clickable
Fixed: Spatial audio
Krossa 1.02.1
Tweaked: Ported to the newer WebXR API, still supports WebVR through a polyfill
Tweaked: Updated Three.js to r113
Tweaked: Vase breaking sound volume
Tweaked: Color of menu
Optimized: Use instancing for trees
Optimized: Communication between physics and main thread
Fixed: Memory leaks
Game of Life 3D
A variation of Conway's Game of Life in 3D, using GPU processing for realtime simulation.
Shielder 1.05
Added: Bronze, silver, gold and mastery medals which can be unlocked in each sector
Added: Medal unlock progress bar
Added: Total medals earned are now shown in place of the old level bar in the map selection screen
Added: Notifications which show when medals and sectors are unlocked
Added: After being hit by a laser the player will have one second of inviniciblity
Added: Player wreck
Added: Player health bar
Added: Boss health bar
Added: Indication in map selection on whether a boss has been defeated
Added: Number showing how many times a boss has been defeated
Added: Graphics settings screen
Added: Ability to quit from the pause menu
Added: Some preperations for the final boss
Tweaked: Maps are now unlocked with medals
Tweaked: Shield enemies burst fire
Tweaked: Better player shield image
Tweaked: Brighter colors for the blue player
Tweaked: Turned play and coop buttons into icon buttons
Tweaked: Shooting is now updated at a fixed timestep to get more accurate shooting at low framerates
Tweaked: Randomized boss positions a little bit
Fixed: The blue boss mega laser stopped doing damage too soon
Fixed: Coloring flickering due to floating-point inaccuracy
Fixed: Missing line break when multiple sectors were unlocked at the same time
Fixed: Trashcan icon missing if internet connection was lost before navigating to saves screen
Optimized: Map selection
Optimized: Post-processor by combining overlay filters into one
Optimized: Only update score UI when the score actually changed
Removed: Levels
Shielder 1.04
Added: Boss for the red section
Added: Boss for the green section
Added: Boss for the blue section
Added: Muzzle flashes for enemies
Added: New shooting sound for green drones
Added: New shooting sound for blue drone
Added: After battle enemy lights will be disabled
Tweaked: Better looking explosions
Tweaked: Bigger blue projectiles since they do more damage
Tweaked: Blue projectiles are now slower
Tweaked: Score notifications now look better when semi-transparent
Tweaked: Map selection back button now has an icon
Fixed: Colors would sometimes flash when changing color theme
Fixed: Shooting is now more consistent with low framerates
Fixed: The center of rotation of drones were wrong
Fixed: Slow motion post-processing effect was still present after quitting
Optimized: Post-processing effects
Optimized: Score notifications
Shielder 1.03
Added: The sectors are now divided into a red, green, blue and purple section with corresponding enemies
Added: Different colored force fields matching the section color
Added: The UI will change color depending on the section
Added: Post-processing color overlay for each section
Added: A lot of new sectors
Added: Sectors are now unlocked as the player progresses through the game
Added: Messages in the death screen will show when new sectors have been unlocked
Added: Camera shake when hit
Added: Pause by pressing P, space or the escape key
Added: The game will remember what sector was previously selected
Added: Pressing enter to play sector
Tweaked: Increased player movement speed
Tweaked: Increased knockback when reflecting lasers
Tweaked: Decreased knockback when hit by lasers
Tweaked: Death screen back button will return to sector selection instead of main menu
Tweaked: Made warnings easier to read
Tweaked: Added icons to more buttons
Tweaked: Icons now have a colored glow effect
Fixed: Score number formatting would break with scores higher than 1 000 000
Fixed: Limited player velocity and position to prevent rare cases of glitching out of the play area
Removed: Difficulty selection
Shielder 1.02
Added: Levels and XP
Added: Saving and save slots
Added: Sector 7
Added: Press the space bar or R to retry
Added: Press any gamepad button to retry
Tweaked: Redesigned main menu to use icons for buttons
Tweaked: Redesigned death screen UI to also use icon buttons
Tweaked: Score multiplier is no longer reset when hit
Tweaked: Increased score needed to increase multiplier to compensate for it no longer being reset after a hit
Tweaked: Increased the brightness of the slow motion filter
Tweaked: Increased the framerate of laser hit effects
Tweaked: Slightly bigger hit effects
Tweaked: Coop button moved from main menu to map selection
Tweaked: Scores will now have thousand separators
Tweaked: Arrow icons now have a subtle shadow
Optimized: Shadow are no longer generated for chunks outside of the viewport
Fixed: Minimized flashing of unstyled text
DustSim
Simulate millions of independent particles in realtime with this physics sandbox.
Shielder 1.01
Added: Map selection screen
Added: 5 new maps
Added: Options screen with SFX and music volume settings
Added: Post processing effect during slow motion
Added: Projectile interpolation
Added: Physics interpolation
Added: Glow effect for force fields
Added: Control movement with arrow keys
Added: If drones somehow manage to escape the play area they will be deleted
Added: Warning if WebAudio is unsupported
Added: Warning if WebStorage is unsupported
Added: Warning in the input selection screen if the Gamepad API is unsupported
Added: Sitelock warning
Tweaked: Decreased projectile damage
Tweaked: Better downscaling of player images
Tweaked: Lowered volume of click sound
Tweaked: Gamepad index will be shown in the input selection screen to differentiate between multiple of the same kind of controller
Tweaked: Changed "Keyboard & Mouse" to "Keyboard and Mouse"
Tweaked: Player spawn locations in multiplayer
Optimized: Less detailed physics models for enemies
Optimized: Drones outside of the viewport will not be drawn
Optimized: Disabled alpha channel for canvas
Fixed: Resume blocked audio context with user gestures
Fixed: Input selection UI overlapping on very small screens
Fixed: Keyboard input prevent default actions
Krossa 1.02
Added: Trees surrounding the play area
Added: Option to disable trees to improve performance
Added: Vases will not only cast shadows, but also recieve shadows on medium and high shadow quality settings
Added: Website and game version visible in VR menu
Added: Loading percentage shown inside of the loading spinner
Added: "Smash to start" can now be skipped with a button press
Added: Some support for WebXR
Tweaked: Doubled the shadow resolution for all shadow settings
Tweaked: The concrete floor is now a circle instead of a square
Tweaked: Slightly lowered the surrounding terrain
Tweaked: "Smash to start" will have a two second spawn delay to prevent starting by accident
Tweaked: Updated three.js to r99
Optimized: Physics simulation
Optimized: Fixed lag spikes when spawning and breaking vases
Optimized: Loading of models
Fixed: Controllers not remembering position when tracking lost
Fixed: Shadows of vase stands peter-panning
Fixed: Connecting and disconnecting VR displays should be handled better now
Fixed: Spawn animations of vases did not play completely
Fixed: Console log spam
Removed: Arrow showing forward direction
Shielder
Defeat enemies in a laser bullet-hell using nothing but a reflective shield.