Прежде всего я программист-программист/разработчик, извините за некоторые очевидные вопросы. Эта тема больше вопросов дизайна, чем программирования.Создайте простой бэкэнд с node.js и socket.io для мобильной игры
У меня есть a.t.m Android-игра в прямом эфире в магазине игр, я использую стороннее бэкэнд и сетевое решение. Теперь я хочу создать собственный простой сервер и сетевое решение. Зачем? Потому что:
- Возможность добавления новых функциональных возможностей, свободной от воли (на стороне сервера)
- Перемещение GameLogic от клиента на стороне сервера
- Изучение развития серверной
- Изучение сети (не p2p , так что никакая перфорации)
- Получения опыта разработки серверных и технологии
Для вашей информации моя игра - это что-то вроде Spades.
Теперь мои вопросы:
Я имею в виду использовать Node.js, Socket.io и MongoDB, чтобы создать свою систему серверной.
Это то, что я хочу сделать:
сети:
- Только отправка от сервера к клиенту и наоборот
- io.to (разъем # идентификатор) .emit ('эй') (сервер клиента)
- socket.Emit ("JoinRoom") (клиент-сервер)
Backend функции:
- Аутентификация пользователя
- Регистрация информации игрока (имя, уникальный идентификатор, оценка, дата создания и т.д.)
- Обновление забивает каждый раз
- Регистрация в список друзей, чтобы они могли играть вместе
- Etc ,
Что мой GameLogic сделать для каждой комнаты (ATM мой GameLogic является стороной суммарно клиент, так уязвимы для взлома и обмана):
- Когда комната создана, подождите 10 секунд, так что другие люди могут присоединиться
- Когда 10 секунд закончились, вызовите функцию, которая обрабатывает стартап процессу
- Randomize 52 палубы карты
- AI выборе ставки
- AI выбора козырного
- AI игры, когда его очередь
- Определения, кто имеет следующий поворот
- Определения, который выиграл
- Обновления оценки в базе данных
- Когда игра закончена открытие комнаты так люди может оставить и присоединиться к игре
- и т.д.
можно ли создать это с п ode.js, socket.io и mongoDB? И если да, то разумно ли это делать с node.js, socket.io и mongoDB или лучше сделать это с другой технологией?
Или следует использовать node.js и socket.io для сетевой части и другую технологию (пример asp.net) для логики игры? Я прочитал, что node.js не очень хорош для тяжелых задач CPU, и я думаю, что игровая часть CPU тяжелая.
Возможно, некоторые из вас могут захотеть узнать, сколько будет поддерживать моя система? Ну, atm У меня есть 20 CCU, но моя игра в течение 3 недель в магазине, и я не продвигаю много, потому что сначала хочу сильную бэкэнд-систему. Я хочу, чтобы мой backend мог обрабатывать 10 000 CCU, возможно, я никогда не дойду до него, но это моя цель.
Надеюсь, что я понял, что хочу, будем надеяться, что вы, ребята, можете мне помочь. Я искал неделю, если то, что я хочу сделать, возможно и эффективно.
Очень широкий вопрос, и, несмотря на длинное описание, возможно, недостаточно деталей. Вы беспокоитесь о том, что ваш сервер привязан к процессору из-за логики игры, но вы даете очень мало деталей о его сложности. Кроме того, одновременные пользователи, вероятно, не являются хорошей мерой здесь, так как большая часть работы выполняется только на «поворотах». Лучшей мерой будет количество поворотов за период времени ... – jcaron
@jcaron Большинство тяжелых задач находятся в начале игры и играют в игру. - При запуске массив, состоящий из 52 карт, перетасовывается (массив строк) - игральная карта AI, в лучшем случае AI пеет через свою колоду 1 раз (состоит из максимум 13 карт), в худшем случае 4 раза. Итак, в 1 игровой сессии от начала и до начала: - мин. 4 оборота макс. 10, ставки между игроками, которые выиграют больше всего карт. -Игрок, выигравший ставку, выбирает козырь так, чтобы 1 поворот здесь. -И затем игра начинается, и каждый игрок должен играть, пока его колода не закончится. Таким образом, максимум 63 оборота за сеанс игры. –