Я хотел бы создать шахматную многопользовательскую игру 1player против 1.
Я буду использовать flash для анимации, а клиентский и серверный язык для проверки правильности ходов, записи каждого действия игрока в базу данных, определения победителя и выдачи некоторых кредитов победителю.
Мой основной язык программирования - PHP, и у меня будет кто-то, кто будет выполнять работу со вспышкой в зависимости от моих указаний.
Я хотел бы знать, пытался ли кто-нибудь сделать это раньше или у вас есть учебник, руководство, шаги, которые нужно соблюдать при разработке p2p-игр? Я хочу сделать это эффективно и иметь возможность поддерживать не менее 100 игроков на VDS с 512 ОЗУ.
Я планирую, чтобы игра работала так:
1) Инициализировать переменные, такие как титры, имена игроков внутри флеш-клиента, после их извлечения из php
2) Запустить игру
3) Если я игрок2 и игрок1 думает о решении, флэш-клиент отправит запросы в файл PHP для проверки базы данных, если игрок1 принял какое-либо решение. Если так, то моя очередь принять решение и сдвинуть фигуру
4) Когда наступает мой ход, запросы на PHP больше не отправляются, пока я не захочу переместить кусок. Когда я пытаюсь это сделать, он отправляет запрос, и PHP проверяет правильность моего перемещения и возвращает некоторые переменные, которые flash будет использовать для отображения ошибки или перемещения указателя назад на player1
В игре также будет таймер, который будет синхронизироваться с PHP. Каждый игрок может подумать 20 секунд, чтобы сделать ход.
1) Любые предложения по моей реализации? Что мне нужно, так это предложения по повышению эффективности и снижению нагрузки на сервер, и если кто-то когда-либо имел опыт работы с подобным проектом, как он это делал или как он это делал
2) Моя реализация периодических HTTP-запросов не очень хорошая идея, потому что я знаю, что сервер может быть перегружен, я хотел бы знать, может ли кто-нибудь предложить какой-либо альтернативный, но безопасный вариант. 100 пользователей одновременно означают около 100 HTTP-запросов в секунду. Это число, которое VDS может обрабатывать в течение нескольких дней?
Позже Редактировать:
После ответов, которые я получил на этот пост, я пришел к выводу, что использование сокетов вместо HTTP-запросов каждую секунду было бы наилучшей идеей при ожидании хода на противоположном игроке.
В моей игре было бы 100 столов для игроков, с 1 разъемом для связи и 1 портом для каждого стола. Итак, 1 розетка на 100 портов. PHP будет связываться с флэш-сокетом и портом для таблицы, когда игра запускается и отправляются переменные инициализации.
Я планирую использовать флэш-память для прослушивания сокет-сервера и просмотра того, что происходит, когда противник должен двигаться.
Когда я двигаюсь, flash проверит, является ли ход действительным со своей стороны, а затем отправит данные в PHP. PHP вернет OK или NOT, а также обновит данные на порту сокета.
Что касается сокета, я не уверен, что javascript будет хорошим вариантом для этого, поэтому я думаю о PHP-сокетах или JAVA-сокетах.
PHP-сокеты кажутся мне первым вариантом из-за знакомства с языком.
Мой второй будет арендовать smartfoxserver, а третий будет использовать сервисы Player.IO.
Я планирую создать очень хорошую игру и продать ее. Графика в значительной степени сделана, и они выглядят великолепно. Сложнее всего сделать это эффективно и легко установить после.
Спасибо за ваше время! Привет