|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.05.2012, 16:15 | #1141 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Кстати, жалоба на слишком сильных ботов. Я не снял с них повышенный даменж (это было нужно для проверки своей гибели). Все параметры предметов их количества закладываются модулями к серверу, их 4 штуки. Я просто "отстегнул" физически это от сети. Т.е. если не нужно добавить предмет, я запускаю модуль, модуль записывает информацию в файл пользователя, а сервер при повторном считывании добавляет предмет. Таким образом - управлять сервером с удаленной консоли клиента невозможно. Если учесть, что сервер у меня, я имею полный доступ к управлению, а клиенты - нет.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
21.05.2012, 18:00 | #1142 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Beermonza, насчет Path-finding, для перемещений, если он будет на клиенте ничего страшного, ведь клиент будет давать все те же запросы к перемещению, не более.
и это очень удобная фишка, поверьте. насчет имитации движения(до ответа сервера), тоже полезно, так как позволяет сгладить пинг. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
21.05.2012, 21:27 | #1143 | |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Цитата:
У Вас в игре игроки ползают, как черепахи и только по прямой. Для них дерево непреодолимое препятствие. Управление не просто неудобное, оно ужасное. Я говорил исключительно о перемещении. У Вас не оптимальная логика изначально! В текущей реализации Вы используете вычисление пути по уравнению. Это всё хорошо работает, если нет препятствий. А как только в игре появляются препятствия, то всё начинает "накрываться медным тазом". Если вы не замените логику перемещения, то в итоге получите алгоритм построенный на вероятностях, менее точный и требующий больше ресурсов. Вам нужно переписать логику перемещения (и атаки) на использование алгоритма поиска пути (какой-нибудь подходящий Вам волновой алгоритм). Алгоритм поиска пути должен быть реализован и на сервере и на клиенте. Потому что это самый оптимальный путь решения данной проблемы без затраты лишних вычислительных мощностей. Можете в принципе оставить подход "Клиент не может никаким образом перемещаться без одобрения сервера". Но в случае перемещения это глупо. Последний раз редактировалось Виталий Желтяков; 21.05.2012 в 22:00. |
|
21.05.2012, 23:29 | #1144 | |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
Цитата:
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
|
22.05.2012, 00:02 | #1145 | |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Цитата:
Или говорит: "Ни фига ты туда не пришел, там стена, с чего ты вообще взял, что ты можешь туда пойти? А ну-ка, вернись обратно!" И персонаж после упомянутой в постах выше синхронизации с сервером возвращается обратно. Другой вариант. Клиент говорит: "Я иду сюда. А теперь сюда. И еще сюда и сюда. А теперь я буду тут канкан танцевать." А тут сервер ему и говорит стринговским голосом: "Так, что-то я от тебя часть пакетов потерял. Ты говорил, что шел вот туда. Ладно, дошел. А все остальное я не слышал, так что возвращайся-ка ты назад. И канкан тут танцевать тоже нельзя. Там, где ты хотел его танцевать - можно, но по моим сведениями ты туда еще не дошел, так что изволь-ка повторить." То есть все движения действительно происходят с одобрения сервера, но несмотря на это клиент показывает все перемещения без задержки, просто периодически сверяет свои сведения с тем, что ему разрешил сервер и, если возникли какие-то противоречия, тут же выправляет свою информацию по методу "сервер всегда прав". С алгоритмом поиска пути тоже совершенно здравое рассуждение. Пусть поиском пути занимается клиент. Сведения о проходимости у него есть, он спокойно может просчитать, как ему надо идти. Найдя путь, он разбивает его на элементарные шаги, и уже эти шаги посылает на одобрение серверу. В результате - поиск пути обсчитывается только клиентом, серверу отдуваться за всех не надо, нагрузка в этом отношении снижается, но все равно абсолютно никуда без ведома и разрешения сервера дойти нельзя. Каждый занимается своим делом. Сервер говорит, ЧТО можно и нужно сделать, а клиент обдумывает, КАК он это будет делать. Путь ищет клиент, сервер только контролирует элементарные шаги. Траекторию полета самонаводящейся магической стрелы считает клиент, сервер только указывает откуда и куда она летит. Сервер говорит, где находится персонаж, что вокруг него происходит, и только клиент решает, какие звуки окружения и событий (сражения, магия, шаги) проигрывать. И так далее. Хотя, конечно, про геймплей говорить пока рановато, раз пока проверялась исключительно работа сервера. Но вообще (я об этом уже распинался) я считаю, что именно эта игра именно как промышленный продукт (неважно, коммерческий или бесплатный) не взлетит именно из-за проблем с тестированием и поддержкой. Просто один человек не в состоянии обеспечить все многообразие ситуаций, которые необходимо проверить при тестировании, а также контроллировать поведение пользователей. С другой стороны, та задача, которая и ставилась перед проектом - создать настоящую ММОРПГ на дельфи - если еще не выполнена, то вполне успешно выполняется. Задача проектирования и программирования продукта, представляющего собой игру, выполнена отлично, имеющиеся проблемы относятся именно к адаптации программного продукта к типу "игры, которую можно легко подготовить к выпуску, запустить, привести к хорошо играбельному состоянию и поддерживать". Этим уже должны заниматься специальные люди, хорошо разбирающиеся именно в данном аспекте создания и поддержки игр. Человек, разбирающийся в создании архитектуры и кода игры, уже есть, осталось максимально довести игру до ума, а потом с этими наработками можно смело искать тех, кто разбирается в других аспектах создания игр, и тогда уже можно будет создавать вполне себе коммерческий игровой проект.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
|
22.05.2012, 00:07 | #1146 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Персонаж не может моментально изменить свое движение по клику, это и у меня с пингом 0 существует. Причина в следующем. Персонаж двигается по клеткам, которых вы не видите, и он не может начать двигаться в другую сторону пока не дойдет до центра клетки. Сервер тоже параллельно шагает у себя, ...иначе вновь подключившиеся не будут знать откуда и куда идет персонаж, что они видят у себя. Дублировать поиск пути на клиента - это нерационально, он там не нужен в моем конкретном случае.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
22.05.2012, 00:08 | #1147 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Все будет, ...у меня только легкая помощь была, т.к. все писать нужно вручную, я упростил себе задачу.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
22.05.2012, 00:41 | #1148 | ||||
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Цитата:
Цитата:
Цитата:
Цитата:
Клиент производит расчёт пути, строит матрицу шагов и, если перемещение возможно, передаёт только координату конечной точки. Сервер проверяет возможность достижения и отсылает на клиент команду о подтверждении перемещения без расчёта шагов. Здесь логика проста: если можно достичь конечной точки разными, но одинаковыми по длине путями, игрок может двигаться по любому. Beermonza, ещё раз повторяю, не поменяете логику в итоге упрётесь в уравнения с вероятностью, которые тяжелы в расчётах и неточны. |
||||
22.05.2012, 01:21 | #1149 | |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Цитата:
Да, с шагами я, возможно, неточно выразился. Посылается только пакет типа: "Сейчас я перейду на эту клетку. Получилось? Ладно, тогда теперь вот на эту. Опять получилось? Клево, тогда теперь сюда." Проверка каждого такого шага сервером осуществляется элементарно, а весь расчет пути от начала до конца ему знать вообще не обязательно, тем более что пользователь может в середине передумать и пойти в другую сторону. И на кой тогда посылались все шаги?
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
|
22.05.2012, 05:45 | #1150 | |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Уроки по созданию игр для новичков... | -=DeS=- | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 750 | 14.11.2017 20:26 |
Музыка программистов - как вы относитесь к АРИИ? | Весёлый Жека | Свободное общение | 46 | 10.10.2008 22:32 |
Конкурсы по созданию игр на Delphi | mutabor | Свободное общение | 0 | 15.06.2007 12:40 |
Работа по созданию ПО | remix | Фриланс | 3 | 22.04.2007 11:00 |