Воскресенье, 05 Мая 2024, 23:52

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Общие обсуждения программистов » Поясните, пожалуйста!
Поясните, пожалуйста!
niko42Дата: Суббота, 18 Августа 2012, 22:30 | Сообщение # 1
был не раз
Сейчас нет на сайте
Здравствуйте, уважаемые дамы и господа!

В моей голове есть некий миф, хотелось бы его развееть.
Т.е. я рисую объекты в 3Dmax и их анимацию, далее запускаю какой-нибудь движок (пример - unreal Engine), загружаю объекты и начиная создавать геодату (мол сборка конструктора из разных объектов).
Прошу не затрагивать скриты.
Уточните, пожалуйста, верно ли мое утверждение или нет?
Или есть другой способ ?

Спасибо!

Добавлено (18.08.2012, 22:30)
---------------------------------------------
Актуально!

Сообщение отредактировал niko42 - Пятница, 17 Августа 2012, 22:31
SaiteiДата: Суббота, 18 Августа 2012, 22:31 | Сообщение # 2
старожил
Сейчас нет на сайте
Какое утверждение?
Quote (niko42)
Здравствуйте, уважаемые дамы и господа!

В моей голове есть некий миф, хотелось бы его развееть.
Т.е. я рисую объекты в 3Dmax и их анимацию, далее запускаю какой-нибудь движок (пример - unreal Engine), загружаю объекты и начиная создавать геодату (мол сборка конструктора из разных объектов).
Прошу не затрагивать скриты.
Уточните, пожалуйста, верно ли мое утверждение или нет?
Или есть другой способ ?

Спасибо!

Без обид, я ничего не понял... Что тебя интересует?
Stalker_ShooterДата: Суббота, 18 Августа 2012, 22:38 | Сообщение # 3
3D XNA'шник
Сейчас нет на сайте
Quote (niko42)
Т.е. я рисую объекты в 3Dmax и их анимацию, далее запускаю какой-нибудь движок (пример - unreal Engine), загружаю объекты и начиная создавать геодату (мол сборка конструктора из разных объектов).


Ну, вцелом как-то так... Только, что есть "геодата"?


*Не убегай от снайпера, умрешь уставшим.
*Мои статьи...
DeusEx-12Дата: Суббота, 18 Августа 2012, 22:38 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Quote (niko42)
Или есть другой способ ?

Другой способ сделать что?


Ищем партнёров в РФ для реализации (продажи) и поддержки ПО
niko42Дата: Вторник, 21 Августа 2012, 17:29 | Сообщение # 5
был не раз
Сейчас нет на сайте
Quote (Saitei)
Без обид, я ничего не понял... Что тебя интересует?

Интересует создание клиента игры и его пакеты. Но, как создается клиент я уже понял. А вот не понятно, как создать клиентские пакеты.

Quote (Stalker_Shooter)
Ну, вцелом как-то так... Только, что есть "геодата"?

Спасибо! Геодата - распологается на сервере, а не в клиенте и отвечает за-то, что бы объект не мог бить сквозь стены.

Quote (DeusEx-12)
Другой способ сделать что?

Инной способ сборки объектов нарисованных в 3Dmax не пренебрегая движок.


Сообщение отредактировал niko42 - Вторник, 21 Августа 2012, 19:50
DeusEx-12Дата: Вторник, 21 Августа 2012, 17:39 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Quote (niko42)
Инной способ сборки объектов нарисованных в 3Dmax не принебригая движек.

Переведите на русский, пожалуйста.
Я серьёзно, без прикола, Ваш текст совершенно не понятен.


Ищем партнёров в РФ для реализации (продажи) и поддержки ПО
ArchidoДата: Вторник, 21 Августа 2012, 17:44 | Сообщение # 7
Сэнсэй
Сейчас нет на сайте
Quote (niko42)
Спасибо! Геодата - распологается на сервере, а не в клиенте и отвечает за-то, что бы объект не мог бить сквозь стены.

Вопрос в том, что вообще такое "Геодата"? Что вы под этим подразумеваете?

Quote (niko42)
А вот не понятно, как создать клиентские пакеты.

Что такое по-вашему "клиентские пакеты"?

Quote (niko42)
Инной способ сборки объектов нарисованных в 3Dmax не принебригая движек.

Мощно. Несколько раз пытался сие осмыслить, но последнее словосочетание просто рушит мой мозг.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
niko42Дата: Вторник, 21 Августа 2012, 20:01 | Сообщение # 8
был не раз
Сейчас нет на сайте
Quote (Archido)
Вопрос в том, что вообще такое "Геодата"? Что вы под этим подразумеваете?

