Excellent choice to go with an entity system.
Not only is Smoke compatible with ES, if you read the source code you
notice it *is* in fact an ES, even if not advertised as such. An ES
seems to be a requirement for an efficient component-based system
running on multiple threads.
Cheers,