  Game semantics is a rich and successful class of denotational models for
programming languages. Most game models feature a rather intuitive setup, yet
surprisingly difficult proofs of such basic results as associativity of
composition of strategies. We set out to unify these models into a basic
abstract framework for game semantics, game settings. Our main contribution is
the generic construction, for any game setting, of a category of games and
strategies. Furthermore, we extend the framework to deal with innocence, and
prove that innocent strategies form a subcategory. We finally show that our
constructions cover many concrete cases, mainly among the early models and the
very recent sheaf-based ones.
