Ho fatto questo un paio di anni fa. Script debugger è stato scritto in C# e eseguito su PC; il runtime di script è stato scritto in C++ e funzionava su tutto ciò che supportavamo al momento: PC, PS3, Xbox360, Wii, DS, PSP e PS2.
Qualunque cosa tu stia mirando, ti consiglio di inserire un qualche tipo di livello in modo che il debugger e il runtime siano isolati dal protocollo sottostante. Tieni le chiamate dell'API dove puoi tenerle d'occhio! Questo // lascia aperte le opzioni e (se fatto bene) semplifica il codice alle due estremità. Una sorta di sistema basato su pacchetti, con pacchetti di 1K o meno, mappa in modo tollerabile a qualsiasi cosa. (La trasmissione di> 1K può essere eseguita a un livello superiore, utilizzando solo l'API pubblica.)
Se si utilizza solo PC, si consiglia TCP/IP. È trasparente alla rete, tutti hanno familiarità con i suoi indirizzi IP e le porte, non è più difficile usare API-wise di named pipe.
Per un titolo di nuova generazione, se si vuole raggiungere un buon equilibrio tra compatibilità multipiattaforma e facilità di codifica, TCP/IP è ancora la strada da percorrere. Funziona su PC, Xbox360 e PS3.
(Per quanto riguarda le pipe denominate, il Target Manager di SN fornirà il supporto named pipe per PS3 e PS2, come ricordo, e passa attraverso la porta LAN dev invece della porta LAN del gioco, ma Xbox360 non lo supporta a Quindi potrebbe valere la pena supportarlo - ed è la tua unica opzione in PSP, se ricordo bene! - ma non è una panacea universale.
Personalmente, mi sono fermato dopo aver implementato il supporto TCP/IP, e io In sintesi, Wii e DS sono entrambi orribili, ma in modi diversi, e diversamente da qualsiasi altra cosa: la PSP supporta solo pipe denominate, per qualche motivo sconosciuto: PS3 e PS2 supportano TCP/IP, ma solo tramite la porta LAN del gioco. (La porta LAN del dev funziona in modo diverso. Non usarlo. Chiedi al tuo produttore più cavi di rete e salva il tuo benessere y.) Xbox 360 supporta TCP/IP, ma solo se si utilizzano le librerie di debug e solo tramite l'IP del gioco. (L'IP di debug funziona in modo diverso. Non utilizzarlo.)
In breve: qualunque cosa tu faccia, avrai bisogno di questo strato isolante.
I pipe denominati funzionano in XP e in .NET 2 (tramite PInvoke), quindi sono sempre una buona opzione. –
E, diavolo, anche su Unix, dal momento che nessuno lo parla. –
Non si può fare un ulteriore passo avanti e, nell'implementazione C#, implementarlo con WCF usando pipe con nome? – Jaxidian