(Suppongo che la domanda sia fatta dal punto di vista della progettazione del codice / dell'architettura, non di quella della progettazione del gioco, sebbene la risposta almeno in una certa misura si applichi ad entrambi.)
Come già detto, hai bisogno di entrambi e devi bilanciarlo. Sia la sovrascrittura che la sotto-progettazione del flusso / struttura del codice possono causare problemi. È difficile dire quale sia il giusto equilibrio, ma generalmente trovo che ho bisogno di avere almeno una vaga idea di come il resto del codice si unirà a ciò che sto programmando in questo momento e pensare a possibili problemi, altrimenti tendo a "codificarmi in un vicolo cieco" - entrare in una situazione in cui mi rendo conto "ok, ora grazie a come ho risolto questo problema, ho creato un nuovo problema che ha reso l'intera mia precedente soluzione (o anche di più, nei casi peggiori) ) inutile ".
In generale, a mio avviso, puoi giudicare approssimativamente se hai il giusto equilibrio pensando a scenari "what if" come in "what if in seguito (quando tutto sarà completamente implementato nel paradigma simile che sto usando ora) quella parte A deve funzionare in modo leggermente diverso, il che significa che devo rielaborare completamente la parte B che si collega ad essa per adattarsi alle modifiche? ". Se la modifica dell'architettura in una parte non richiede la modifica di più di una o due altre parti e le modifiche non si sovrappongono (ciò significa che a sua volta è necessario modificare anche le parti successive che si collegano alla parte B, quindi le parti che si connettono a loro, ecc.), il codice è suddiviso in compartimenti in un modo relativamente buono.
Ma davvero, questo è qualcosa per cui ti sentirai dopo aver acquisito esperienza. Questo è in parte il motivo per cui tutti danno consigli all'inizio a Gamedev di programmare prima qualcosa che è noto e facile (Breakout / Tetris / Snake) e di farlo completamente, con tutti i menu, i suoni, gli effetti, tutto per renderlo completamente finito - è meglio rovinare un progetto più piccolo, e farlo (sia in modo positivo che negativo) ti aiuterà esattamente a capire fino a che punto si estendono gli effetti delle varie decisioni architettoniche.