Вторник, 15 Октября 2024, 03:34

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
camuvi_devДата: Четверг, 01 Августа 2019, 14:37 | Сообщение # 1 | Тема: Space conquerors
был не раз
Сейчас нет на сайте
Очередная ферма в оболочке космоса, чем тебе веселая ферма не устраивает? тем что она не в космосе?
camuvi_devДата: Четверг, 01 Августа 2019, 14:34 | Сообщение # 2 | Тема: Zeal — Online PvP Action RPG
был не раз
Сейчас нет на сайте
Цитата drcrack ()
это ты бессмысленный

То есть как кто-то начинает тему, хочу свою социальную сеть, там это бессмысленно, а как игра то это совсем другая тема, да и тем более
Цитата drcrack ()
сессионку
ваауу прям сессионок мало нынче популярных.
camuvi_devДата: Четверг, 01 Августа 2019, 10:06 | Сообщение # 3 | Тема: Zeal — Online PvP Action RPG
был не раз
Сейчас нет на сайте
Очередной бессмысленный проект, коих наплодилось уже тьма. Зачем это когда есть Аллоды онлайн.
camuvi_devДата: Вторник, 21 Мая 2019, 10:48 | Сообщение # 4 | Тема: В поисках своей аудитории на Youtube :D
был не раз
Сейчас нет на сайте
Я не из тех людей, у кого язык подвешен и с чувством юмора на уровне обсуждений писек.
То что читаю и что то говорю, хоть и монотонно и с паузами, уже прогресс для меня.
Раньше вообще молча стримил, это один из тех случаев, когда хочется, но вроде и не твое.
Я бы хотел поделится своим видением на программирование на PHP, и в целом создание сайта, рассказать колхозным языком про возможность легко писать гамнокод :D
camuvi_devДата: Понедельник, 20 Мая 2019, 12:28 | Сообщение # 5 | Тема: В поисках своей аудитории на Youtube :D
был не раз
Сейчас нет на сайте
Приветствую! С недавних пор, стал стримить с настоящим голосом, что считаю прогрессом.
Раннее был клоуфиш, ибо как и многих, свой голос на записи не устраивал.
В плане контента, меня интересует как старые игры, так программирование, так и создание игр.
В реальности я не очень разговорчивый, больше писатель. На видео пытаюсь как то импровизировать с речью.
Донаты, лайки, подписки не клянчу в каждом видео, хоть для большинства это нормой считается.
Пока на горизонте прохождение Resident Evil 2 на PS1 (эмулятор), Лига легенд и хотелось бы рассказать об создании сайтов, поделится опытом, что это не так сложно как кажется.
В плане разработки игр, я закрепился за Construct classic.
На уникальность не претендую, снимаю как могу на данный момент.
Канал на Youtube
Последнее видео:
camuvi_devДата: Среда, 16 Января 2019, 10:32 | Сообщение # 6 | Тема: Мультиплеерные приключения
был не раз
Сейчас нет на сайте
ОСНОВЫ

И так, для начала нам понадобится естественно сам конструктор игр (оф.сайт),
кто не смог найти, вот прямая ссылка на скачивание.
Надеюсь, с установкой у вас не возникло проблем, ой о чем это я, к этому времени вы явно должны знать основы пользования этим конструктором игр.
Теперь нам понадобиться сам плагин для сетевой игры, кому лень искать, даю ссылку Network v0.3a,
для особо ленивых, даю прямую ссылку.
Для установки плагина, достаточно скопировать содержимое в архиве, а именно содержимое папки Plugins, в такую же папку Plugins на своем компьютере, куда был установлен construct.
Пример: C:\Program Files\Scirra\Construct Classic\Plugins
С этим сами разобраться должны.
Надеюсь не стоит объяснять, что construct должен быть выключен в это время.
У нас все готово, в списках объектов появился Network.
Теперь все готово, вы молодцы! Можно передохнуть, сходить выпить чаю.

