Показать сообщение отдельно
Старый 13.01.2006, 03:25     # 39
Demich
Guest
 
Сообщения: n/a

Конкретизация движка/платформы

Всё-таки больше речь идет о платформе, чем о движке.
Для начала скажу что есть желание содать игру, у которой будут отличия от большинства уже существующих online игр. Например, мне кажется ненормальным что большинство из игр разработанны по принципу "загрузил флешку (или в этом роде) - наигрался - закрыл окно браузера и забыл". Предлогаю сделать игру с более серьёзными возможностями, например с возможностью сохранения, чтобы продолжить позже. А также (самое главное) с возможностью коллективной игры - это как раз для интернета. И, конечно же, очень не плохо, если игроки смогут посылать сообщения друг другу во время игры.
Принимаются Ваши пожелания.

Теперь о платформе.

Платформа будет состоят из двух частей, которые есть в каждой игре:
- клиентская часть, которая отвечает за отображение игры в браузере;
- серверная часть, которая отвечает за логику игры и за "многопользовательность" игры.
Клиентская часть выполняется на стороне браузера и состоит из двух частей:
1. отображение игры в браузере;
2. модуль соединения с сервером;
Серверная часть состоит из ядра игры и модулей со вспомогательными возможностями:
1. модуль логики игры и редактор логики;
2. модулей координации действий игроков в многопользовательском режиме;
3. модуль соединений с игроками;
4. другие модули, наподобии модуля сохранения;
5. ядро.
Теперь подробнее. Серверная часть.
Модуль логики игры технически состоит из подчастей:
- набора правил в виде XML-файлов - это наиболее удобный формат для данного случая;
- редактора правил;
Модуль координации - на данный момент это наиболее "туманная" часть. Предназначен для обмена информацией о действиях игроков: кто где находиться и чего делает. Как это реализовать ещё не решил.
Модуль соединения с игроками - модуль предназначен для соединений между сервером и конкретным игроком. Принимает от клиента информацию, передаёт её на обработку, и возвращает клиенту информацию об изменениях в игре.
другие модули которых может быть ещё много - это зависит от игры, модуль сохранения приведён как пример.
ядро - основная часть - берёт поступившую информацию из других модулей, если надо, подгружает модули для её обработки, и отдаёт результат.

клиентская часть
отображение игры в браузере - это выполненый на java/Flash/DOM модуль который получив новые данные отображает их на экране в брауере, а также регистрирует действия игрока и через модуль соединений передаёт их на сервер.
с модулем соединений, думаю всё понятно. Реализовать такой можно например на Flash без особых усилий.

Работает примерно следующим образом:
допустим, игрок сделал какое-то действие:
  • модуль в браузере передаёт эту информацию (через модуль соединений) на сервер;
  • модуль соединений на сервере принимает эту информацию, и вызвает ядро;
  • ядро вызывает модуль координации чтобы передать ему новую информацию об игроке, и получить для обработки информацию о других игроках;
  • ядро может вызывать и другие модули для обработки информации, если это надо и если они есть,
  • но в конце вызовет модуль соединений, чтобы тот передал ответ игроку.
P. S. Живу в Москве.