Создание многопользовательской(online) игры на Game Maker. (часть 2) - Game Maker - Конструкторы игр, системы разработки игр
Навигация по сайту
Сайт:

Дополнительно:

Файловый архив:

Каталог статей:

Форум:


Категории раздела
Game Maker [27]
Flash [3]
FPS Creator X9, X10 [1]
Scirra Construct [14]
Multimedia Fusion [0]
001 Game Maker, Map 001 [0]
3D RAD [16]
3D Game Studio [1]
Silent Walk FPS Creator [0]
Blender (Блендер) [1]
Game Editor [0]
Остальное [1]
Все остальное, что не попадает ни под одну категорию.

Мини-Опрос
Чем вы пользуетесь для создания игр?
Всего ответов: 530

Партнеры сайта
....

 Главная » Статьи » Конструкторы игр, системы разработки игр » Game Maker » Создание многопользовательской(online) игры на Game Maker. (часть 2)

Создание многопользовательской(online) игры на Game Maker. (часть 2)

14:50
2. Команды. Список команд Game Maker для работы с протоколами.

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

1. Подключение

mplay_init_tcpip(addr) - создает подключение, указывается IP адрес и порт. Данная команда служит для создания сервера и для подключения клиента к серверу (другому игроку), в обоих случаях нужно указывать IP адрес и порт сервера (игрока).
Пример: '127.0.0.1:5600', где 127.0.0.1 это IP адрес и 5600 соответственно порт подключения. IP адрес и порт разделяются двоеточием.

! 127.0.0.1 или localhost - проще говоря это адрес вашего компьютера. Данный IP будет использован для тестирования примеров, приведенных в данной статье, т.к. сервер и клиент будут на одном ПК.

mplay_connect_status() - возвращает тип подключения. 0 = нет подключения, 1 = IPX, 2 = TCP/IP, 3 = modem и 4 = serial.

mplay_ipaddress() - возвращает IP адрес компьютера.

mplay_data_mode(guar) - устанавливает, использовать гарантированную доставку пакетов данных или нет. Может принимать следующие значения: true - использовать (медленно), false - соответственно не использовать.

mplay_end()  - отключает активное подключение.


2. Сессии

mplay_session_create(sesname, playnumb, playername) - создает сессию. sesname - имя сессии, playnumb - максимальное количество игроков (для неопределенного количества используйте 0), playername - имя игрока.

mplay_session_find() - команда ищет все созданные сессии и возвращает из количество. Отсчет сессий начинается с 0.

mplay_session_name(numb) - возвращает имя сессии по ее номеру.

mplay_session_join(numb, playername) - подключение к сессии. numb - номер сессии, playername - имя игрока.

mplay_session_status() - возвращает информацию об активной сессии: 0 = не подключена, 1 = сессия была создана (сервер), 2 = сессия подключена (клиент).

mplay_session_end() - завершает текущую сессию.


3. Игроки.

mplay_player_find() - возвращает количество игроков в текущей сессии.

mplay_player_name(numb) - возвращает имя игрока по его номеру (отсчет начинается с 1, 0-вым игроком являетесь всегда вы). numb - номер игрока.

mplay_player_id(numb) - возвращает уникальный удентификатор игрока. numb - номер игрока (отсчет начинается с 1, 0-вым игроком являетесь всегда вы). Возвращаемый уникальный идентификатор используется при отправке и приеме сообщений от данного игрока.


4. Сообщения, обмен данными

mplay_message_send(player, id, val) - отправляет сообщение (данные). player - идентификатор игрока или его имя (указанное в сессии), которому нужно отправить данные (для отправки всем игрокам в текущей сессии используется 0), id - идентификатор сообщения (integer), val - любое число или строка. Максимальная длина строки составляет 30000 символов. При использовании данной команды сообщения отправляются без гарантий на их доставку.

mplay_message_send_guaranteed(player,id,val) - команда аналогичная mplay_message_send (см. выше), но доставка пакетов данных гарантируется.

