     reset-mouse ;
 
 : apply-friction ( velocity -- velocity' )
-    FRICTION v*n ;
+    FRICTION v* ;
 
 : apply-gravity ( velocity -- velocity' )
     1 over [ GRAVITY - ] change-nth ;

    GL_DEPTH_TEST glEnable
    GL_TEXTURE_2D glEnable
    GL_VERTEX_ARRAY glEnableClientState
    PLAYER-START-LOCATION 0.0 0.0 { 0.0 0.0 0.0 } player boa >>player
    <perlin-noise-table> 0.01 0.01 <scale> { 512 512 } perlin-noise-image
    [ >>sky-image ] keep
    make-texture [ set-texture-parameters ] keep >>sky-texture

    [ [ 1 ] 2dip [ max ] with change-nth ]
    [ ] tri ;

: scaled-velocity ( player -- velocity )
    [ velocity>> ] [ velocity-modifier>> ] bi v* ;

: tick-player ( world player -- )
    [ apply-friction apply-gravity ] change-velocity
    dup scaled-velocity [ v+ [ terrain-segment>> ] dip collide ] curry with change-location
    drop ;

M: terrain-world tick*