Геодата - это инструмент, который позволяет проконтролировать некоторые действия клиента (а именно - передвижение и взаимодействие с другими объектами с точки зрения геометрического положения в пространстве).
Вся карта представляет собой геометрическую сетку, которая состоит из конечного набора прямоугольников (в частном случае - квадратов), соединеных между собой по их сторонам.

Quote (Archido)
Что такое по-вашему "клиентские пакеты"?

0x1f 23 a1 b4 07 - 0x1f пакет подключению к серверу, 23 a1 b4 07 информации логина и пароля
Клиент отправляет пакет на сервер - двигаться вперед на точку координат x y z
Сервер получает пакет от клиента и анализирует его местонахождения и передает параметры клиенту, кто находится вблизи объекта.
Вопрос - где взять эти пакеты у клиента.

Quote (Archido)
но последнее словосочетание просто рушит мой мозг.

увы, уже не соблюдаю грамматику. нужно идти спать.


Сообщение отредактировал niko42 - Вторник, 21 Августа 2012, 20:02
arrow25Дата: Вторник, 21 Августа 2012, 20:06 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
как я понял по 5-ому сообщению, геодата - это некий примитив коллизий, но находится он не у клиента, а на сервере. wacko
niko42Дата: Вторник, 21 Августа 2012, 20:09 | Сообщение # 10
был не раз
Сейчас нет на сайте
Quote (arrow25)
как я понял по 5-ому сообщению, геодата - это некий примитив коллизий, но находится он не у клиента, а на сервере.

Да! Это делается для того, что бы персонаж в онлайн игре не мог проходить через стены, проваливаться и т.д.
arrow25Дата: Вторник, 21 Августа 2012, 20:22 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
ну надо было и называть вещи своими именами) в шапке темы, а то путаницы на всех нагнал. Это слово используется самими игроками в основном, в игре l2.
ArchidoДата: Вторник, 21 Августа 2012, 20:48 | Сообщение # 12
Сэнсэй
Сейчас нет на сайте
Во, терь другое дело smile .

Собсна, в чем проблема поделиться данной "геодатой" с клиентами? Иначе не понятно как это вообще будет работать.
Обычно, вся логика вынесена на сервер, чтобы никто не читерил у себя на клиенте. Клиент только рисует картинку и отправляет команды серверу, что хочет делать его перс. Сервер, в свою очередь, рассылает всем клиентам позиции других игроков (которые находятся в пределах видимости, например) и свою собственную позицию тоже. Так вот, пока своя позиция до нас приедет - пройдет уже прилично времени и реакция на действия на нашем клиенте будет весьма замедлена.
Чтобы избежать этого - используют предсказание действия игрока у себя на клиенте, основываясь на аналогичных данных (та же "геодата") и аналогичной логике, которые использует сервер (т.е. движение персов, коллизии, etc). Если предсказание неточно, то позиция игрока "плавно" перетекает в ту, что вернул сервер. Таким образом, последний всегда прав.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Вторник, 21 Августа 2012, 20:48
niko42Дата: Вторник, 21 Августа 2012, 23:21 | Сообщение # 13
был не раз
Сейчас нет на сайте
Спасибо!

Quote (Archido)
Клиент отправляет команды серверу, что хочет делать его перс.

Дык вот не пойму, где эти команды взять=)
ArchidoДата: Вторник, 21 Августа 2012, 23:57 | Сообщение # 14
Сэнсэй
Сейчас нет на сайте
Quote (niko42)
Дык вот не пойму, где эти команды взять=)

Сгенерировать biggrin . Вам их перехватить что ли нужно у чужого приложения? Или нет(или у вас свое)? Не пойму. Для чего вам нужны эти "команды"? Что вы будете с ними делать?


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 22 Августа 2012, 00:00
niko42Дата: Среда, 22 Августа 2012, 14:51 | Сообщение # 15
был не раз
Сейчас нет на сайте
Quote (Archido)
Сгенерировать . Вам их перехватить что ли нужно у чужого приложения? Или нет(или у вас свое)? Не пойму. Для чего вам нужны эти "команды"? Что вы будете с ними делать?

клиент свой. спасибо! что-то мне и в мысль не приходило, что можно сгенерировать пакеты=)) я так понимаю - создаю пакет и привязываю к какой-нибудь анимации.
Т.е. сервер отправляет клиенту пакет 0xA1,
а в клиенте пакет
if (0xA1 == /clien/animal.jpg)
System.out.print(/clien/animal.jpg);
и мы показываем в клиенте картинку.


