Fatti:
A.
Con contratto del 4 maggio 2009 A.A._ ha incaricato l'architetto B._ di progettare e dirigere i lavori di sopraelevazione di una casa ad Ascona per un onorario preventivato di fr. 60'000.--.
I lavori hanno subito dei ritardi e i rapporti tra le parti si sono incrinati quando B._ ha chiesto che gli fossero rimborsati fr. 7'800.-- da lui anticipati per la locazione di un appartamento nel quale, a causa del ritardo nella consegna, aveva alloggiato provvisoriamente la famiglia A._. Quando l'architetto ha comunicato che avrebbe sospeso le sue prestazioni fino al pagamento, il cliente, il 4 febbraio 2011, ha rescisso il mandato per inadempienza. L'architetto ha in seguito emesso diverse fatture per saldo d'onorario e prestazioni supplementari; ha inoltre sollecitato il rimborso della pigione, per un credito totale di fr. 34'448.80.
B.
Con petizione del 9 marzo 2012 alla Pretura della Giurisdizione di Locarno-CittàB._ ha chiesto che A.A._ fosse condannato a pagargli la predetta somma e che fossero rigettate definitivamente le opposizioni a tre precetti esecutivi fatti notificare nel frattempo. Con la risposta il convenuto ha chiesto l'annullamento di uno dei precetti esecutivi, notificato a lui e a sua moglie, e la reiezione della petizione, ponendo in compensazione diverse sue contropretese.
Con sentenza dell'11 marzo 2016 il Pretore aggiunto della Giurisdizio ne di Locarno-Città ha dichiarato irricevibile la domanda del convenuto di annullamento del precetto esecutivo e respinto la petizione dell'attore. La sentenza ha riconosciuto all'architetto un credito di fr. 31'694.80, che risultava tuttavia compensato da contropretese del convenuto per un totale di fr. 38'693.40.
La decisione di prima istanza è stata riformata dalla sentenza del 20settembre 2017 della II Camera civile del Tribunale di appello del Canto ne Ticino, che ha condannato A.A._ a pagare fr. 31'694.80, non riconoscendo nessuna delle contropretese messe in compensazione.
C.
A.A._ insorge davanti al Tribunale federale con ricorso in materia civile del 23 ottobre 2017; chiede l'annullamento della sentenza cantonale e la conferma di quella del Pretore aggiunto. B._ propone di respingere il ricorso. L'autorità cantonale non ha preso posizione.

