Архитектура для игры фармвилль / йовилл / кафе мирового типа? - PullRequest
1 голос
/ 18 января 2010

Я думаю о создании игры в духе Farmville - предметы, события, система управления временем и т. Д. Опции, о которых я думаю:

1) Интерфейс Flash UI, использующий AMFPHP для получения всех данных для представления из серверной части на основе PHP. 2) ActionScript для питания всей игры

Любой вклад приветствуется. Моя задача в ActionScript - масштабирование, моя задача в PHP - создать систему обновлений, которая потребовала бы много обратных и переданных xmlhttprequests, которые могут стать сложными.

Если есть лучший способ построить что-то подобное, я весь в ушах:)

Ответы [ 5 ]

2 голосов
/ 29 мая 2010

В этом интервью "Люк Райлих" из Фармвилля упоминает об использовании AMF и не упоминает об использовании сокетов XML.

"Как вы общаетесь с бэкэндом? Это запрос-ответ, XHR, длинный опрос, сокеты Flash XML или" COMET "?

Мы используем стандартный протокол HTTP запроса / ответа, который называется AMF. Транзакции AMF происходят асинхронно от клиента, и если сервер видит что-то, что, по его мнению, клиент не отправляет, он возвращает клиенту сообщение «Несинхронизировано», в котором говорится, что клиент находится в недопустимом состоянии, и клиент перезагружается. "

http://highscalability.com/blog/2010/3/10/how-farmville-scales-the-follow-up.html

Поскольку они, кажется, не используют сокеты, я предполагаю, что они не используют сервер сокетов, такой как smartfoxserver или electro server? Как вы думаете, они строят свой собственный сервер, они сказали, что они используют PHP в последующем интервью к интервью, указанному выше, знаете ли вы какое-либо программное обеспечение, которое будет работать в качестве сервера со всеми этими соединениями AMF и PHP - это то, что AMFPHP есть? (Я не смог найти много четких описаний AMFPHP онлайн.)

Кроме того, знаете ли вы о каких-либо хороших сокет-серверах, которые работают с PHP, кажется, что вам нужно знать Java, чтобы использовать сервер Smartfox или электро-сервер, это правильно?

Кроме того, если Farmville использует AMF, это будет означать, что они не используют сокеты, и это будет означать, что они используют опрос для изменений?

2 голосов
/ 18 января 2010

Не клонируйте и не копируйте Farmville, сотни людей делают одно и то же.

Но на ваш вопрос:

  • Внешний интерфейс: Flash
  • Сервер: AMFPHP
  • Backend / CMS: PHP

кажется хорошей идеей.

Actionscript на стороне интерфейса определенно масштабируется, это было сделано тысячу раз. PHP как сервер и серверная часть тоже не должны быть проблемой.

Зачем вам нужны xmlhttprequests, если у вас есть NetConnection для удаления AMF, я не знаю.

1 голос
/ 18 января 2010

Мой личный совет:

  • Backend: Haxe нацеливание flash9
  • Внешний интерфейс: Haxe для таргетинга на PHP или neko

Используйте Haxe Remoting для связи, SPOD для базы данных с templo для HTML или попробуйте haXigniter ... Я бы лично посоветовал скомпилировать в neko для скорости и занимаемой площади, но это зависит от вас ...

писать все на одном прекрасном языке ... свести общение к прозрачным вызовам, а действия базы данных к манипулированию прозрачными объектами.

0 голосов
/ 29 мая 2010

Может ли Farmville использовать AMF, возможно AMFPHP, с сервером сокетов PHP? Меня смущает вопрос, будете ли вы использовать один или другой, AMF и сокеты, они взаимоисключающие? Из того, что я прочитал здесь, вы можете использовать AMF с сокетами, это правильно?

"flash.net.Socket - это более простой или, точнее, более сырой API, который позволяет вам создавать свое собственное постоянное соединение, но оставляет протокол и формат связи полностью на ваше усмотрение. С возможностью flash.utils.ByteArray чтобы сериализовать объекты ActionScript с помощью AMF, вы также можете использовать AMF, если хотите, на своем сокете, если конечная точка понимает этот формат. "

http://www.mail-archive.com/flexcoders@yahoogroups.com/msg44653.html

Однако, читая другую информацию, такую ​​как здесь, они, кажется, подчеркивают, что AMF и сокеты предназначены для разных целей.

Спасибо! Я просто пытаюсь выяснить все возможные варианты.

0 голосов
/ 18 января 2010

Я и некоторые друзья построили argblargs именно на этом стеке. Это отлично сработало для нас, я не могу поручиться за масштабирование тысяч пользователей, но я не думаю, что вы должны беспокоиться об этом в ближайшее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...