Cтопроцентных способов защиты не существует

(Играем и обсуждаем игры)

Модератор: Buxyr

Аватара пользователя
Buxyr

Коммандо Активист Друг форума Кот Леопольд
Рейнджер
Сообщения: 451
Рег. Вс май 02, 2010 10:07 am
Награды: 4
Репутация: 429
Вклад в проект: 27
Откуда: --
Поблагодарили: 6 раз

Cтопроцентных способов защиты не существует

Сообщение Buxyr » Пт июн 18, 2010 12:50 pm

СПЕЦ: Какие средства разработки используют при создании игр? Альтернативы, плюсы/минусы, оптимальный выбор...
Александр Федора: Для PC — Microsoft Visual C++ .NET 2003. Плюс обязательно утилиты для контроля версий (CVS, SVN). Для менеджмента багов — Test Track Pro от Seapine Software.

Сергей Азаров: Средства разработки — понятие очень растяжимое, ибо, как правило, эти средства пишутся специально для конкретной игры или линейки игр. Уместнее такой вопрос: «Какие средства разработки используют для разработки средств разработки игры?» Запутанно, но похоже на правду больше. Если говорить о более низком уровне, то используется достаточно стандартный набор: Visual Studio, 3DS Max/Maya, Photoshop, Microsoft Office. Если говорить о более высоком уровне, то здесь уже средства разработки создаются специально под проект: редакторы уровней (хотя вполне можно использовать тот же 3DS Max), редактор диалогов, редакторы систем частиц и т.п. Конечно, помимо описанного выше, существует масса довольно полезных программ, не бесплатных. Например, Facegen Modeller — программа, позволяющая генерировать различные формы лиц, с возможностью экспортирования во все известные графические пакеты как самого лица, так и состояний его морфинга для соответствующей лицевой анимации.

Роман Цой: Программирование: С++ — отраслевой стандарт. Арт: Maya + Photoshop = оптимальный выбор (достоинства: логичный интерфейс и неограниченные возможности для творчества и производства). А вообще, в производстве используется целый ряд инструментов. Секрет же успеха — творческое начало и правильное сочетание средств разработки.

Володя Коротков: В основном это Visual C++, 3D Max, Maya, рукописные плагины для экспорта, другие рукописные утилиты. Альтернатив просто нет, этот выбор оптимальный.

Андрей Белкин: Тема очень широкая, если раскрывать ее «в полном объеме». Само понятие «средства разработки» можно истолковать очень неоднозначно. Скажем так, типовой набор средств, используемых в большинстве известных мне проектов, — это: MS Visual Studio (например, версии .net) в качестве среды для написания кода плюс какой-нибудь модный компилятор, например GNU или CodeWarrior; Maya или 3DS Max и их многочисленные плагины — в качестве среды для работы с 3D-моделями, спецэффектами и т.п. Photoshop и Painter и их плагины — для работы с текстурами и концепт-артом. Sound Forge — для работы со звуком. MS Office во всех его проявлениях — для работы с документами всех мастей.

Вадим Гайдукевич: Visual Studio, Maya 3D, Photoshop и золотые руки — вот истинные инструменты создания современных компьютерных игр. Правда, отдельные разработчики пытаются использовать различные готовые middleware-решения, но истинный игродел никогда не опустится до того, чтобы взять хотя бы одну строчку готового кода со стороны. Он все напишет сам.

Михаил Пискунов: Мне, как сценаристу, для работы с литературной частью вполне хватает Word'а, Excel'а. Иногда — Visio.

Дмитрий Жуков: Как правило, сначала создают некое базовое ядро, собственную среду разработки — «движок». Обычно пишут на языке С++, с использованием ассемблера для самых ответственных операций. Поскольку большинство современных игр так или иначе трехмерны, то используют библиотеку OpenGL или DirectX.

