Ммм. Я в принципе согласен с ответом выше про грабли. Но можно же использовать и C, и Python — на C реализовать только приём/запись/отправку данных, а на python написать логику. Twisted не самый быстрый сетевой фреймворк.
Например так, клиент открывает постоянное соединение с сервером (TCP или UDP решать вам (в случае UDP никакого постоянного соединения, конечно, нет)), попадает на балансировщик, тот создаёт или выбирает свободный процесс программы на C, которая принимает данные, записывает в базу, уведомляет скрипт на Python, что игровое состояние изменилось, он в свою очередь просчитывает изменения, формирует данные на отправку и рассылает подверженным клиентам через те же процессы на C.
Общаться программы могут либо через общую память, либо через udp сокеты.