| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > MMORPG |
| Автор: Miller_time 10.7.2009, 14:59 |
| Подскажите пожайлуста, есть ли где нибуть в сети алгоритмы работы ? Хотелось бы почитать материал ? Есть ряд вопросов может кто нибуть подскажет : 1. Как должен работать сервер и что от сервера должен получать игрок( Клиент) Попытался реализовать так (Читать по пунктам ) : Сервер Клиент 1.Клиент отправляет свои данные и коррдинаты на карте 2.Сервер обрабатывает игрока 3. Выслает ему данные относительно других игроков 4. На клиенте создаються модели и сущьности других игроков 5. Клиент начинает постоянно опрашивать сервер относительно позиций других игроков Хотелось бы узнать является ли этот примерный алгоритм правильным ? |
| Автор: REZiaMIX 10.7.2009, 22:13 | ||
Клиент не должен ниче серьезного отправлять , иначе будут читы. Клиент должен отправлять свое смещение относительно текущей позиции , причем сервер должен его проверять. |
| Автор: Miller_time 13.7.2009, 14:16 |
| А есть, может быть какиенибть библиотеки или движи со встроенным клиент-сервером ? Графическим ? Добавлено через 28 секунд Да и с какой переодичностью передовать данные ? |
| Автор: Bitter 13.7.2009, 23:36 |
| Вот какой был у меня опыт: Программа, работающая по сети на трех машинах. Сервер расчитывает движение поезда, клиенты должны получать данные от сервера и точно так же рисовать этот движущийся поезд, но с других ракурсов. В общем сначала я на каждом кадре формировал буфер для отправки, который содержал в себе координаты всех вагонов. Но даже при таком малом объеме данных на клиентах вагоны двигались рывками. Всё из-за потери пакетов при передачи. Короче проблему решили частично, так как проект уже надо было сдавать. А именно пришлось рассчитывать на клиенте как двигается вагон между пришедшими пакетами. Я это к тому, что полностью полагаться на сервер нельзя. Много расчетов надо делать на клиенте. |
| Автор: REZiaMIX 14.7.2009, 03:09 | ||
При MMORPG - важные расчеты в клиент нельзя переносить. Пример: Игрок1 бьет Игрока2-> Игрок1 передает серверу пакет о том , что удар нанес 111 единиц урона. Путем сниффа , анализа , потом подмены пакетов , число 111 заменяется на любое другое. Так же и с движением и т.д. Тут надо включит голову , например в примере с поездами: Сервер должен не передавать каждый кадр. Надо передавать данные смещения, т.е. направление , скорость и т.д. И не стоит путать MMORPG с промышленной программой. В промышленной можно надеяться никто читерить не будет. Да и 3 клиента - нагрузка небольшая. А вот если этих клиентов 1000 , попробуйте слать каждый кадр движение??? а вот и не выйдет(никакой сервер не потянет) Так что тут вывод такой , надо с самого начала полагаться на то, что нельзя делать никакую продвинутую физику и тд , что нельзя расчитать за определенный промежуток времени. Например все текущие физ. движки расчитаны на просчет в каждом кадре. Тут стоит выбор , или дать клиенту расчитать его движение , или пускай сервер это делает. В первом случае - клиент может послать что захочешь , во втором случае при большом количестве клиентов(больше 30-40 думаю) производительности не хватит. |
| Автор: Miller_time 14.7.2009, 07:47 |
| А может быть уже есть платформы под MMORPG ? Студийные ? Добавлено через 4 минуты и 57 секунд Можеть быть есть смысал использовать Unity 3D, вроде динамично развивающаяся платформа ? Глючная пока правда. Подскажите кто что может, сейчас использую Truevison3D но это просто графический библиотека. |
| Автор: ShellRaiser 14.7.2009, 10:33 | ||
а у тебя есть $100к за юнити? |
| Автор: Bitter 14.7.2009, 12:57 |
| REZiaMIX, убедил A Unity под винду по моему еще не сделали. Или уже сделали? Во всяком случае, когда я его скачивал (месяца три назад), пакета разработчика под винду небыло. |
| Автор: ShellRaiser 14.7.2009, 14:58 |
| projectdarkstar.com клиент серверная платформа, для ммо игр и не только =) поддерживает очень много вкусных фич, но ет читайте на офф сайте Добавлено @ 14:59 Bitter, Miller_time, я вас чуть не попутал с вашими аватарами) |
| Автор: arilou 14.7.2009, 15:34 |
| Miller_time, есть две ММОРПГ платформы сейчас - HeroEngine и BigWorld. Стоят недешево (считай, 500K USD и выше). У обоих свои недостатки. - HeroEngine жрет ресурсы серверов оооочень сильно, требует Винду. - BigWorld имеет мощный сервер, но слабоватый рендер и path finding Есть третий вариант. В моей компании сейчас разрабатывается серверный движок для ММО, который в качестве клиента использует Gamebryo (Oblivion, Fallout3, Warhammer Online, etc). Если ты действительно серьезно настроен и есть финансирование, стучись в личку, обсудим возможное сотрудничество. Добавлено через 1 минуту и 20 секунд это УГ. оно ни в одном серьезном проекте коммерческом не использовалось. там от их даркстара до ММО сервера человеко-годы работы, и еще человеко-годы для клиентской части. Добавлено через 2 минуты и 22 секунды Miller_time, да, забыл. У меня еще есть платформа для MMORPG на Flash. Тоже обсуждабельно. |