The first implementation kept all sprites inside the viewport boundary, but then I noticed that you can just move character diagonally and it would end up in the corner, making it super easy to win. So, the wrapping around screen edges was born :)