mplay_message_receive(player) - устанавливает текущим первое сообщение из массива. Все приходящие сообщения формируются в массив друг за другом. Команда устанавливает самое первое сообщение текущим, что позволяет обработать его ниже приведенными командами. При повторном вызове первое сообщение удаляется, массив сдвигается вниз и снова устанавливается текущим первое сообщение.

mplay_message_id() - возвращает уникальный идентификатор текущего сообщения (id).

mplay_message_value() - возвращает данные текущего сообщения (val).

mplay_message_player() - возвращает номер игрока, который отправил текущее сообщение.

mplay_message_name() - возвращает имя игрока (указанное в сессии), который отправил текущее сообщение.

mplay_message_count(player) - возвращает количество сообщений, полученных от игрока или общее количество в зависимости от параметра player. player - идентификатор игрока или его имя (указанное в сессии), количество сообщений которого требуется вернуть. Для определения количества сообщений от всех игроков используется 0.

mplay_message_clear(player) - удаляет все сообщения от игрока или от всех игоков в зависимости от параметра player. player - идентификатор игрока или его имя (указанное в сессии), сообщения от которого требуется удалить. Для удаления всех сообщений используется 0.


Надеюсь смысл каждой команды вам понятен. Но мне хотелось бы подробно рассказать об использовании и внутреннем устройстве команды mplay_message_receive. Надеюсь приведенные ниже картинки и комментарии к ним помогут вам лучше узнать ее работу:

1. В начале приходят данные, которые выстраиваются в массив друг за другом. Предположим, что массив строится снизу вверх:

2. Команда mplay_message_receive устанавливает сообщение текущим в ячейке 1, если указан входной параметр как 0. Если указано имя игрока или его идентификатор, то устанавливается ячейка с первым сообщением от указанного игрока. После чего можно использовать команды для получения данных с текущего сообщения: mplay_message_id и т.д.

3. При повторном вызове команды mplay_message_receive первое сообщение удаляется. Весь массив смещается вниз и текущим сообщением снова устанавливаются то, которое находится в ячейке 1.

4. Сообщения, которые приходят игроку, помещаются на самый верх массива.

! Стоит отметить, что по данной схеме работает и список игроков. Происходит добавление массива или его смещение когда игроки подключаются или отключаются.

Категория: Game Maker | Просмотров: 11861 | Добавил: Конструктор (13.03.2014) | Рейтинг: 5.0/3
Теги: Game maker, многопользовательская игра, примеры, кооператив, TCP/IP, интернет, локальная сеть Автор: Вячеслав |
HTML ссылка на материал:
BB ссылка на материал:
Похожие материалы :
Возможно вам будет интересно:
О игрострое, движках и людях (1)
Обмен информацией по TCP/IP-протоколу (Delphi) (0)
3D Rad - делаем компас. (0)
Наложение Текстуры На Модель в 3DGS (MED) (0)
Инветарь на Game Maker (0)
Создаем танчики (Урок 2) (0)
Статья к теме "Психоделика" (9)
Полный туториал по использованию Radimp (2)
Пишем игровой сюжет (10)
Учебник по Blitz 3D (0)
Урок для начинающих по Game Maker v8 (платформенная игра) (1)
Borland Assembler (BASM) уроки для начинающих (уроки 1-4) (0)
24 совета по программированию в Delphi (Дельфи) часть 2 (0)
startDrag или как заставить объект двигаться за мышью? (0)
Создание заставки (Intro) (0)
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Поиск по всему сайту:
Поиск по разделу:

Панель пользователя
Здравствуйте, Гость


Ник:
Пароль:
Запомнить :

Ваш IP: 18.118.0.93

Случайные конструкторы

Случайные движки

Случайные статьи

Статистика
Онлайн всего: 19
Гостей: 19
Пользователей: 0

На сайте были:

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2024 Хостинг от uCoz
Топ Разработка игр