Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2010, 17:45   #1
da10h
 
Регистрация: 18.09.2010
Сообщений: 6
По умолчанию онлайновые игры

Приветствую тебя, нечаянно зашедший в эту тему. Оо

Собственно для чего создалась тема - я пытаюсь выяснить принцип, последовательность действий, предпосылки, зацепки и намеки выявления багов в онлайновых играх. Заранее прошу прощения, если где то в недрах данного форума, подобная тема есть. Началось все с того, что как то пробегаясь по торговой площади, одной из самых популярных онлайновых игр, я увидел сообщение в приват о продаже игровой валюты ( деньги, вещи и т.д. ) В голову сразу пришла мысль, что их хранилища набивались, отнюдь, не руками, а дюпом на баге. В принципе молодцы, зарабатывают на знаниях. Мне же стало интересно другое ( нет нет не игровое господство или сторонний заработок), а принцип поиска этих самых багов, так как увлекаюсь подобным направлением мозговой деятельности ( что то типа философии - люблю знать принцип на котором построен какое либо явление с которым я, непосредственно, пересекаюсь).

В програмировании я абсолютный ноль. Но все же склоняюь к тому, что со определенными знаниями в этой области, можно прикидывать причину появления бага. Собственно этим и прошу поделиться. А лучше кинуть ссылочку на гайдик, но это уже на ваше усмотрение.
da10h вне форума Ответить с цитированием
Старый 19.09.2010, 00:07   #2
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Процветание торговли игровыми ресурсами - ошибка исключительно разработчиков.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 19.09.2010, 09:45   #3
ZaRDaK
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 197
По умолчанию

Причина появления дюпов - рассинхра информации в киенте и на сервере.
До определённого момента разработчики доверяли клиентам, и некоторые значения хранились в памяти клиента, и передавались на сервер (а не как сейчас, только на сервере, в клиент передаётся для визуального отображения, менять бессмысленно). Отсюда исходило, что память можно изменить, а клиент передаст это значение с очередным пакетом\датаграммой. Собственно так и появлялись дюпы, хотя сейча свсе пользуются снифферами с возможностью редактирования пакетов, а не редакторами памяти.
ZaRDaK вне форума Ответить с цитированием
Старый 19.09.2010, 14:07   #4
da10h
 
Регистрация: 18.09.2010
Сообщений: 6
По умолчанию

Ну т е в основном дюпают или подменой пакетов или повисанием сервера. Это, впринципе понятно, а вот выявление багов? Каким образом его можно выявить, если не надеяться на случайность, ну или какие намеки могут быть у багов, как они себя палят?
da10h вне форума Ответить с цитированием
Старый 19.09.2010, 16:44   #5
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Палят через наблюдение, и на оперативных оповещениях, так же как и с антивирусными системами, ...пользователь присылает кусок кода в центр анализа, для получения сигнатур и методов борьбы с вредоносными программами. Иногда по слухам, по описаниям в сети, после которых только начинают шевелиться разработчики on-line игр. Самая правильная система - лог событий, интеллектуальный анализ, блокировка операций с ресурсами, до выяснения обстоятельств, ...разработчики среднего уровня останавливаются на простой системе "кто вошел, кто вышел, IP-адреса, бакап", все! Серьезные разработчики используют протокол TCP/IP, за счет которого держат на "коротком поводке" всех пользователей, не допускают никаких вычислений на стороне клиента, вся игра с ее многомерными изменениями происходит на сервере, а клиент получает только проекцию во времени в графическом виде. В приложении клиента допускается производить только простейшие вычисления, которые нужны только для правильного отображения графики и данных, не позволяющий получить управление сервером. Рассинхронизировать такую систему невозможно, у нее нет частей, она вся целиком на сервере, ...а что там отображается у клиента им же подправленное совершенно не важно, следующий фрейм исправит все как должно быть. Ввести в заблуждение сервер неверным пакетом не позволит система проверки подлинности пакета, любое нарушение поведет за собой запись пользователя в лог и его немедленное отключение. Вспоминаем, на подключение по TCP/IP требуется время, масса плюсов, минусы в кривых руках разработчиков.

