В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Много игр использует UDP для связанных с перемещением операций - так, как, когда Вы идете, возможности, набор запросов UDP отправляются. Сервер все еще в конечном счете управляет, допустимо ли это, но Вы не обязательно заботитесь, добирается ли каждый пакет до сервера. Поэтому много игровых клиентов также использует некоторый механизм прогноза.
С точки зрения Вашего второго упоминания, да, всему управлению очень свойственно управляться сервером. Вы не хотите, чтобы клиенты широковещательно передали что-либо к серверу; необходимо сделать ошибку и ввести сторону сервера обработки, чтобы препятствовать тому, чтобы люди взломали. Вы могли бы также ограничить вход в секунду.
Так или иначе, комбинация UDP и TCP была бы соответствующей - просто необходимо ли спросить себя, "Я хочу надежность или скорость?"
Существует много различных возможных реализаций, но по большей части, они будут похожи на это. Этот шаблон повторяется почти с любым действием в игровом мире.
На половину Вашего вопроса (используемые протоколы транспортного уровня) можно было ответить путем установки wireshark и рассмотрения трафика.
Я думаю, что можно учиться много от чтения, как другие реализовали эти типы систем. В этом тщетном, может я указывать на Вас на работу Tim Sweeney и Консорциум Крокета
Крокета преобразовали способ, которым я думал о программировании. Я не могу рекомендовать им достаточно.
Можно интересоваться Darkstar Проекта. Это - платформа MMO с открытым исходным кодом.
Ваш лучший выбор состоит в том, чтобы, вероятно, смотреть на сетевой код Planeshift, это - MMO с открытым исходным кодом. Я полагаю, что это наиболее разработано на сцене (в последний раз, я проверил).
Я не знаю деталей кроме наблюдений, поскольку плеер, но большая часть игры совершенно определенно не ожидают сервера, отвечают для перемещения символа, который уничтожил бы пользовательский опыт, если это не было основано на повороте. То, что похоже, происходит, перемещение, сделан клиентский и отправленный на сервер, который тогда отправляет те сообщения другим плеерам. По крайней мере, в, Ничего себе, если плеер отстает, можно видеть их все еще продвигающийся, тогда волшебно появляются в другом местоположении позже, которое говорит мне, что клиент получает больше, чем данные местоположения, но также и что они перемещаются и направление, они перемещали и затем экстраполируют перемещение в отсутствие дальнейших данных.
Вы не можете полагаться на клиент для передачи в правдивой информации. Кто-то взломает протокол и обман. Шифрование данных не остановится, это - просто делает его немного тяжелее, чтобы сделать.
клиент должен только отправить в запросах на перемещения и т.д., и серверу нужны к проверке работоспособности запросы, чтобы удостовериться, что они не нарушают игровые правила. Сервер должен только отправить данные назад, в которых абсолютно нуждается клиент - Вы не можете полагаться на клиент, чтобы получить блок мировых данных и просто отфильтровать все, что не может в настоящее время наблюдать игрок. Кто-то овладеет дополнительной информацией и использует ее.
, Если игра должна быть 'в реальном времени' тогда, клиент должен предположить, что сервер будет позволять запросы перемещения и обновлять дисплей соответственно - и откатывать перемещение, если сервер исправит его позже. При большинстве условий согласится клиент и сервер, и все будет течь гладко. Они не согласуют, когда клиент попытается обмануть (который является их отказом так или иначе) - или клиент отстает плохо из-за плохого соединения (не очень, можно сделать об этом).
Я не думаю, что существует краткий единственный ответ на этот вопрос, это довольно широко в своем объеме. Однако, несколько точек:
были статьи о сетях в Gamasutra, но у меня нет ссылок удобными прямо сейчас. Не когда-либо уверенный, если они все еще открыто доступны, извините.