Поясните, пожалуйста!
| |
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-ому сообщению, геодата - это некий примитив коллизий, но находится он не у клиента, а на сервере.
|
|
| |
niko42 | Дата: Вторник, 21 Августа 2012, 20:09 | Сообщение # 10 |
был не раз
Сейчас нет на сайте
| Quote (arrow25) как я понял по 5-ому сообщению, геодата - это некий примитив коллизий, но находится он не у клиента, а на сервере. Да! Это делается для того, что бы персонаж в онлайн игре не мог проходить через стены, проваливаться и т.д.
|
|
| |
arrow25 | Дата: Вторник, 21 Августа 2012, 20:22 | Сообщение # 11 |
постоянный участник
Сейчас нет на сайте
| ну надо было и называть вещи своими именами) в шапке темы, а то путаницы на всех нагнал. Это слово используется самими игроками в основном, в игре l2.
|
|
| |
Archido | Дата: Вторник, 21 Августа 2012, 20:48 | Сообщение # 12 |
Сэнсэй
Сейчас нет на сайте
| Во, терь другое дело .
Собсна, в чем проблема поделиться данной "геодатой" с клиентами? Иначе не понятно как это вообще будет работать. Обычно, вся логика вынесена на сервер, чтобы никто не читерил у себя на клиенте. Клиент только рисует картинку и отправляет команды серверу, что хочет делать его перс. Сервер, в свою очередь, рассылает всем клиентам позиции других игроков (которые находятся в пределах видимости, например) и свою собственную позицию тоже. Так вот, пока своя позиция до нас приедет - пройдет уже прилично времени и реакция на действия на нашем клиенте будет весьма замедлена. Чтобы избежать этого - используют предсказание действия игрока у себя на клиенте, основываясь на аналогичных данных (та же "геодата") и аналогичной логике, которые использует сервер (т.е. движение персов, коллизии, etc). Если предсказание неточно, то позиция игрока "плавно" перетекает в ту, что вернул сервер. Таким образом, последний всегда прав.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Вторник, 21 Августа 2012, 20:48 |
|
| |
niko42 | Дата: Вторник, 21 Августа 2012, 23:21 | Сообщение # 13 |
был не раз
Сейчас нет на сайте
| Спасибо!
Quote (Archido) Клиент отправляет команды серверу, что хочет делать его перс. Дык вот не пойму, где эти команды взять=)
|
|
| |
Archido | Дата: Вторник, 21 Августа 2012, 23:57 | Сообщение # 14 |
Сэнсэй
Сейчас нет на сайте
| Quote (niko42) Дык вот не пойму, где эти команды взять=) Сгенерировать . Вам их перехватить что ли нужно у чужого приложения? Или нет(или у вас свое)? Не пойму. Для чего вам нужны эти "команды"? Что вы будете с ними делать?
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", клиент получает ее и исполняет у себя, все анимации, регдоловая физика исполняется только у клиента, что мы и наблюдаем.
Тут, конечно, много нюансов всяких есть, но в общих чертах - это как-то так. Может кто тут писал ММО, подробнее и точнее расскажет (или поправит)
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) Но не понятно, чар ударяет соперника, клиент отправляет пакет что я ударл другого чара таким-то скилом. Вот это не понятно, где взять этот пакет=)) Создать его Не могу понять - в чем сложность. Вы клацаете мышкой на сопернике, перс начинает его атаковать... вы ведь прекрасно знаете этот момент. И во время него создаете нужный пакет с командой типа "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 |
|
| |
|