Is there any way to restrict posting in a topic to members of a group, but allow all users to read the topic?

I also think the only way to achieve this without custom code is adding a dedicated sub-category for each game or discussion that you want to restrict. This sounds cumbersome, but as you already have to set up a dedicated group each time it’s actually not that much more of a manual effort. In any case, the user experience will be clean with a setup like this:

  • category : games
    permission: everyone read
  • sub-category: game-A
    permission: only game-A group reply

So topics from game-A will be visible for everyone, but anyone who isn’t a member of the game-A group and opens the topic won’t be able to reply.

If you want a very clean interface and it aligns with your architecture you could even hide the relevant sub-category badges from the interface with css. So the sub-categories are purely about access rights and not about navigation.