Two separate posts on gamedev.stackexchange.com drew my
attention. It appears that some game programmers are getting it
WRONG.
Superficially, it seems that in some games (think of scrolling
games with enemies appearing of the edge of the screen), the
enemies are all approaching at a constant rate.
But what REALLY happens, is that the viewport scrolls at a fixed
rate, and each enemy starts at a fixed world-space position, and
activates when the viewport reaches a particular place.
This is not a very important distinction for the player, but its
a HUGE distinction for the programmer.
If the developer thinks it's good to have 1 million enemies, all
of which are created at the beginning of the game, and then move
each one of them, every single tick, to a slightly different
position as the camera moves, then they are probably doing it
wrong:
…
I started writing some test programs with the HTML canvas
element. This is great, as you can actually write games in
Javascript - efficiently - in principle.
My previous attempts have all used the DOM API which is not very
convenient, and not very efficient.
I had assumed the canvas 2d drawing context was basically a
software-renderer - it's not extremely efficient, but provided
the canvas doesn't have too many pixels, you can still do a lot
of work per frame on a modern machine.
Which is fine.
Suppose you have a canvas which is 640x320 pixels, you can then
get it upscaled into whatever resolution is in the browser
window, making the game appear the same size for everyone.
Great.
Except, the upscaling in web browsers sucks performance. I tried
Firefox 3.6 and Chrome 9. Both of them use loads of CPU scaling
the canvas on to the screen.
If we use a canvas …