Ответ 1
Отделите движок "back-end" (который отслеживает состояние платы, получает заказы на перемещение с фронтов, генерирует случайные числа для разрешения сражений, отправляет обновления на фронт-сайты, занимается спасением и восстановлением определенных игр...) из "front-end", которые в основном предоставляют пользовательские интерфейсы для всего этого.
PyGame - одна из подходящих технологий для клиентского интерфейса, но вы можете реализовать несколько интерфейсов (может быть, PyGame один, на основе браузера, текстовый для отладки и т.д. и т.д.). В конце концов, конечно, может быть меньше внимания к PyGame или другим технологиям пользовательского интерфейса. Python отлично подходит для большинства интерфейсов (кроме тех, которые должны быть в Javascript, Actionscript и т.д., Если вы пишете интерфейсы для браузеров, Flash и т.д.;-) и определенно отлично подходят для back-end.
Запускайте back-end и front-end как отдельные процессы и общайтесь как можно проще - для пошаговой игры (как я считаю, это таковой), XML-RPC или еще более простого варианта (JSON-полезные нагрузки переходя через HTTP POST и ответы на них, скажем), казалось бы, лучше всего.
Я бы начал с back-end (возможно, используя JSON для полезных нагрузок, как я уже упоминал), как простой сервер WSGI (возможно, с помощью werkzeug или тому подобного, чтобы помочь с mdidleware), и простой-грязный отладочный клиент командной строки. На каждом шагу я тогда обогащал либо серверную (back-end), либо клиентскую сторону (front-end), избегая слишком больших или любых одновременных "шагов". Я не использовал бы "тяжелые" технологии и не делал бы большие рамки, делающие магические вещи за моей спиной (без ORM, Django, SOAP,...).
Убедитесь, что вы используете хороший репозиторий исходного кода (скажем, hg или, может быть, svn, если вы знаете, что будете делать это самостоятельно, или базар или git, если вы уже знаете их).