, используя cast
вместо recast
(примечание 'Frequency'
теперь 'value'
)
df <- data.frame(Category = c("First","First","First","Second","Third","Third","Second")
, value = c(10,15,5,2,14,20,3))
install.packages("reshape")
result<-cast(df, Category ~ . ,fun.aggregate=sum)
, чтобы получить:
Category (all)
First 30
Second 5
Third 34
Необходимо разъясниться больше об игре и думать больше об архитектуре, а не определенных деталях реализации.
основной вопрос состоит в том, будет ли Ваша игра в режиме реального времени, поворот, базирующийся или замедленного действия базирующейся (например, почтовые шахматы). Другой вопрос состоит в том, собираетесь ли Вы быть замораживанием состояния для последующих перезагрузок.
я настоятельно рекомендовал бы выяснение заранее, собираются ли все плееры в той же игре быть размещенными на том же сервере (например, 1000 из 4 соответствий плеера по сравнению с 4 соответствиями 1 000 плееров каждый). Если возможно, пойдите с первым и засуньте всех, кто находится в той же игре под тем же сервером. У Вас будет достаточно трудное время, синхронизируя несколько клиентов с одним сервером, вместо того, чтобы иметь несколько серверов, против которых синхронизируются плееры. Иначе определение непротиворечивости проблематично.
, Если возможно, имейте каждый клиент, связываются с сервером и затем обновлениями распределения сервера клиентов. Таким образом, Вы имеете одно "официальное состояние" и можете сделать множество разрешений конфликтов, фантомов, и т.д. Одноранговый узел одноранговому узлу дает лучшую производительность в более быстрых играх (например, FPSs), но представляет тонны проблем.
я не могу ни за что в жизни видеть убедительные основания, чтобы сделать это и жемчуг или PHP. Ваша игра не веб-, почему запись она в сети ориентировала язык? Используйте старый добрый J2EE для сервера и обменивайтесь данными с Вашими клиентами через XML и Ajax. Если возможно, запускает реальное JAVA-приложение на клиентах, а не сервлетах. Можно тогда извлечь выгоду из использования JMS, который возьмет огромную загрузку от спины путем абстракции большого количества коммуникационных деталей для Вас.
Для Вашей серверной архитектуры Вы могли бы взглянуть на код Трех Колец . Они записали много очень масштабируемых игр в Java (и клиент - и серверная сторона).