Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 25.02.2018
Сообщений: 97

Многопользовательская игра на php

16.05.2020, 14:32. Показов 1950. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Хотелось бы услышать ваши советы по поводу создания сайта с многопользовательской игрой: где почерпать информацию, примеры. Нужно сделать на php (codelgniter) + jQuery. К примеру игру в камень ножницы бумага, где два игрока входя в один "кабинет" начинают играть, результат игры записывается в бд в дальнейшем.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.05.2020, 14:32
Ответы с готовыми решениями:

Многопользовательская игра
Здравствуйте, Я создал игру на FLASH, но играть может только один человек. То есть каждый пользователь играет и не видит другого ( кто...

Многопользовательская игра
Как сделать многопользовательскую игру(что бы играть через интернет, друг с другом)? Может есть какая то литература конкретно для этого или...

Многопользовательская игра домино
Всем доброго дня. Сори, если вопрос не туда написал. Интересует следующие, есть задание, нужно написать серверную сетевую игру домино,...

6
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
16.05.2020, 17:35
Погугли "камень ножницы бумага php"

В целом не думаю, что общая концепция игры на двоих сильно отличается от чата на двоих или чего-то еще на двоих. Нужна реализовать логику инициализации игры, тоесть вступления в игру, определения началась ли она. И собственно саму игру. Почитать можно про сокеты или аякс.
0
1 / 1 / 0
Регистрация: 25.02.2018
Сообщений: 97
16.05.2020, 19:06  [ТС]
Технология Ajax мне более менее понятна. У меня есть готовая игра, где человек играет с компьютером, а результат игры записывается в бд . С игрой соперника концепция немного непонятна. У меня есть следующая мысль:
Для игры 2 людей создать новую базу данных, в которых будет 6 колонки: имя первого игрока, имя второго игрока, промежуточные итоги первого и второго, количество выигранных партий первого, количество выигранных партий второго
Есть меню, в которой есть пункт "Играть с соперником". Когда я нажимаю на эту кнопку я подключаюсь к бд, потом ищу пустую либо первую либо вторую колонку, если нет, то создаю новую сроку. Задаю цикл и проверяю пока не займётся вторая колонка, после этого проверяю счёт, если там не нули обновляю. Затем я начинаю играть, то есть через каждые пять секунд отсылать данные к бд. Записываю свой промежуточный итог, проверяю с промежуточным итогом второго и записываю результат в выйгранную или проигранную партию, затем проверяю столбец выигранных партий своих и соперника. Если он достигнет некого значения то засчитываю себе победу, обновляю все результату и в основную бд пишу победу.
Будет ли это работать, есть ли что нить попроще, т.к. инфы никакой в Гугле не нашел
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
16.05.2020, 19:53
Цитата Сообщение от Dinar17 Посмотреть сообщение
Задаю цикл и проверяю пока не займётся вторая колонка, после этого проверяю счёт, если там не нули обновляю.
Ну так себе идея. И у человека будет крутиться страничка. 30 секунд и таймаоут соединения. А если второй игрок только через 5 минут зайдет. Лучше держать поле в таблице игрока, его состояние. То есть он: "не в игре", "ожидает игру", "в игре".
Когда нажимает "Играть с соперником", да - создается заявка, если нет подходящих заявок в базе, и ставится статус "ожидает игру". Как-бы все, игрок может гулять по сайту далее, пока не появится второй.

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

Если игра закончилась или просрочена, например если оба игрока забили играть и просто закрыли браузер, закрываем их игру к пишем обоим статус "не в игре". Вот в этой всей механике главная головная боль, сам процесс игры вроде не сложный.
1
1 / 1 / 0
Регистрация: 25.02.2018
Сообщений: 97
16.05.2020, 20:12  [ТС]
Не совсем понятны некоторые моменты
1-что будет происходить когда найдется 2 желающих сыграть игрока?
Я правильно же понимаю, что надо создать все равно отдельную бд, чтобы записывать результат состояний выбора одно из тоех состояний с дальнейшим подсчётом очков для выбора победителя?
2 - не будет ли все очень медленным, и если какие либо другие возможности для создание так скажем игровой комнаты на пхп?
Просто думается мне, что с учётом того что каждому игроку даётся 5 сек на выбор, если он не выбрал то считается что проиграл, игра вообще не пойдет между 2 игроками.
3 Как сделать редирект после того как найдется второй пользователь для игры? Навкрное он должен отправить какое то сообщение первому , типо я нашел тебя, но как в пхп или яваскрипте первого сделать постоянный мониторинг сообщения от второго, если мы ходим по разным страницам? Да и если даже даже ожидаем в комнате игры, все равно первый должен настроить прием какого либо сообщения от сервера, чтобы постоянно самому не делать запрос, а если отдельную бд не делать то куда и какой запрос делать?
0
143 / 246 / 24
Регистрация: 08.02.2019
Сообщений: 1,044
16.05.2020, 20:35
Цитата Сообщение от Dinar17 Посмотреть сообщение
1-что будет происходить когда найдется 2 желающих сыграть игрока?
попробуйте записывать время входа соперников ( до милисекунд). Кто раньше пришел, тот и законнектился. В таблице БД дополнительный столбик.
Цитата Сообщение от Dinar17 Посмотреть сообщение
2 - не будет ли все очень медленным, и если какие либо другие возможности для создание так скажем игровой комнаты на пхп?
все зависит от скорости инета и соединения у юзеров.
Цитата Сообщение от Dinar17 Посмотреть сообщение
3 Как сделать редирект после того как найдется второй пользователь для игры?
окно, либо сообщения, если игра по принципу чата, при нажатии кнопки присоединения, например " соперник найден, игра начинается через 5, 4,...", а затем переход к поединку.
1
1 / 1 / 0
Регистрация: 25.02.2018
Сообщений: 97
16.05.2020, 21:02  [ТС]
Ок, загуглю пример чата на php.Если есть нормальный пример прошу кинуть мне ссылку. Все равно пока непонятно немного принцип, когда пользователю приходит сообщение. Каким образом на пхп возможно прослушивание входящих сообщений
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2020, 21:02
Помогаю со студенческими работами здесь

Своя браузерная многопользовательская игра
Люди, что для этого надо знать и уметь? Готова учится усиленно и упорно! Добавлено через 46 минут У меня есть проработанная идея и...

Многопользовательская бд
Знающие люди посоветуйте что нибудь по этому поводу. В общем-то повод вот какой. Нужно сделать БД, которая будет состоять всего из одной...

Многопользовательская БД
Всем доброго времени суток. На официальном сайте сказано, что Microsoft SQL Server это многопользовательская СУБД. Есть приложение к...

Многопользовательская БД
Всем привет. РЕбят. Нужна помощь. Нужно мне написать программу, типо как в "Магнит",, по-сути - ничего сложного, но загвоздка в...

Многопользовательская видеоконференция на C#
Здравствуйте форумчане, тут такое вот дело, мне задали проэкт по написанию многопользовательской(т.е. не только 1 vs 1 а 2 vs 2 и более)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru