Fatti:
A.
Nel settembre del 2010 la Procura pubblica dei Grigioni ha aperto un procedimento penale nei confronti di A._ per reati commessi nell'ambito dell'esercizio della caccia. Durante l'inchiesta, il 5 e 6 ottobre 2010, a seguito del comportamento dell'imputato nei loro confronti, gli agenti di polizia C._ e B._, nonché i guardiani della selvaggina D._ e E._ lo hanno querelato per il titolo di minaccia.
B.
Con sentenza del 23 agosto 2012, il Tribunale distrettuale Moesa ha dichiarato A._ autore colpevole di reiterata violazione della legge sulla caccia (LCP; RS 922.0), nonché di contravvenzione alla legge cantonale sulla caccia e alle prescrizioni per l'esercizio della caccia. L'imputato è per contro stato prosciolto dall'accusa di violenza o minaccia contro le autorità e i funzionari. I giudici hanno quindi contestualmente respinto le azioni civili degli accusatori privati.
C.
Contro la sentenza del Tribunale distrettuale, B._ ha presentato appello dinanzi al Tribunale cantonale dei Grigioni. Invitati a presentare osservazioni sulla dichiarazione d'appello, la Procura pubblica ha comunicato di rinunciare ad esprimersi, mentre D._, E._ e C._ (quest'ultimo dichiarando "appello incidentale") hanno chiesto la condanna dell'imputato per il reato di violenza o minaccia contro le autorità e i funzionari. Con decreto del 16 aprile 2013 il Presidente della Prima Camera penale del Tribunale cantonale dei Grigioni ha disposto la trattazione dell'appello in procedura scritta.
D.
Con sentenza del 17 ottobre 2014 la Prima Camera penale del Tribunale cantonale dei Grigioni ha accolto sia l'appello sia gli appelli incidentali, questi ultimi nella misura della loro ricevibilità. La Corte cantonale ha riformato il giudizio di primo grado, riconoscendo in particolare l'imputato autore colpevole di tentata violenza o minaccia contro le autorità e i funzionari.
E.
A._ impugna questa sentenza con un ricorso in materia penale al Tribunale federale, chiedendo di annullarla. Il ricorrente fa valere la violazione degli art. 107, 344, 350 e 406 CPP, degli art. 34, 47, 50 e 285 CP, degli art. 5, 9, 29 cpv. 1 e 30 cpv. 3 Cost., dell'art. 6 n. 1 CEDU e dell'art. 14 n. 1 Patto ONU II.
F.
La Corte cantonale propone di respingere il ricorso nella misura della sua ricevibilità. La Procura pubblica dei Grigioni comunica di rinunciare a una presa di posizione. B._ postula la reiezione del gravame, mentre C._, D._ e E._ non si sono espressi.
Diritto:
1.
Presentato dall'imputato, che ha partecipato alla procedura dinanzi alla precedente istanza, le cui conclusioni sono state disattese (art. 81 cpv. 1 lett. a e b n. 1 LTF), e diretto contro una decisione finale (art. 90 LTF) resa in materia penale (art. 78 cpv. 1 LTF) da un'autorità di ultima istanza cantonale (art. 80 cpv. 1 LTF), il ricorso in materia penale è tempestivo (art. 100 cpv. 1 LTF) e sotto i citati aspetti ammissibile.
2.
2.1. Il ricorrente rimprovera alla Corte cantonale di avere violato l'art. 406 CPP, per avere riesaminato l'accertamento dei fatti nell'ambito di una procedura di appello in forma scritta.
2.2. La procedura d'appello è disciplinata dagli art. 403 segg. CPP. Di principio, essa è orale e pubblica e si svolge secondo le disposizioni concernenti il dibattimento di primo grado (art. 405 cpv. 1 i.r.c. l'art. 69 cpv. 1 CPP). Può tuttavia svolgersi secondo una procedura scritta nei casi enumerati esaustivamente dall'art. 406 cpv. 1 e 2 CPP, il legislatore avendo previsto questa possibilità solamente a titolo eccezionale. La procedura scritta è soggetta a condizioni severe: l'art. 406 cpv. 2 CPP disciplina i casi in cui l'appello può essere oggetto della procedura scritta con il consenso delle parti, mentre l'art. 406 cpv. 1 CPP enumera i casi nei quali il tribunale può trattare l'appello in procedura scritta senza il loro accordo. Ciò è segnatamente il caso quando occorre statuire esclusivamente in merito a questioni giuridiche (lett. a). La procedura scritta è di conseguenza esclusa quando sono in discussione anche i fatti (DTF 139 IV 290 consid. 1.1). L'art. 406 CPP prevede quindi una regolamentazione più rigida della giurisprudenza resa in relazione con le garanzie dell'oralità e della pubblicità dei dibattimenti, quali componenti del diritto a un processo equo, dedotte dagli art. 29 cpv. 1, 30 cpv. 3 Cost., 6 n. 1 CEDU e 14 n. 1 Patto ONU II (RS 0.103.2). Secondo questa giurisprudenza, il diritto di comparire personalmente deve essere rispettato dinanzi alle autorità giudiziarie di prima istanza, mentre la mancanza di un dibattimento in sede di appello o di cassazione non è necessariamente contraria alla garanzia di un equo processo quando si tratta di questioni di fatto che possono essere agevolmente decise sulla base degli atti e che non richiedono un apprezzamento diretto della personalità dell'imputato (cfr. DTF 119 Ia 316 consid. 2b). Simili eccezioni non sono per contro previste dall'art. 406 CPP, che impone il dibattimento non appena è litigiosa segnatamente una questione di fatto, riservato il consenso delle parti alla procedura scritta. La distinzione tra gli aspetti di fatto e quelli di diritto non è sempre agevole, sicché in caso di dubbio il tribunale d'appello deve tenere il dibattimento (DTF 139 IV 290 consid. 1.1 e riferimenti).
2.3. In concreto la procedura scritta è stata ordinata in applicazione dell'art. 406 cpv. 1 lett. a e b CPP. Nella sentenza impugnata la Corte cantonale non ha tuttavia statuito esclusivamente su questioni giuridiche o sui punti relativi agli aspetti civili, ma ha pure proceduto a una nuova valutazione delle prove. Essa ha ritenuto di potere prescindere dal dibattimento orale, poiché non assumeva nuove prove, ma fondava il proprio giudizio su quelle già agli atti. A torto. Perché si imponga lo svolgimento del procedimento di appello secondo la procedura orale, come visto, è determinante (e sufficiente) che i precedenti giudici eseguano una nuova valutazione delle prove, ripronunciandosi quindi su questioni relative all'accertamento dei fatti. La Corte cantonale in particolare ha apprezzato in modo diverso rispetto ai primi giudici il comportamento e il carattere dell'imputato, nonché la serietà delle espressioni da lui proferite all'indirizzo dei funzionari. Ha inoltre messo in dubbio la credibilità della sua versione dei fatti, ritenendo altresì che, diversamente da quanto stabilito dalla prima istanza, le minacce in oggetto erano gravi e tali da potere incutere timore agli opponenti. Eseguendo un nuovo apprezzamento delle prove, la Corte cantonale ha anche statuito su questioni di fatto, sulle quali ha poi fondato la nuova valutazione giuridica, per cui non poteva esaminare l'appello in procedura scritta secondo l'art. 406 cpv. 1 CPP (cfr. DTF 139 IV 290 consid. 1.3). D'altra parte, il ricorrente non ha dato il suo consenso a questa procedura, avendo esplicitamente ricordato nelle osservazioni alla motivazione scritta dell'appello, che in tal caso la Corte cantonale non avrebbe potuto rivedere i fatti accertati dai primi giudici. La censura ricorsuale di violazione dell'art. 406 CPP è pertanto fondata e comporta l'annullamento del giudizio impugnato.
3.
3.1. Il ricorrente lamenta inoltre la violazione del diritto di essere sentito, siccome non avrebbe potuto esprimersi sugli allegati di D._, E._ e C._, che non gli sarebbero stati trasmessi dalla Corte cantonale. Quest'ultima li avrebbe altresì considerati a torto quali "appelli incidentali". Ritiene la citata garanzia disattesa anche laddove egli non avrebbe potuto prendere posizione sia sugli atti richiamati dal Ministero pubblico del Cantone Ticino, concernenti una precedente condanna per lesioni semplici e vie di fatto, sia su un'imprecisata cronaca giornalistica accennata nel giudizio impugnato.
3.2. La censura sembra, perlomeno parzialmente, fondata, giacché la Corte cantonale ha riconosciuto che la notificazione al ricorrente degli "appelli incidentali" degli opponenti non risulta. Va altresì rilevato che, di massima, il diritto di essere sentito impone all'autorità che inserisce nell'incarto nuovi atti di cui intende prevalersi ai fini del giudizio, di avvisare le parti e di concedere loro la possibilità di esprimersi al proposito (DTF 124 II 132 consid. 2b e rinvii; sentenza 1B_703/2012 dell'11 marzo 2013 consid. 2.2, in: RtiD II-2013, pag. 283 seg.). Visto l'esito del ricorso, la censura non deve comunque essere esaminata oltre in questa sede. L'accesso agli atti e la possibilità di esprimersi in merito, anche per quanto concerne la questione dell'ammissibilità degli "appelli incidentali", potranno infatti ancora essere garantiti al ricorrente nel prosieguo della procedura (cfr. art. 107 CPP).
4.
4.1. Ne segue che il ricorso deve essere accolto. La sentenza impugnata è annullata e la causa è rinviata alla Prima Camera penale del Tribunale cantonale dei Grigioni per un nuovo giudizio.
4.2. Le spese giudiziarie seguono la soccombenza e sono pertanto poste a carico degli opponenti (art. 66 cpv. 1 LTF). Invitati a presentare una risposta, C._, D._ e E._ non si sono invero espressi sul ricorso e non hanno quindi formulato conclusioni. Nondimeno, essi vanno ritenuti soccombenti analogamente a B._, poiché l'annullamento della decisione impugnata è a loro sfavore (cfr. sentenza 2C_785/2013 del 28 maggio 2014 consid. 6, in: RDAF 2014 II, pag. 476; Bernard Corboz, in: Commentaire LTF, 2aed., 2014, n. 38 all'art. 66).
Non possono per contro essere prelevate spese giudiziarie a carico del Cantone dei Grigioni (art. 66 cpv. 4 LTF), che è comunque tenuto a versare un'indennità per ripetibili della sede federale al ricorrente (art. 68 cpv. 1 LTF).
Per questi motivi, il Tribunale federale pronuncia:
1.
Il ricorso è accolto. La sentenza emanata il 17 ottobre 2014 dalla Prima Camera penale del Tribunale cantonale dei Grigioni è annullata e la causa le è rinviata per un nuovo giudizio.
2.
Le spese giudiziarie di fr. 2'000.-- sono poste a carico di B._, C._, D._ e E._.
3.
Il Cantone dei Grigioni rifonderà al ricorrente un'indennità di fr. 2'000.-- a titolo di ripetibili della sede federale.
4.
Comunicazione alle parti, rispettivamente ai loro patrocinatori, e alla Prima Camera penale del Tribunale cantonale dei Grigioni.