Если я правильно понимаю проблему, у вас будет сервер Python, и игроки будут воспроизводить FPS в реальном времени в браузере.Вам придется:
- отображать игру в режиме реального времени
- обрабатывать пользовательские события в браузере
- отправлять результаты событий браузера на сервер
- анализ результатов на сервере
- отправка событий сервера в браузер
- обработка событий сервера в браузере
Мы уже знаем, что вы собираетесьиспользуйте WebSockets.
Отображение игры в режиме реального времени
Вам нужно будет отобразить графику где-нибудь, возможно, внутри холста.Вам нужно будет реализовать множество функций, таких как обновление строки состояния, отображение изменений и так далее.Они будут срабатывать при обработке ответов от сервера.
Обработка пользовательских событий в браузере
Если мы предполагаем, что щелчок стреляет, пробел активирован и т. Д., Вам понадобится какое-то событиеобработчики для тех.В браузере вам понадобится проверка на уровне браузера.Например, если игрок намерен стрелять, но боеприпасов больше нет, вам даже не нужно отправлять сообщение на сервер, возможно, отображается звуковой эффект пистолета, который означает, что стрельба не удалась.Если, согласно данным, имеющимся у вас в браузере, у вас есть боеприпасы, то направление, по которому вы стреляете, должно быть отправлено на сервер.
Отправлять результаты событий браузера на сервер
КогдаСобытие происходит в браузере и оценивается, тогда результаты во многих случаях будут отправляться на сервер, который будет обрабатывать их и в конечном итоге отправлять ответ в браузер.
Разобрать результаты на сервере
Сервер будет иметь цикл обработки событий и будет получать сообщения WebSocket от браузеров игроков.Например, если сервер получает событие съемки, он получит текущие координаты игрока и направление, вычислит, куда направляется пуля, и отправит сообщение в браузер игроков.Если кого-то ударили, то должен быть рассчитан урон и определен, умирает ли игрок, впоследствии игроки будут получать сообщения WebSocket с сервера, и впоследствии звук пуль будет отображаться вместе с графическим дисплеем пули и, возможно, кровью, падающими игроками.и т. д.
Отправка серверных событий в браузер
Браузеры будут прослушивать сообщения WebSocket с сервера и обрабатывать их.
Обрабатывать серверные события в браузере
Мы не можем доверять пользовательским событиям, потому что может быть вовлечен некоторый обман, поэтому, когда вы снимаете, браузер будет обрабатывать событие, и сервер получит сообщение.Когда сервер отправляет сообщение WebSocket, браузеры «верят», что сервер отправил точный ответ.
Технические потребности
Вам понадобится графический API, прослушиватели пользовательских событий и прослушиватели WebSocket вбраузеры.На сервере вы будете прослушивать клиентские сообщения WebSocket.