Отдельная задача — это программирование AI, то есть искусственного интеллекта. Здесь начинается чистая наука: технологии сетей, теория графов и т.д. Очень многие компании предпочитают свести кодирование к минимуму, купив готовый движок сторонней фирмы, особенно это касается трехмерных стрелялок (First Person Shooter). Один из самых популярных движков — от игры Quake 3, на котором создано около десятка игр. Затем за дело берутся художники, композиторы и т.д. — те, кто создает содержание в игре. Вообще игры перестали быть готовым к употреблению продуктом, и зачастую пользователь сам привлекается к процессу разработки контента, а многие уровни к играм создаются энтузиастами.

Андрей Тертичников: Для программирования под J2ME необходим только соответствующий SDK, сам код можно писать хоть в «Блокноте». Однако для удобства применяются различные IDE (интегрированные среды разработки), заточенные именно под создание приложений для J2ME. Среди самых популярных можно выделить Borland JBuilder, IDEA и NetBeans. По большому счету, между ними нет каких-либо серьезных различий, поэтому каждый выбирает то, что нравится.

СПЕЦ: Перед геймером не может устоять ни один искусственный интеллект. Вопрос, скорее, во времени, которое требуется на поиск слабых мест. Так задумывают специально в играх или невозможно придумать достаточно разумный искусственный интеллект?
Михаил Разумкин: Неужели было бы лучше, если бы геймер не смог справиться с компьютером? Такую игру точно никто не купил бы. Это же в первую очередь отдых, а не пионерское создание трудностей, чтобы потом героически их преодолевать. Но если судить по моему опыту, создать достаточно правдоподобного (живого) противника чрезвычайно сложно. Вспомни ботов в Counter-Strike: им не нужно целиться. Один выстрел — и у тебя дырка в голове. Но вот поступить нестандартно они не могут, так как бегают по маршрутам. Похожая ситуация и в гонках, стратегиях, драках. Вообще вопрос AI очень сложен. Обычно это многоуровневый набор скриптов, создающих подобие реальности. Агрессивный гонщик будет постоянно бортовать вас, лидер — идеально вписываться во все повороты, но не на максимальной скорости (должен же ты его все-таки догнать), «лох» же будет собирать все кочки на дороге. Но это только подобие жизни, а не настоящий AI. Искусственный интеллект должен обучаться, то есть серьезно менять свое поведение в зависимости от твоих действий и изменения окружающей среды. Играть с таким противником гораздо интереснее, но не всегда оправданно с точки зрения трудозатрат со стороны разработчика. Хороший набор скриптов проще и надежнее. Вот они обычно и стараются держать баланс между всесильным компьютерным противником, который точно знает все бреши в твоей обороне и вдруг досадно ошибается, вообще прекращает сопротивление, начинает тупить. А смещение баланса в ту или иную сторону называют «уровнем сложности».

Александр Федора: Во-первых, ограничения по производительности. ИИ забирает много процессорного времени, причем чем больше NPC, тем больше требуется ресурсов. И во-вторых, ограничения бюджета. Создание «умного» противника в игре — достаточно тяжелая задача, требующая больших трудозатрат на разработку, тестирование и балансировку.

Юрий Матвеев: Боюсь, что когда придумают «разумный» ИИ, это будет начало конца человечества в его нынешней форме существования...

Сергей Азаров: Есть такое понятие, как геймплей, определяющее саму суть игры. Если в игре нет игрового процесса, то в ней нет никакого смысла. Искусственный интеллект является неотъемлемой частью геймплея, его назначение состоит в том, чтобы обеспечить естественные препятствия для игрока на пути к его цели — прохождению игры. Так вот, если искусственный интеллект начинает мешать достижению этой цели (а любой очень умный и сложный ИИ будет этому способствовать), то наличие подобного ИИ является абсолютно нецелесообразным. Поэтому ответ на вопрос — «Да, так и задумывается».

Андрей Белкин: Достаточно разумный искусственный интеллект придумать возможно. Весь вопрос в степени достаточности. Более того, идеальный искусственный интеллект даже можно реализовать. Дело в том, что в игру с таким вот «достаточно разумным» искусственным интеллектом никто не будет играть, поскольку игры делаются чтобы развлекать потребителя, а не чтобы поражать его нечеловеческим искусственным интеллектом.

