Я работаю над проектом отладчика для механизма выполнения сценариев игры. Я надеюсь записать GUI отладчика в C#. Фактический механизм отладки, однако, встраивается в саму игру и записан в смеси C, C++ и патчей блока.
Что лучший способ состоит в том, чтобы обработать коммуникацию между отладчиком GUI и механизмом отладки? Эти два будут работать в отдельных процессах.
Спасибо!
Andy
Если вам может потребоваться Windows Vista или новее, и .Net 3.5 или новее, Named Pipes обеспечат простой и высокопроизводительный IPC. Прочтите эту статью .
Я сделал это пару лет назад. Отладчик скриптов был написан на C # и запускался на ПК; среда выполнения сценария была написана на C ++ и работала на всем, что мы поддерживали в то время - ПК, PS3, Xbox360, Wii, DS, PSP и PS2.
Что бы вы ни выбрали, я бы рекомендовал добавить какой-то слой, чтобы отладчик и среда выполнения были изолированы от базового протокола. Держите вызовы API там, где вы можете следить за ними! Это // оставляет ваши варианты открытыми и (если все сделано правильно) упрощает код с обеих сторон. Какая-то система на основе пакетов с пакетами размером 1 КБ или меньше сносно соответствует практически чему угодно. (Передача> 1 КБ может быть выполнена на более высоком уровне, используя только общедоступный API.)
Если вы ориентируетесь только на ПК, я рекомендую TCP / IP. Он прозрачен для сети, все знакомы с его IP-адресами и портами, использовать API не сложнее, чем именованные каналы.
Для игры следующего поколения, если вы хотите найти хороший баланс между кроссплатформенной совместимостью и простотой кодирования, TCP / IP - это лучший вариант. Работает на ПК, Xbox360 и PS3.
(Что касается именованных каналов, Target Manager SN предоставит вам поддержку именованных каналов для PS3 и PS2, насколько я помню, и он проходит через порт LAN разработчика, а не порт LAN игры, но Xbox360 не поддерживает его вообще . Так что, возможно, стоит поддержать его - и это ваш единственный вариант в PSP, если я правильно помню! - но это не универсальная панацея.
Лично я прекратил после внедрения поддержки TCP / IP, и я очень рад, что я сделал! Подводя итог, Wii и DS ужасны, но по-разному и непохожи на все остальное. PSP по неизвестной причине поддерживает только именованные каналы. PS3 и PS2 поддерживают TCP / IP, но только через порт LAN игры. (Порт LAN разработчика работает по-другому. Не используйте его. Попросите у производителя больше сетевых кабелей и сохраните рассудок.) Xbox360 поддерживает TCP / IP, но только если вы используете библиотеки отладки. , и только через IP-адрес игры. (IP-адрес отладки работает иначе. Не используйте его.)
Короче говоря, что бы вы ни делали, вам понадобится этот изолирующий слой.
{{1} }