Diritto:
1.
Il ricorso in materia civile, presentato dalla parte soccombente nella procedura cantonale (<ref-law>), tempestivo (<ref-law>) e volto contro una sentenza finale (<ref-law>) emanata su ricorso dall'autorità ticinese di ultima istanza (<ref-law>) in una causa civile (<ref-law>) con valore litigioso superiore a fr. 30'000.-- (<ref-law>), è ammissibile.
2.
La violazione del diritto federale è motivo di ricorso secondo l'<ref-law>. Il Tribunale federale lo applica d'ufficio (<ref-law>). Tuttavia, tenuto conto dell'onere di allegazione e motivazione imposto dall'art. 42 cpv. 1 e 2 LTF, di regola esso considera solo gli argomenti proposti nell'atto di ricorso (<ref-ruling> consid. 2).
Quanto ai fatti, in linea di massima il Tribunale federale fonda il suo ragionamento giuridico sugli accertamenti svolti dall'autorità inferiore (<ref-law>). Può scostarsene o completarli solo se sono stati effettuati in violazione del diritto ai sensi dell'<ref-law> o in modo manifestamente inesatto (<ref-law>). L'accertamento dei fatti contenuto nella sentenza impugnata può essere censurato alle stesse condizioni; occorre inoltre che l'eliminazione dell'asserito vizio possa influire in maniera determinante sull'esito della causa (<ref-law>).
Se rimprovera all'autorità cantonale un accertamento dei fatti manifestamente inesatto - ossia arbitrario (<ref-law>) - il ricorrente deve motivare la censura conformemente alle esigenze rigorose poste dall'<ref-law>. Deve indicare chiaramente i diritti costituzionali che si pretendono violati e precisare in cosa consiste la violazione. Non basta opporre il proprio punto di vista alle conclusioni del giudizio impugnato; il Tribunale federale non esamina le critiche di carattere appellatorio. Siccome il giudice cantonale fruisce di un grande potere discrezionale nel campo dell'apprezzamento delle prove (e dell'accertamento dei fatti in genere), chi invoca l'arbitrio deve dimostrare che la sentenza impugnata ignora il senso e la portata di un mezzo di prova preciso, omette senza ragioni valide di tenere conto di una prova importante suscettibile di modificare l'esito della lite, oppure ammette o nega un fatto ponendosi in aperto contrasto con gli atti di causa o interpretandoli in modo insostenibile (<ref-ruling> consid. 2.3 pag. 266; <ref-ruling> consid. 1.3.1).
3.
La Corte cantonale ha ritenuto - come il Pretore aggiunto - che le parti fossero legate da un contratto globale di architetto, di natura mista, al quale si applicano le regole del mandato "quantomeno in materia di responsabilità". La questione non va approfondita, poiché la qualificazione del contratto non è contestata e non è di rilievo per l'esito del ricorso.
4.
Il Pretore aggiunto ha riconosciuto al convenuto il diritto alla compensazione di fr. 14'693.40 costituiti dai costi della nuova direzione dei lavori e della ricostruzione della documentazione resesi necessarie, a dire del committente, dopo la rescissione del mandato. La Corte cantonale ha ritenuto che, a prescindere dalla legittimità della rescissione del mandato, il Pretore aggiunto avrebbe dovuto respingere le pretese del convenuto in applicazione dell'<ref-law>, dal momento ch'egli non aveva fatto verificare dal perito giudiziario le fatture prodotte a giustificazione dei costi.
4.1. Il ricorrente sostiene che su questo punto la sentenza impugnata ha "de facto sovvertito l'onere probatorio"e lede l'<ref-law>. Spiega di avere dimostrato il danno davanti al Pretore aggiunto producendo le fatture e facendole confermare da due testimoni, mentre l'opponente, con la replica, si era limitato a una contestazione generica, che non aveva permesso di comprendere quali fossero i fatti contestati che andavano ancora provati; soltanto in sede di appello l'opponente aveva contestato il contenuto delle fatture. In tali circostanze il ricorrente ritiene di avere adempiuto il proprio onere di allegazione.
Per l'opponente la censura è irricevibile, perché non chiarisce per quale motivo il Tribunale di appello avrebbe violato l'<ref-law>. Sareb be comunque infondata, poiché, avendo contestato " l'integralità delle pretese poste in compensazione ", non toccava a lui "entrare nel merito delle prestazioni fatturate ".
4.2. Contrariamente a quanto asserisce l'opponente, l'argomentazione del ricorrente, riassunta poc'anzi, è chiara e comprensibile. Va tuttavia osservato che l'<ref-law> era di rilievo soprattutto prima che entrasse in vigore il codice di diritto processuale civile svizzero, quando l'obbligo della parte convenuta di contestare le allegazioni della parte attrice era di principio retto dal diritto processuale dei Cantoni; diritto cantonale che doveva però rispettare i limiti imposti da quello federale, evitando in particolare di sovvertire le conseguenze dell'onere probatorio derivanti appunto dall'<ref-law> (sentenza 4A_415/2016 del 25 novembre 2016 consid. 4.1).
Oggi la questione è retta dal CPC. Nei processi che sottostanno alla massima dispositiva il convenuto deve specificare nella risposta quali dei fatti esposti dall'attore riconosca o contesti (<ref-law>). La contestazione deve essere sufficientemente precisa e concreta da permettere all'attore di capire quali siano le allegazioni contestate e conseguentemente i fatti da provare. Le esigenze della motivazione delle contestazioni sono meno severe di quelle che vigono per le alle gazioni dei fatti, ma sono correlate: più quest'ultime sono dettagliate, più la controparte deve specificare concretamente quali sono i singoli fatti che contesta. Contestazioni globali non bastano (<ref-ruling> consid. 2.6 pagg. 437-438; sentenza 4A_632/2016 dell'8 maggio 2017 consid. 4.1; FRANCESCO TREZZINI, in Commentario pratico al CPC, 2aed. 2017, vol. 1, n. 51 segg. ad <ref-law>).
4.3. La sentenza cantonale accerta che il convenuto, per giustificare i costi della direzione lavori, ha prodotto il documento 3 costituito di cinque fatture della C._SA che esponevano 126 ore a fr. 124.-- l'ora e 3,75 ore di prestazioni effettuate in parte da un operaio a fr. 91.-- l'ora; a giustificazione delle spese di ricostruzione della documentazione dell'architetto, la fattura documento 9 della medesima ditta che conteggiava 44,5 ore a fr. 124.-- e fr. 161.-- per l'invio di sette telefax. Per la Corte cantonale il convenuto avrebbe dovuto fare "verificare dal perito giudiziario la correttezza della tariffa oraria applicata dalla C._SA e l'entità delle ore esposte dalla nuova direzione dei lavori"; e questo "a fronte della contestazione dell'attore, secondo cui il convenuto non aveva comprovato l'entità dei danni subiti attraverso la documentazione prodotta, ma in particolare le fatture (cfr. replica 2 luglio 2012, pag. 7) ".
Ora, a pagina 7 della replica l'opponente asseriva che "... parte avversa non comprova l'entità dei danni subiti, e nemmeno lo fa attraverso la documentazione prodotta in sede di risposta..."; aggiungeva che toccherà semmai a un perito stabilire, tra l'altro, se i danni subiti dal convenuto "possano essere tali da giustificare gli importi che il committente pretende ora di dedurre in compensazione" (nel ricorso è riprodotto uno stralcio più esteso della replica). Un'argomentazione del genere non risponde ai requisiti dell'<ref-law> (cfr. consid. 4.2). L'opponente - che per le pretese messe in compensazione ha il ruolo di convenuto - ha messo in discussione globalmente l'entità del danno, ma non ha affatto fornito al ricorrente gli elementi per capire se contestava l'effettuazione delle singole prestazioni, il tempo fatturato oppure le tariffe orarie applicate. Il convenuto non è quindi stato posto nella condizione di sapere quali di questi fatti doveva provare. Una contestazione generica come la sua, raffrontata all'esposizione dettagliata delle fatture, non poteva avere la conseguenza di obbligare il convenuto a provare tutti i fattori esposti nelle fatture (cfr. le situazioni analoghe oggetto della sentenza 4A_415/2016 del 25 novembre 2016 consid. 4 e rinvii).
4.4. La sentenza cantonale viola quindi l'<ref-law>. L'assenza di contestazioni sufficienti fa sì che i costi della direzione lavori sostitutiva e del rifacimento della documentazione dell'architetto, attestati dalle fatture documenti 3 e 9, sono fatti non controversi nel senso dell'<ref-law> e come tali non dovevano essere oggetto di altre prove. La sentenza va pertanto annullata e la causa rinviata all'autorità cantonale affinché si determini di nuovo sulle pretese di risarcimento qui in discussione, tenendo conto di questa situazione processuale. I giudici ticinesi dovranno fra l'altro esaminare se vi sia un nesso causale tra questi costi e il comportamento dell'opponente. Le argomentazioni con le quali il ricorrente disquisisce già a tale riguardo sono premature, quindi inammissibili, come obietta giustamente l'opponente.
5.
Per il ricorrente l'opponente deve rispondere di numerosi difetti dell'opera, accertati dal perito giudiziario, perlomeno secondo le regole giurisprudenziali della responsabilità solidale imperfetta che può sussistere, a determinate condizioni, tra l'architetto e l'impresario costruttore. La sentenza impugnata accenna a quella giurisprudenza; respinge però tutte le pretese di risarcimento che il convenuto ha fatto valere.
5.1. Il ricorrente sostiene che l'architetto deve rifondergli fr. 21'000.-- per i " difetti relativi al sollevamento del tetto ", da ricondurre a una progettazione errata e alla scelta inadeguata del tipo di tetto (a botte). Non si avvede tuttavia che la Corte cantonale, dopo avere ricordato che il Pretore aggiunto aveva respinto quella pretesa per il motivo che gli errori andavano ascritti alla ditta esecutrice, ha ritenuto irricevibili giusta gli art. 312 e 311 cpv. 1 CPC le critiche che il convenuto ha espresso a tale riguardo con l'appello senza confrontarsi con la decisione di prima istanza; i giudici ticinesi hanno in seguito esaminato la pretesa anche nel merito, ma a titolo sussidiario.
Davanti al Tribunale federale il ricorrente non censura la motivazione formale riguardante il difetto di motivazione. Su questo punto il gravame è perciò inammissibile in applicazione della giurisprudenza se condo la quale, se una sentenza o parte di essa si fonda su più motivazioni alternative e indipendenti, occorre contestarle tutte con motivazione conforme agli art. 42 cpv. 2 e 106 cpv. 2 LTF, sotto pena appunto d'inammissibilità (<ref-ruling> consid. 2.4 in fine a pag. 368).
5.2. Nella parte finale del gravame il ricorrente critica il giudizio della sentenza impugnata riguardante una serie di altri difetti che, secondo il perito giudiziario, potrebbero essere riparati con una spesa di fr. 24'000.--. A tale riguardo la Corte cantonale ha osservato preliminarmente che la perizia ha escluso errori evidenti di progettazione e non permette nemmeno di rendere l'architetto responsabile della mancanza di comunicazione con le maestranze; ha poi passato in rassegna diversi difetti e, richiamando considerazioni del Pretore aggiunto e fondandosi ancora sul parere del perito, su testimonianze e documenti, ha concluso che la responsabilità ricadeva sugli artigiani esecutori (lattoniere e carpentiere).
Il ricorrente ammette che vi possa essere una "responsabilità primaria delle ditte esecutrici" ma sostiene che i difetti in questione derivano anche da una "mancata comprensione fra progettista e maestranze", evidenziata a suo dire dal perito giudiziario, e dall'inattività della direzione lavori volta all'eliminazione dei difetti.
Queste critiche sono inammissibili. La Corte d'appello ha in sostanza negato l'esistenza di un nesso causale naturale tra il comportamento dell'architetto e i vari danni. Si tratta di accertamenti di fatto (<ref-ruling>consid. 5.1.1; sentenza 4A_520/2008 del 20 luglio 2009 consid. 3.1e rinvii) che andavano contestati come tali. Le suddette critiche generiche che il ricorrente vi contrappone, senza premurarsi di dimostrare l'apprezzamento arbitrario delle singole prove menzionate nella sentenza, non adempiono manifestamente i requisiti di motivazione richiesti (cfr. consid. 2).
6.
Riassumendo, il ricorso è fondato per quanto riguarda la pretesa di fr. 14'693.40 che il convenuto ha posto in compensazione a titolo di rifusione dei costi della nuova direzione dei lavori e della ricostruzione della documentazione dell'architetto (consid. 4); per il resto, per quanto ammissibile, è infondato.
Le spese sono ripartite a metà, in proporzione alla soccombenza rispettiva (art. 66 cpv. 1 e 68 cpv. 1 LTF).

Per questi motivi, il Tribunale federale pronuncia:
1.
Il ricorso è parzialmente accolto, la sentenza impugnata è annullata e la causa è ritornata all'autorità cantonale per nuovo giudizio nel senso dei considerandi.
2.
Le spese giudiziarie di fr. 2'000.-- sono poste a carico delle parti in ragione di metà ciascuna; le ripetibili per la procedura innanzi al Tribunale federale sono compensate.
3.
Comunicazione ai patrocinatori delle parti e alla II Camera civile del Tribunale d'appello del Cantone Ticino.