Михаил Пискунов: Разработчики игр не придумывают «достаточно разумный» искусственный интеллект — это, скорее, научная задача. Разработчики просто стараются придумать набор правил и алгоритмов для компьютера, чтобы с ним можно было более или менее интересно играть, то есть которого обязательно можно побить, но не сразу :). Этого вполне достаточно.

Дмитрий Жуков: Устоять-то, возможно, не сможет. Вопрос времени и только времени. А вот в быстродействии AI всегда берет вверх — поэтому его и не делают шибко продвинутым.

Сергей Загурский: При разработке игры, как правило, не составляет труда создать ИИ, который бы «уделывал» практически любого игрока. Сложно как раз наоборот, сделать его более «человечным», чтобы он допускал ошибки такие, какие допускает и обычный игрок. Чтобы реагировал не моментально, а изображал испуг, панику и т.п.

Андрей Тертичников: Проблема в том, что современный уровень развития технологий (я имею в виду не только и не столько программирование, а вообще научную базу, на которой строится программирование AI) не позволяет создать программу, которая могла бы действительно ДУМАТЬ. Все противники даже в самых современных играх — это всего лишь набор алгоритмов, жестко заданных программистом. Чем эти алгоритмы адекватнее самой игре, тем более «живым» кажется противник. Однако сложность и проработанность современных игр таковы, что вложить в искусственный интеллект все возможные реакции на действия игрока просто невозможно. Поэтому ограничиваются неким набором шаблонов и набором условий, при которых эти шаблоны срабатывают. Это существенно ограничивает «разумность» AI (если к нему можно вообще применить это слово).

СПЕЦ: Какие способы чаще всего используют для защиты игр? Альтернативы, плюсы/минусы, оптимальный выбор...
Александр Федора: В основном для защиты используются уже готовые технологии типа StarForce, Securom и т.д. либо самописные методы. Причем некоторые пользователи вообще отказываются брать диски с мощной защитой типа StarForce, так как распространено мнение, что такие методы защиты вносят баги в игры и со временем могут перестать опознавать даже лицензионные диски. Самописные методы защиты в основном делают несложными, а-ля «от дурака». Это вызвано тем, что написать полноценную систему занимает много времени и денег. Но простые решения могут позволить защититься от копирования большинством пользователей. Вообще ломается любая система защиты. Вопрос в том, как затратить достаточное количество ресурсов на защиту, чтобы большинство игроков не смогли легко взломать или найти крэк и купили лицензионный диск.

Володя Коротков: Чаще всего для защиты игр используют программные комплексы сторонних производителей: StarForce, SecuRom, SafenSec... У каждого из них есть свои плюсы и минусы. Оптимальный выбор для нас — отечественный производитель — StarForce.

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

Андрей Белкин: Самое ресурсоемкое в игре — это фонд заработной платы сотрудников. Оптимизировать можно по-разному: платить зарплаты меньших размеров или же ограничивать штат студии. Как-то оптимизировать уже готовую игру вряд ли получится и с точки зрения финансов, и с точки зрения системных требований.

Михаил Пискунов: Это графика и логика (то есть AI).

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

СПЕЦ: Какие моменты важно учитывать при разработке сетевых игр?
Андрей Тертичников: Учитывать надо то, что несмотря на активное развитие сетевых технологий в мобильной сфере доступ телефонов в интернет все еще сильно ограничен и скоростью, и объемами передаваемых данных. Да и стоимость трафика при активной передаче данных все-таки высока для конечного пользователя. Поэтому создавать полноценные динамичные сетевые игры (на базе интернета) пока не представляется возможным. Конечно, у современных телефонов есть еще возможность обмениваться данными с другими телефонами посредством таких технологий, как, например, Bluetooth, однако это резко сужает возможности сетевого режима.


По материалам: xakep.ru


Искусство это жизнь

Вернуться в «Игромир»

 

 

cron