- - -
Приступим к основам. Добавляем Network в проект, при нескольких Layout, можно сразу в параметрах Common ставить галочку Global, да бы не добавлять его вручную всюду.
Далее нужно определиться, как у нас будет устроено все, отдельно запуск сервера и подключение клиентов, или сразу внедрить в игру сервер, чтобы игрок Хост не возился с отдельным запуском файла. ...
Чтобы вы не выбрали, будем делать внедренный сервер в игру или программу, смотря что задумали.
Поняв работу плагина, по желанию сможете и отдельным файлом подобное сделать.
Да бы реализовать внедренный сервер, нужно разграничить события и действия для сервера и клиента.
В этом нам поможет создание Групп (Insert group или Add group) в Event sheet Editor.
Создаем изначально помечая галочкой, что группа отключена по умолчанию (Disable).
Как принято, выбор кто Вы, сервер или клиент делается из меню в игре, для этого создадим спрайты кнопки, или обычные кнопки по желанию. Не важно, главное сделать активацию действия по событию.
Создаем событие, при нажатии к примеру на кнопку СЕРВЕР, добавляем действие
SYSTEM -> SET GROUP ENABLED, и указываем что группа "SERVER" к примеру (Enable) включена.
Подобное и с кнопкой для клиента провернуть надо.
Теперь при нажатии на кнопку Сервер, события в группе SERVER будут активны, пора добавить Хост.
Добавляем в группу SERVER событие
Теперь нужно активировать один раз событие, и действие к нему, что находится в самом плагине.
Так как в примере, кнопки и группы находятся на одном Layout то используем переключатель переменную к примеру Start. Далее действие:
Network -> Host server (параметры оставим по умолчанию пока).
В случае, если после нажатия на кнопку Сервер или Клиент активируется Группа, и делается переброс на другой Layout то вполне сгодится и событие Start of layout.

Теперь, переберемся на сторону клиента, это часто придется бегать от событий сервера к событиям клиента для синхронизации данных.
Добавляем такое же событие, и действие к нему Network -> Connect в группе CLIENT.
- - -
Начинаем работу с синхронизацией данных.
Важно подметить, что для того, чтобы активировать действия на стороне клиента или сервера, нужно отправлять тип данных Сообщения, для отправки данных (переменные, координаты, тексты...) используются Пакеты!
Сделаем простой пример, активации действия по Сообщению.
Тут все просто, делаем действие отправку сообщения Network -> Send message, и даем само сообщение, что будет активаторов действия на стороне Сервера.
На Сервере делаем событие Network -> On message, и указываем сообщение, что должно придти от клиента.
Таким образом, по скриншоту видно, что кликая мышкой на клиенте, на сервере спрайт будет смещаться вправо.
Теперь попробуем синхронизировать перемещение.
Здесь уже нужны Пакеты. Добавим спрайту поведение 8-Direction.
Теперь самое интересное.
К примеру, на спрайте с поведением движения, сделаем событие
Sprite (вкладка 8 Direction) -> is moving, и действием к нему:
Network -> Send packet reliable и вписываем строку...
Код
"DO" & ":" &Player.X & ":" & Player.Y

Где "DO" - имя пакета, а дальше значения разделенные ":" и соединенные &.
Player.X Будет являться 1 по счету ячейкой памяти, и так далее.
Возвращаемся на сторону Сервера. Делаем событие Network -> On packet type, и указываем имя отсылаемого пакета с клиента, тот же DO к примеру.
И действие к нему, раз уж мы отсылаем координаты X и Y перемещения спрайта, то и на стороне сервера мы должны повторить их.
Выбираем в действиях Player (он же Sprite) -> Set position.
В ячейку Х вставляем координаты из ячейки 1, аналогично Y присуще 2 ячейка памяти из пакета DO.
А как это именно сделать?
Код
GetToken(Network.PacketData,1,":")

Как можно понять, из этой записи, она берет ячейку памяти из пакета, что клиент отослал,
под номером 1, где у нас хранится координата Player.X, и приписка разделителя ":".
Этот разделитель может быть хоть "-", лишь бы совпадали на клиенте и сервере.
Для пересылки координат, есть отдельный тип пакета, там же в выборе действия Network, действия с которым аналогичны.

- - -
Можно тут же затронуть тему Каналов.
Нет, это не Youtube каналы с вашими любимыми матюками, это тоннели, по которым можно разделять типы данных, дабы не долбить ВСЕ в одну трубу, что в теории может образовать пробку.
Номер канала указывается при пересылке сообщения или пакета, и стоит не забыть, что в при создании Хоста или коннекта указывается максимальное число их.
Чуть не забыл, это хоть и мультиплеер, но данный пример рассчитан на связь 1 клиент и 1 сервер.
Как сделать связь с много клиентами, разберем позже.
----------------------------------------------------------------

Добавлено (01 Июня 2019, 22:31)
---------------------------------------------
Ремейк прошлого никому не нужного видео про основы плагина Network

Добавлено (02 Июня 2019, 11:21)
---------------------------------------------

Анонс - Сетевая игра на несколько клиентов.


Сообщение отредактировал camuvi_dev - Суббота, 01 Июня 2019, 22:31
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг