- Product: product specific (ex: MyAwesomeGameApp class)
- Engine: game-type specific (ex: MMOScene class)
- Core: shared by most games (ex: Vector2 class)
- Platform: platform specific (ex: File class)
(There is variation of course (usually for worse). For example, I've seen Product and Engine mixed up, with a Core that's mixed with Platform-specific code)
Sharing usually happens at the Core and Platform level, with merges being more dicey in Engine, with no Product-level sharing (beyond the first copy and paste). But real sharing is also rare, and takes lots of effort.
I'm wondering if there's a more codified list of best practices out there for organizing and sharing code in studios where there are many games in development. While I understand that you can't share everything, I'm looking for examples of architectures and policies that worked well.
Edited by Hanoixan, 21 October 2013 - 08:15 AM.