Если вы интересуетесь как начинающий разработчик, все выше описано, ...если как пользователь, который хочет по симптомам отыскать баг, то я вам искренне сочувствую, как игроку.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его

Последний раз редактировалось Beermonza; 19.09.2010 в 16:49.
Beermonza вне форума Ответить с цитированием
Старый 19.09.2010, 18:51   #6
da10h
 
Регистрация: 18.09.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Beermonza Посмотреть сообщение
Если вы интересуетесь как начинающий разработчик, все выше описано, ...если как пользователь, который хочет по симптомам отыскать баг, то я вам искренне сочувствую, как игроку.
Всего навсего, есть знакомые в ГМ сайде одной из игр, который попросил по мере возможности отлавливать баги и сообщать о них. Ничего преступного или мега нереального. Много воды.
da10h вне форума Ответить с цитированием
Старый 19.09.2010, 21:44   #7
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Этот знакомый должен лучше знать, где у него баг, систему он должен знать досконально, все утечки там видны сразу, если подумать, ...визуальные баги - вот это можно ему подсказывать, ...если он понимает, где управление сервером передается клиенту, то должен уже пересмотреть систему игрового протокола.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 20.09.2010, 19:50   #8
da10h
 
Регистрация: 18.09.2010
Сообщений: 6
По умолчанию

Обычно после ввода аддонов, обновлений и новых эпизодов с внушительным содержанием нового контента, отследить все и вся, достаточно, проблематично. Хоть ты Билл Г. Но хватит о неглавном. Полемика не нужна. Нет, дак нет
da10h вне форума Ответить с цитированием
Старый 21.09.2010, 17:31   #9
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

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

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

Или нужно четко сказать: "вот тут при тыканьи в это место идет задержка, смотрим инвентарь, быстренько швыряем и подбираем предметы, может произойти дублирование, чего и добиваемся" ? ...оно? ...от чего так происходит? ...разработчик просто напросто передал полномочие фиксировать предметы в инвентаре клиенту, и именно он решает, поднят предмет или нет, вместо того чтобы организовать запрос с клиента о "просьбе" поднять предмет, и только после проверки сервером, есть ли такой предмет перед пользователем, отправить подтверждение, что предмет поднят, и вот так он выглядит и вот такие у него параметры и лежит он во в этой ячейке, ...весьма просто, не так ли?

Если разработчик хочет достичь определенной степени защиты своего ресурса, особенно, когда от этого ресурса зависит его благосостояние, он должен изучить такой предмет как "Защита информации", это очень важно. Простейшее четкое разделение полномочий между сервером и клиентом уже значительно повышает степень защиты от дюпов. Клиентское приложение не может управлять сервером, а лишь слать запрос что хочет клиент. В грубой форме вот так:

Клиент: "Можно мне поднять предмет, лежащий тут?"
Сервер: "Стоять! ...ты вот такой, стоишь тут, у тебя есть место в рюкзаке, предмет рядом вот такой, с параметрами такими, ...можешь взять! ... уже положил тебе в рюкзак."
Клиент: "Принял пакет, ...вижу предмет".

Вот в таком духе. Причем, серверу уже, извините, глубоко пофиг, ответил клиент или не ответил, получил или не получил пакет, вылетел из игры или не вылетел, но специально молчит, ...предмет на стороне сервера в рюкзаке этого пользователя, ...последующее подключение после сбоя или просмотр рюкзака пользователем вернет все на свои места. Клиент - проекция сервера, графическое отражение, не более того.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его

Последний раз редактировалось Beermonza; 21.09.2010 в 17:57.
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игры Nazar1994 Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 11.05.2011 16:23
Какими бы вы хотели видеть Онлайновые Игры OrdJONY Gamedev - cоздание игр: Unity, OpenGL, DirectX 18 02.01.2011 11:32
разработка игры "Реверси". Имеется код этой игры на С++ CD-RW Помощь студентам 0 28.03.2010 00:13
Игры wwwдмитрий Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 24.12.2007 12:28