2012-06-01 2 views
0

Я действительно не знаю, подходит ли этот диффузный вопрос здесь, но я все равно его отдам.Показать ту же самую «сессию», подиную игру django

Я создаю пошаговую (Yatzee) игру в Django, где у меня есть простая модель для пользователя/игрока и немного сложнее для каждого табло пользователей.

Новая игра создает новую табло, которая в основном состоит из нескольких int-полей и логических полей, по одному для каждого балла (например, если вы получаете две пары, есть поле, которое будет удерживаться оценка и поле, которое установит его как «присвоенный»)

Дело в том, что при таком подходе, где я сохраняю счет до db (sqlite) после каждого хода, я смогу «приостановить», игра и продолжить ее позже.

Что я сейчас хотел бы начать изучать, не зная, с чего начать смотреть, как «разместить» игру для двух или более игр в Интернете. Если они все сидят на одном компьютере, проблем нет, так как я могу контролировать количество игроков/табло через javascript.

Для этого я думаю о терминах присвоения табло, которые принадлежат «togheter» на сеанс каким-то образом, но как и где я должен делать это, сейчас я из моей сферы.

Я немного читал о промежуточном программном обеспечении Django, но не могу понять, может ли это быть лучшим способом, чем пытаться решить его с помощью модельного слоя (что вера будет тяжелой ...?).

ответ

0

Я понятия не имею, какое промежуточное программное обеспечение имеет к этому отношение.

Самый простой способ, несомненно, состоял бы в том, чтобы с игровой модели были установлены внешние ключи, указывающие на модель auth.User для Player1 и Player2.

+0

Меня тоже, следовательно: вопрос. – BSG

1

Один из способов сделать это - создать фреймворк javascript, который опросит бэкэнд для активности игрока. Есть целый ряд игроков деятельности отслеживать:

  1. Новая игра
  2. Игрок покидает игру/тайм-аут
  3. очередь удаленного игрока, чтобы бросить кости
  4. поворот
  5. местный игрок, чтобы бросить кости

Я бы порекомендовал функцию AJAX с таймером, который опросил сервер для обновления или опубликовал локальную активность игроков.

Когда я говорю об инфраструктуре javascript, я имею в виду способ обработки автоматического опроса и обновления на стороне клиента.

Обратите внимание, что вы не можете полагаться на javascript для управления правилами игры, кубиками и т. Д. Все, что должно быть сделано на сервере. Javascript должен только обновлять графический интерфейс для игрока, чтобы показать текущий статус.

Таким образом, у вас будет призыв AJAX для таких действий, как: Начать новую игру, Проверить удалённую активность, Бросить кубики, Сохранить опцию игрока (игрок решил сохранить 3 * шесты как пару и т. Д.) И так далее.

+0

Также игрок должен иметь возможность начать сеанс (Новая игра), а другие игроки должны иметь возможность искать игры, в которых этот игрок находится, чтобы иметь возможность присоединиться. – Mikael

+0

Много хорошего ввода, спасибо.Я посмотрю на них как можно скорее, AJAX звучит так же, как идти жестко. Я настойчиво надеялся, что я разобрался с «игрой», частью игры строго на стороне клиента, так как это только результат кубиков, которые представляют интерес, как получить результат не так важно, но я мог бы быть неправильно. – BSG

+0

Ну, если логика кубиков находится на стороне клиента, мошенничество было бы возможно. Технический игрок мог бы подделывать броски кубиков и сообщать вашей системе, что данная комбинация кубиков прокатилась без какого-либо контроля над ней. – Mikael

Смежные вопросы