Создание симулятора настольной игры (Python?) (Pygame?)

Я решил начать работу над программированием старого фаворита. Я никогда не делал игру раньше, а также никогда не делал большой проект на Python.

Игра представляет собой старую игру Avalon Hill Российская кампания

Я немного играл с PyGame и задавался вопросом, есть ли причины не пытаться это сделать с PyGame и идти за другим движком/языком.

Каковы были бы недостатки использования Pygame для его создания?

Я не беспокоюсь об ИИ, прежде всего, я просто хотел бы получить минимальную версию игры с двумя игроками. Бонусы были бы способностью сохранять состояние игры, а также играть через сеть.

Do и Dont для запуска этого проекта будут очень благодарны.

Ответы

Ответ 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, если вы уже знаете их).

Ответ 2

Я не думаю, что вам следует заботиться о поддержке нескольких таблиц, разделять интерфейсы и обратные концы, работать с несколькими процессами с помощью XML-RPC и JSON, сервера и т.д.

Бросьте свои бонусы и сосредоточьтесь на своей основной идее: пошаговая игра с двумя игроками. Это ваша первая игра, поэтому вам придется многому научиться и заботиться обо всем этом сразу, может быть подавляющим.