(Я предполагаю, что вопрос сделан с точки зрения дизайна кода / архитектуры, а не с точки зрения дизайна игры, хотя ответ, по крайней мере, в некоторой степени относится к обоим.)
Как уже говорилось, вам нужно и то, и другое, и вы должны сбалансировать это. Как чрезмерный, так и недостаточный дизайн вашего потока / структуры кода может вызвать проблемы. Трудно сказать, каков правильный баланс, но в целом я нахожу, что мне нужно иметь хотя бы смутное представление о том, как остальная часть кода соединится с тем, что я сейчас программирую, и подумать о возможных проблемах, в противном случае я склонен «закодировать себя в тупик» - попасть в ситуацию, в которой я понимаю: «Хорошо, теперь, благодаря тому, как я решил эту проблему, я создал новую проблему, которая отразила все мое предыдущее решение (или даже больше, в худших случаях»). бесполезно
Вообще, на мой взгляд, вы можете приблизительно судить о том, имеете ли вы правильный баланс, думая о сценариях «что если», как в «что если я позже (когда все полностью реализовано в той же парадигме, которую я использую сейчас) выясняю» что часть А должна работать немного по-другому, что будет означать, что мне придется полностью переделать часть В, которая соединяется с ней, чтобы учесть изменения? ". Если архитектурное изменение в одной части не требует от вас изменения более чем одной или двух других частей, и изменения не каскадируются (это означает, что вам, в свою очередь, необходимо изменить также следующие части, соединяющиеся с частью B, а затем части, соединяющиеся с их и т. д.), код разделен относительно хорошо.
Но на самом деле, это то, что вы почувствуете после получения некоторого опыта. Это отчасти потому, что каждый дает начинающему игроку совет сначала написать что-то известное и простое (Breakout / Tetris / Snake) и сделать это полностью, со всеми меню, звуками, эффектами, всем, чтобы сделать игру полностью законченной - лучше испортить меньший проект, и выполнение его (хорошим или плохим способом) точно поможет вам понять, как далеко распространяются эффекты различных архитектурных решений.