vic, во-первых, для directX невозможно пересылать только изменившиеся участки, так как чаще всего проги работают в DirectX в режиме фрейм-буффера, и система сама не знает что менялось, а что нет, ей бы пришлось сравнивать с предыдущим фреймом, что эизнь совсем не облегчает
во-вторых - упаковка-распаковка экрана 1280x1024 даже в JPEG (а это один из наименее тяжелых для кодирования форматов) при 30fps будет напрягать систему как паралельное раскодирование 2-х DVD в ральном масштабе времени, то есть будет занимать большую часть времени даже на современных тачках

у меня работа связана с кодированием - пересылкой по сети - раскодированием видео, я в этом вопросе что-то понимаю

ps: неужели каждый из 20 клиентов CS рендерился на сервере? что-то мне слабо вериться, что сервер сможет обслужить по сетке столько экранов.