В динамичных динамичных играх состояние динамических объектов постоянно передается в структурах. Под состоянием я подразумеваю обычно положение и вращение. В зависимости от архитектуры модели это может быть сервер, постоянно выдвигающий состояния или отправляющий изменение состояния, когда это происходит. Чаще всего первый. Когда состояние не принимается в какой-то период времени, происходит задержка игры. Состояние также может иметь такие параметры, как скорость, ускорение и т. Д. Действительно зависит от игры и от того, как вы хотите обрабатывать игровые события. Допустим, мы пишем простую 2D-игру с летающими кораблями на поверхности, тогда состояние может быть простым классом в Java, например:
class ShipState{
public float x;
public float y;
public float angle;
}
Сетевой код в игре заботится о транспортировке этих структур. Игры обычно имеют свой собственный протокол, построенный поверх TCP / IP и UDP, для обработки всего, поскольку в реальных играх используется много разных типов информации, а не только физическое состояние. Если вы серьезно относитесь к своему проекту, вы должны действительно изучить сетевые библиотеки. Я сильно сомневаюсь, что есть что-то действительно хорошее, так как JAVA не очень популярен на этой границе. Один запрос Google вывел эту библиотеку Kryo , которая выглядит довольно неплохо. Вы также можете, вероятно, взглянуть на netty , которая является очень надежной сетевой библиотекой общего назначения. Если бы мне нужно было написать сетевой код для игры на Java, я бы просто покопался в сетевых библиотеках игр с открытым исходным кодом, написанных на C / C ++, таких как Enet , чтобы получить некоторые идеи.
Чтобы понять суть вашего вопроса, касающегося симуляции шара на сервере, это так же просто, как сервер, отправляющий координаты шара, и клиенты, получающие их. Если вы не уверены, как это сделать, возможно, вы захотите взглянуть на эти руководства . И другие общие учебные пособия по Java. Удачи!