Сообщение отредактировал niko42 - Среда, 22 Августа 2012, 14:54
ArchidoДата: Среда, 22 Августа 2012, 16:17 | Сообщение # 16
Сэнсэй
Сейчас нет на сайте
Ну, к анимации пакеты привязывать - это слишком хардкорно. Можно оперировать "командами" аля "действиями" и их отправлять в пакетах.

Вот например, в игре есть некоторая запрограммированная команда "MoveToLocation", внутри нее реализуется все связанное с передвижение игрока (коллизии, поиск пути, etc) и то, что нужно для его отображения (проигрывание нужной анимации, например) . Т.е. все, что нужно для того, чтобы игрок пошел из точки А в точку Б (для сервера и клиента) и чтобы игрок правильно отрисовывался (только у клиента, серверу это не нужно).

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

Тут, конечно, много нюансов всяких есть, но в общих чертах - это как-то так. Может кто тут писал ММО, подробнее и точнее расскажет (или поправит) smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 22 Августа 2012, 16:18
niko42Дата: Среда, 22 Августа 2012, 18:24 | Сообщение # 17
был не раз
Сейчас нет на сайте
Quote (Archido)
Ну, к анимации пакеты привязывать - это слишком хардкорно. Можно оперировать "командами" аля "действиями" и их отправлять в пакетах. Вот например, в игре есть некоторая запрограммированная команда "MoveToLocation", внутри нее реализуется все связанное с передвижение игрока (коллизии, поиск пути, etc) и то, что нужно для его отображения (проигрывание нужной анимации, например) . Т.е. все, что нужно для того, чтобы игрок пошел из точки А в точку Б (для сервера и клиента) и чтобы игрок правильно отрисовывался (только у клиента, серверу это не нужно). Игрок клацает мышкой куда-нить и его перс начинает выполнять команду "MoveToLocation" у себя и также отсылает ее (в виде пакета) на сервер. Последний принимает ее и выполняет те же действия у себя, отсылая периодически координаты игрока клиенту, чтобы это дело синхронизировать. Анимации персонажа выполняются только на клиенте, исходя из информации, которая у него есть (какие "команды" ему прислал сервер или какие сейчас исполняются), а сам сервер вообще ничего не знает о анимациях. Допустим, игрока грохнули в процессе какого-нибудь замеса, после чего сервер отправляет игроку(клиенту) пакет с командой "YouAreDead", клиент получает ее и исполняет у себя, все анимации, регдоловая физика исполняется только у клиента, что мы и наблюдаем. Тут, конечно, много нюансов всяких есть, но в общих чертах - это как-то так. Может кто тут писал ММО, подробнее и точнее расскажет (или поправит)

Спасибо! Это все понятно. Но не понятно, чар ударяет соперника, клиент отправляет пакет что я ударл другого чара таким-то скилом. Вот это не понятно, где взять этот пакет=))
ArchidoДата: Среда, 22 Августа 2012, 19:36 | Сообщение # 18
Сэнсэй
Сейчас нет на сайте
Quote (niko42)
Но не понятно, чар ударяет соперника, клиент отправляет пакет что я ударл другого чара таким-то скилом. Вот это не понятно, где взять этот пакет=))

Создать его wacko
Не могу понять - в чем сложность. Вы клацаете мышкой на сопернике, перс начинает его атаковать... вы ведь прекрасно знаете этот момент. И во время него создаете нужный пакет с командой типа "AttackEnemy blablabla " и отправляете на сервер.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
niko42Дата: Четверг, 23 Августа 2012, 11:44 | Сообщение # 19
был не раз
Сейчас нет на сайте
Quote (Archido)
Создать его Не могу понять - в чем сложность. Вы клацаете мышкой на сопернике, перс начинает его атаковать... вы ведь прекрасно знаете этот момент. И во время него создаете нужный пакет с командой типа "AttackEnemy blablabla " и отправляете на сервер.

дело в том, что клиент на С++, а сервер на java и здесь надо создавать пакет, как я понял из выше сказанного
Мол вот так:

if (0xA1 == 0xA1)
System.out.print(/clien/animal.jpg);


Сообщение отредактировал niko42 - Четверг, 23 Августа 2012, 11:45
Форум игроделов » Программирование » Общие обсуждения программистов » Поясните, пожалуйста!
  • Страница 1 из 1
  • 1
Поиск:

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