Основные понятия Microsoft DirectPlay - это набор функций API, которые позволяют приложениям для Windows создавать коммуникации через локальные сети. DirectPlay - это также технология, которая упрощает создание игровых серверов. Самая главная вещь в сетевых приложениях - донести информацию о текущем состоянии игрового поля (назовем его "миром") до всех компьютеров, учавствующих в сессии. Текущее состояние мира - это то, что пользователь может видеть на своем компьютере, и какие действия он может выполнять. В "мир" входят две вещи: окружающая среда и индивидуальные пользователи (или игроки). Окружающая среда состоит из объектов, которыми игроки могут манипулировать или с которыми они могут взаимодействовать. Например, это может быть карта подземелья, гоночный трек или даже некий документ. Окружающая среда может также включать в себя контролируемых компьютером игроков. Внутри окружающей среды, каждый игрок имеет набор собственных свойств, отражающих его состояние. К таковым может относиться позиция, скорость, энергия, защита и т.п. Когда игрок впервые подсоединятся к сессии, теущее ее состояние должно быть загружено к нему, включая окружающую среду и состояние других игроков. Действия, выполняемые пользователем в прогрессе игры изменяют состояние сессии. Когда это происходит, изменения должны быть донесены до остальных компьютеров в этой сессии путем распространения сообщений. Есть много способом обновления состояния сессии, но все они основываются на распространении сообщений межу компьютерами. Когда два игрока пытаются сделать действие, которое может повлиять друг на друга и на окружающую среду (например оба пытаются открыть одну и ту же дверь) неизбежны конфликты в программе. Поэтому, требуется ввести некий арбитражный код, который будет следить за появлением таких конфликтов и устранять их. Все конфликты должны быть устранены до того, как сессия будет обновлена. Существует два основных способа поддержания соединения и постоянного обновления сессии:
С DirectPlay вы можете создавать и управлять обоими типами соединения peer-to-peer и client/server. DirectPlay имеет полный набор инструментов, которые необходимы для написания полнофункционального сетевого приложения.
|