How would you go about implementing a "kill all monsters" type of spell? Would you tag the entity with a monster component? Or, what is the right (/better) way to do such a thing in a component based approach?
There shouldn't ever be any reason to know whether an entity is a monster. If you have code that does "if this is a monster, then....", that means you're doing it wrong.

Hello,
For fun and profit educational purposes I am rolling my own 3d to 2d projection code. As part of defining my view frustum though, I have some qualms about the choice of plane on which to project the points found to be in the frustum. In some guides, they choose the plane z = z_near, but in some sources they choose a more or less arbitrary plane z=z_p where z_near < z_p < z_far. Is there an advantage to any choice?
As far as I understand it, it doesn't really matter, but I wanted to ask in case my understanding is not correct... :)
Cheers!

I think you can use HTML5/Javascript to make games and not only static web-pages. The HTML5 spec has a canvas object to draw on, as I understand it (which, coupled with javascript, will let you make a game loop update/draw cycle).
Should you go with Python and Pygame, the pygame home page has a nice step-by-step tutorials series. I use Python + Pygame as it lets me focus more on the game design / design patterns / getting a basic grip on everything etc more than a graphics library API.
GL HF!

Ha, yes. I have been trying to do a platformer for the last two-ish weeks, and like you I got quite frustrated because initially I thought that it wouldn't be so hard, or that it was a "newbie phase problem". However, in reality, I think it the problem is medium to hard. It is not a simple problem. Each domain (ie animation, collision detection, player control, state machines, etc) on its own is kind of trivial. Merging them all to make a jumping, walking, falling, animated player (that gets eaten by crocodiles but not doves) is kind of hard.
(And, the player class (which I suppose you started with) is presumably the hardest of all, since it can do the most.)
To be honest, I spent the first few days of coding not coding at all, but just staring at the screen absent mindedly, going through (and rejecting) various code scenarios in my head. Oftentimes, my head would implode a bit because it couldn't even fathom all the things to be considered at once.
Eh, so to summarize I'd like to say: It's a hard problem. There is no "clean", automagic solution that will accomplish what you want without if clauses.
(but it would be nice if someone would prove me wrong ofc... )