Алексей Патрашов на сервере Проза.ру

Мои статьи на разные темы

О HTML-е замолвите слово…

HTML, он же гипертекстовый язык разметки документа, широко используется… ну все уже знают где он широко используется. Вопрос только в том, как он используется. Если вдуматься в название, то вроде бы как понятно. Есть страница, на которой есть содержимое и нажимая на это содержимое можно перемещаться по страницам. Возникает естественный вопрос: а как это устроено? Очень просто устроено и можно очень просто посмотреть как устроена любая страница. HTML относится к языкам теговой разметки, и всё устройство любой страницы можно посмотреть в любом текстовом редакторе. Посмотреть то можно, а вот увидеть…

Теговый язык он потому и теговый, что предназначен в первую очередь для редактирования тегами, то есть в текстовом редакторе. Есть такое утверждение: линукс это в первую очередь чёрный экран и командная строка, а уже потом всё остальное. Так вот, HTML это в первую очередь текстовой редактор, а уже потом всё остальное. Но некоторые разработчики сайтов с этим утверждением явно несогласны, а иногда складывается впечатление, что они берут пример непосредственно прямо с Microsoft. Нет, конечно, есть конвертеры и редакторы непосредственно содержимого, минуя разметку, но это уже вторично. Одно дело схема страница ⇒ конвертер ⇒ HTML, а другое обратное преобразование HTML ⇒ конвертер ⇒ страница, которое не всегда возможно. А причин тому множество, в частности и то, что результатом работы конвертера является полуфабрикат, если, конечно, речь не идёт о CMS.

CMS или система управления содержимым сайта сама по себе вещь полезная, если только понимать, что она просто система, а не замена текстового редактора, как некоторые думают. Не надо рыться в тегах, а достаточно заполнить всё, что надо и система сама сгенерирует код сайта. Есть только одна проблема — не перестараться. Даром не даётся ничего и HTML не исключение. Можно вручную создать страницу с таблицей 10 на 10000? Затруднительно, а вот система такую таблицу запишет и не заметит. Заметит пользователь, который загрузит страницу и будет удивляться почему у него браузер подвесил всю систему. Откуда ему, несчастному, знать, что мы решили доказать всему миру наши возможности CMS? Ещё можно на каждую ячейку таблицы функцию обработки событий и стиль сгенерировать одинаковые, но отдельные, чтобы уже наверняка.

Завершеним всех бед становится программирование сценариев на странице, а точнее пресловутый JavaScript. Сама по себе вещь полезная, но при неумеренном и бестолковом использовании… Пользователь открывает страницу за страницей в новой вкладке и вдруг обнаруживает торможение своего компьютера. Может быть это вылетел интернет? Или завёлся вирус? Не может же машина почти последнего образца тормозить из-за нескольких десятков открытых в браузере страниц? Ещё как может! Если напихать в эти страницы скриптов. На вопрос а зачем открывать столько страниц одновременно есть не менее резонный ответ: нужно, чтобы не забыть или сравнить, хотя бы. Не открывать же по одной каждый раз одно и то же.

Но притормаживание компьютера ещё не самое страшное последствие применения скриптов. Есть ещё и побочные эффекты исполняемого кода. Как только где-то появляется что-то исполняемое там тут же появляются вирусы и прочие вредоносные программы. Раз можно делать всё, то это нужно сделать и результаты налицо. Перенаправления, мгновенные изменения содержимого, перехваты паролей, бесконечные открытия новых окон, сохранение на диск клиента всякой дряни в виде cookies и прочие чудеса. И вот наступает миг, когда пользователь выключает в браузере выполнение сценариев. И неудивительно! Почему на его компьютере каждый идиот должен запускать какие-то никому не нужные сценарии и сохранять что захочет?

Само по себе отключение сценариев на работоспособность гипертекста влияет слабо. Само устройство языка обеспечивает работу страниц без всяких сценариев, если только… Если только переход между страницами не сделан при помощи исполняемых сценариев. Вспомнили выпадающие и всплывающие меню? Вот именно! А некоторые умудряются ещё и переход по гиперссылкам организовать через JavaScript и как только его отключают… не работает уже ничего.

Конечно, можно и возразить, что CSS2 и HTML4.01 позволяют обеспечивать оформление и обработку событий без всякого JavaScript. Не всех, но самых важных. Но кто же читал их спецификацию! Кто хоть раз открывал сайт консорциума? И почему какой-то консорциум будет указывать разработчикам, как делать сайты? У разработчиков главное это знание CMS, JavaScript, PHP и SQL. Некоторые даже считают, что это и есть языки написания сайтов. Страница сделана на PHP с JavaScript! Во как! HTML и CSS это уже устарело! Помните, как иногда звучало: документ сделан на Windows 95? Это подразумевало Word 95.

Но как бы там всё не крутилось, а итоговую оценку ставит пользователь. А чего хотел пользователь? А пользователь сам не знает, чего он хочет. Когда каждая страница дёргается, как может, это сначала забавляет, какое-то время. Потом надоедает. А потом начинает раздражать, и чем дальше, тем сильнее. Эволюция существует во всём и сайтостроение не исключение. Детям разноцветная одежда и яркие игрушки нравятся, но проходит время и они теряют к ним интерес. Появляется вкус уже собственный и подходит под этот вкус что-то неяркое, но стильное. Такое, как деловой костюм или кожаная куртка. Вы где-нибудь видели мужской строгий деловой костюм радужной раскраски да ещё и с украшениями? И не увидите. И с сайтами будет то же самое. Открываем, читаем, нажимаем, читаем и так далее. Причём открываем то, что нажимаем, а не всё, кроме этого, как происходит на многих сайтах.

Время подвести итоги. Перспективы сайтостроения совсем не такие, как некоторым представляется. Эпоха увешанных скриптами монстров заканчивается и пользователь всё больше склоняется к выбору простого, но удобного, чем красивого и огромного, но совершенно непрактичного. Праздники прошли, наступили будни, и будни суровые. Пользователь уже так наелся экзотики, что соскучился по бутербродам, а вот с бутербродами у нас как раз сейчас проблемы, с бутербродами у нас сейчас дефицит. Упор мы сделали опять на гигантизацию. На сайте должно быть всё и желательно сразу. Пусть у клиента глаза разбегутся. И разбегаются, ещё как разбегаются, в сторону более вменяемого сайта.

Можно найти ещё много интересного, если порыться в причинах. Неграмотных пользователей становится всё меньше, есть такая тенденция. И всё меньше пользователей смотрят на интернет, как на чудо. А раз чуда нет, то можно попробовать и самому, ну хотя бы посмотреть. И каждый пользователь интернета начинает задаваться вопросом: а насколько сложно создать свою страницу? И почти на каждом хостинге он убеждается, что совсем несложно! А раз не видно разницы, то зачем платить больше? Сначала по шаблону, потом конвертером, а потом и до текстового редактора руки дойдут. А после того, как они дойдут…

Ситуация с тяжелым веб-программированием, включая клиентские скрипты, удивительно точно напоминает историю с Windows и Microsoft. Сайт должен включать базу данных, поисковую систему, выпадающие и всплывающие меню, сворачивающиеся списки, картотеку рисунков и прочее. А зачем и кто сказал, что это должно быть? Особенно если польза сомнительная, а вреда много. Нет, если никак по-другому не обойтись, то никуда не денешься, но когда обойтись можно, а всё равно пхают и пхают… становится странно и неприятно. Каждому хочется самому распоряжаться на своём компьютере, а не пускать всех подряд, достаточно уже майкрософт, и браузер не исключение.

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

Компьютерные игры. Мимо вечности в забвение.

Прежде, чем написать эту статью, мной были предприняты несколько попыток подсчитать количество компьютерных игр. Достигнуть успехов не удалось почти никаких. Найти систематизированную базу с хронологией и классификацией тоже не удалось. По не очень достоверным данным в настоящее время насчитывается около 14000 компьютерных игр. Ясно то, что у каждой новой игры при таком количестве вероятность оказаться в числе игр, ставших классикой жанра, невелика. Тем более, что разработчики иногда как будто нарочно делают всё возможное для того, чтобы успех игре не сопутствовал.

Для создания игр используют самые последние технические достижения: лучшая графическая основа, объёмный звук, искусственный интеллект последнего образца… А в итоге получается такое… что потом долго не могут продать даже по сниженным ценам. Так почему же вместо оглушительного коммерческого успеха получается сокрушительный провал? А потому, что разработчики многда пытаются нарушить совершенно объективные законы и построить вечный двигатель или опровергнуть таблицу умножения. И на каждом этапе совершается свой класс ошибок, на которые я поэтапно и хочу обратить внимание.

Так почему же одни игры становятся вечной классикой жанра, а другие исчезают в забвении даже не оставив следа? Что превращает игру в культовую, а что прерывает её путь навсегда? В чём причина успеха или провала? Почему за то, за что восхищаются одной игрой, проклинают другую игру? Что скрывается за тайной успеха? Чтобы ответить на эти вопросы нужно поэтапно рассмотреть историю создания игры от начала и до конца и увидеть ошибки, совершаемые на каждом этапе.

Этап первый. Даром преподаватели…

Любая серьёзная работа начинается с планирования. Если, конечно, уже есть готовая задумка, то планирование можно и пропустить, но лучше этого не делать. Игра, как правило, продукт коммерческий, а следовательно должна хорошо продаваться. Для того, чтоб игра хорошо продавалась она должна хорошо удовлетворять требованиям покупателей. А какие требования у покупателей? А требования свои для каждого жанра игр и часто весьма противоречивые. Но независимо от требований продолжительность игры пользователя в игру каждого жанра своя и поддаётся изменению плохо. В игру можно играть часами, десятками, сотнями, тысячами, даже десятками тысяч часов. Дальше уже можно не считать, это уже игры в которые играют всю жизнь. И срок жизни каждой игры напрямую зависит от того, сколько в неё будут играть. История некоторых игр насчитывает тысячелетия, отсюда переходим к обзору продолжительности жизни разных жанров компьютерных игр.

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

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

Недолго, зато определённо, играют в многопользовательские боевики, симуляторы и квесты — пока не выйдет новая версия игры или новая похожая игра. А раз новая игра выйдет через годы, то сотни и тысячи часов игры в случае успеха гарантированы.

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

А вот уже от продолжительности игры в компьютерную игру зависит срок жизни самой игры. Мало кто захочет заплатить не очень маленькие деньги всего за несколько часов игры или наоборот за невозможность дойти до конца даже после сотен часов отчаянных усилий.

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

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

Этап второй. Лабиринт сюжета с минотаврами ошибок.

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

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

Ещё одно любимое направление ошибок это усложнение управления, особенно в ролевых играх. Иногда возникает ощущение, что в требованиях к игре забыли указать что-то вроде: для игры требуется неполное высшее математическое образование и выше. Видимо, для того, чтобы запутать игрока. Но большинство таких загадок разгадываются без особого труда и половина характеристик может быть даже не использована ни разу. Зато терпения на опыты по отыскиванию наилучшего решения хватает не у всех. Иногда создаётся впечатление, что авторы перепутали головоломку с ролевой игрой или неправильно сочинили описание игры.

Нет, для того, чтобы стало интересней, можно и усложнить. Пусть в игре будет загадка, тогда её можно будет проходить раз за разом всё лучше и лучше. Но загадка не должна превращаться в тупик, когда непонятно зачем вообще нужна какая-то характеристика. Если она почти ни на что не влияет, то её использовать и не будут. А на нервы игроку действовать она будет. Возникнет вопрос: а зачем её вообще поставили? Усложнить и так непростой процесс, а игрока считают за идиота? Такое отношение игрокам не нравится.

Есть хорошо известная история про кошелку и сумочку, её древним прототипом стала Ханойская башня, а современным продолжением квестовые игры или иногда квесты в играх. Если в квесте нельзя взять сложностью, значит надо взять количеством. Например, комната закрыта на ключ, а ключ маньячный психопат удирая спрятал в ящик картотеки, тоже закрытый на ключ, спрятанный в другом ящике картотеки. И таких ящиков штук сто и раскиданы они по всему зданию. На десяток часов занятия хватит. Если ещё таких квестов десяток, то задачу можно считать выполненной.

Не менее хороший способ растянуть время это заставить бегать по картам и коридорам, часто прорубаясь через толпы врагов, особенно если каждое следующее задание можно получить только после выполнения предыдущего. Хорошо, если за убитых врагов идёт опыт или ещё что-то, а сохранить игру можно в любом месте. А вот если игру можно сохранить только иногда, то прохождение превращается в многократное переигрывание одного и того же. Убирание сохранения в любое время тоже применяют для продления времени игры, чтобы исключить способ прохождения через сохранение-загрузку после каждого удачного шага.

Ещё одна любимая болезнь ролевых игр это отсутствие продуманного дерева развития игрового персонажа. Если говорить обобщённее, то даже не дерева, а графа развития. Чем различаются герои разных классов, если все они проходят игру одинаково? Нет, граф может быть и сходящимся и ветвящимся и каким угодно, но он должен быть, а не представлять из себя прямую с несколькими ответвлениями в конце или начале. Это в том случае, если он вообще есть. Без предопределённого графа можно и обойтись, как сделали в Morrowind и Oblivion. К чему приводит отсутствие графа развития, когда он действительно нужен? К тому, что маг или лучник носятся с топором или воин и лучник сражаются огненной магией потому, что собственные навыки оказались совершенно неэффективными. Естественно, что смысл проходить игру разными классами в этом случае пропадает и время игры сокращается в разы.

Этап третий. Хвостом непокорного мула.

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

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

Ещё одна беда — организация загрузки игрового мира при движении по нему. Есть разные технологии: шовные, бесшовные, со скрытой загрузкой, предварительной загрузкой… У каждой есть свои преимущества и недостатки, спорить о них можно бесконечно, но есть одно неукоснительное требование — взаимодействие игрового процесса с загрузкой. При подзагрузке игра должна останавливаться полностью. Если этого не сделать, то при переходе из зоны в зону во время боя гарантированы или неприятности, когда героя убьют, а игрок ничего не успеет сделать в принципе, или дырки в сценарии, когда герой убьёт потерявших его из виду противников без труда. И в том и в другом случае пользователь будет очень недоволен.

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

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

Не хуже плохо настроенного случайного фактора игры могут её испортить и непредвиденные побочные эффекты. Например, от повторного применения повышающих характеристики средств при возникновении положительной обратной связи. Хорошо известным примером стала возможность бешеной алхимии в Morrowind, исправленная в Oblivion. Игру это не испортило, но проделало дыру в сценарии прохождения. Впрочем, данный пример можно списать на скрытую возможность быстрого прохождения без применения специальных кодов, точно так же можно пройти Falout 2 меньше, чем за час.

Говоря вообще, ошибки в механике и математике бьют по игре гораздо сильнее всех остальных. Если художественные недостатки можно списать на вкус и воображение, а бедность игрового мира на авторский замысел, то нарушения игрового баланса и противоестественные движения портят игру уже непоправимо. Если ещё в игре умудрились неправильно установить связь между событиями и почти добитый монстр вдруг перестаёт убиваться, а стойко держится пока не выйдет положенный интервал времени, в течение которого его полагалось по замыслу убивать, то впечатление от игры портится уже окончательно. Возникает ощущение, что за игрока уже всё решили заранее, что радости игроку не добавляет.

Этап четвёртый. Пришел, увидел, не осилил.

Уровни сложности бывают очень полезны. Они позволяют расширить круг игроков в разы. Но уровень сложности должен действительно влиять на процесс игры, а не создавать видимость влияния. И снова начинаются крайности. Одна крайность — сложность на самом лёгком уровне меньше сложности на самом трудном процентов на двадцать. Другая крайность — сложности отличаются в десятки раз, формируя у игрока комплекс неполноценности.

Сложность квестовых игр определяется сложностью квестов, а не количеством шагов для их выполнения. Простое угадывание приводит к поиску ответа в описании прохождения игры. Спять таки стратегии, головоломки, симуляторы и даже квесты оказываются в более выигрышном положении по сравнению с ролевыми играми и боевиками.

О пользе наличия в игре управления уровнем сложности в пользу игры говорит многое. Далеко не каждый игрок способен пройти игру на единственном среднем уровне сложности. Также далеко не все тонкости игры можно раскрыть до её полного прохождения, на которое при среднем уровне сложности могло уйти слишком много времени. Более того, сам уровень сложности влияет на стратегию прохождения игры, позволяя более детально проникнуться всеми её особенностями, что увеличивает количество её прохождений вместе с увеличением игрового времени.

И тем не менее очень часто многие игры имеют только один уровень сложности. С потребительской точки зрения это всё равно, что ввести один усреднённый размер одежды или обуви. В результате игра становится непригодной для одной половины игроков по причине своей трудности, а для другой из-за лёгкости. Примерно к тому же приводит недостаточное количество уровней сложности, которое часто бывает не больше трёх. Самые продвинутые в регулировании сложности производители игр применяют практически непрерывную регулировку уровня сложности. Безусловно, что непрерывная регулировка уровня сложности лучше ступенчатой, но нет ничего страшного, если по каким-то важным причинам её сделать невозможно. Многоступенчатая регулировка успешно применяется в стратегиях, головоломках и квестах без какого-либо ущерба для игры. А вот боевики, симуляторы и ролевые игры должны стремиться к непрерывной регулировке сложности, особенно если диапазон регулирования уровня сложности достаточно широк.

Опять таки способы регулирования уровня сложности бывают удачные и неудачные. Не очень часто, но неудачные способы всё же находят применение с завидным постоянством. Прежде всего нужно определить на что будет влиять изменение уровня сложности, не допустив при этом ошибку, а ошибку допустить несложно. Уровень сложности может изменять наносимый и получаемый урон, количество опыта или духа, денег, вероятность и количество выпадающих из врагов предметов, время и глубину алгоритма на действия компьютера… В таком богатом выборе нетрудно и запутаться.

Одна из самых вредных ошибок при выборе уровня сложности — намеренное совершение компьютером ошибок, а потом игра в полную силу. Изготовителей игр этот способ подкупает своей простотой и доступностью. Не надо ничего нового разрабатывать, а достаточно просто в начале чего-то сделать несколько ошибок, чтобы дать игроку фору. Впечатление от игры это портит очень сильно. Ощущение такое, что игрока считают за слабоумного и просто дают подёргаться, а потом показывают или стараются показать, где его место. От этой ошибки страдают чаще всего не ролевые игры, боевики, симуляторы и квесты, а, напротив, головоломки и стратегии.

Ещё одно порочное направление в регулировании сложности игрового процесса это расхождение принципов регулирования уровня сложности со здравым смыслом, особенно сильно могут пострадать от этого стратегии, боевики и ролевые игры. С ростом уровня сложности странно смотрятся снижение количества получаемого опыта, денег, ресурсов и прочего. Не менее странно будет выглядеть и повышение количества опыта, неоходимое для получения следующего уровня, не говоря уже о том, что при таком подходе непонятно как можно будет выполнить переход от одного уровня сложности к другому без смены игрового персонажа.

Этап пятый. Сказка — ложь…

Хоть в очень многих играх действие и происходит в вымышленном мире, но здравый смысл должен быть. Без здравого смысла игра становится слишком странной. Есть, конечно, странные игры, но они рассчитаны не на широкий круг игроков. Если в игре есть логические задачи, то они должны иметь логическое решение. Причём логическое решение не подразумевает под собой перебор всех возможных вариантов решения, пока хоть один не подойдёт. Особенно сильно от логических ошибок могут пострадать квесты и головоломки.

Не менее странно иногда выглядит продвижение игрового персонажа в ролевых играх с развитием класса в процессе игры. Так начиная игру совершенно одинаково по мере продвижения происходит специализация через выбор определённого количество умений. Этот подход можно успешно использовать в стратегиях, где время игры одним героем невелико, а число доступных навыков ограничено, но в ролевых играх такое выглядит уже довольно странно. Возникает, остающийся без ответа вопрос, а что мешает герою изучить все навыки и умения? Всё вполне логично, если дополнительные характеристики приобретаются вместе с получением уровней, или специализация происходит в соответствии с линией сюжета, но когда ограничения введены просто так… это уже не радует и не заставляет более внимательно подходить к выбору, а просто раздражает. Действительно, если у игрового персонажа была совершенно определённая возможность выучить несколько умений, то почему он должен выбрать только одно? Понятно, если были бы ещё ограничения по времени, но если их нет…

Ещё один нередкоиспользуемый способ испортить квестовую игру это использовать для решения возникающих задач нестандартные решения. Дедукция, индукция и любая логика оказываются просто бессильны на каждом шагу. Обычно авторы игры мотивируют свой подход в создании таких игр стремлением к поиску оригинальных решений. Но получается обычно всё наоборот — игрок пытается просто перебрать все возможные варианты решения и после попадания в тупик отправляется на поиски готового ответа. И хорошо, если ещё ответ окажется хоть в каком-то соответствии с поставленной задачей или полученной подсказкой.

Очень неприятное впечатление может произвести отсутствие в игре возможности решения возникшей задачи при очевидном наличии такой возможности. Обычно это результат небрежной проработки сценария. Например, в качестве наиболее яркого примера, для открывания двери нужно нажать на четыре кнопки в правильном порядке, причём число попыток неограничено. Но по сценарию для этого требуется найти подсказку с половиной последовательности, хотя и без этой подсказки простой перебор займёт несколько минут. Если бы число комбинаций было не двадцать четыре, а тысячи или миллионы при большем количестве кнопок, то в поиске подсказок был бы толк, а так создаётся впечатление, что игрока считают за дурака и дают примитивные квесты. Исправить дело могло бы ограничение по времени или числу попыток, но тогда в ход могло пойти прохождение через загрузку-сохранение, так что самый лучший способ исправить квест это увеличить количество кнопок.

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

Этап шестой. Экономика должна быть экономной.

Особенно в отношении богатства выбора. Если вспомнить классику типа Diablo, то можно обратить внимание на то, как надо подходить к созданию классов. Есть основная характеристика, скажем, в два раза выше других. Если главных характеристик три, то получаем три класса героев. Если подойти по-другому и принять одну характеристику главной, а другую важной, то получим уже шесть классов. А дальше уже лучше не портить, а пойти по пути Bethesda, которая к разнообразию классов добавила возможность создания собственного класса потому, что количество предопределённых классов было бы слишком велико.

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

Не менее пагубное влияние на игру может оказать и слишком большое разнообразие линий сюжета. Когда вариантов выбора становится слишком много, кажется, что сюжет отсутствует вообще. И начинается поиск наилучшего вместо использования всего возможного. Причина всё в том же: когда что-то разделено на слишком много частей, то увидеть разницу бывает очень трудно. Отличить половину от целого легко. Отличить одну треть от двух третей тоже легко. А вот отличить две десятых от трёх уже непросто. Значит надо ограничивать ветвление сюжета, а не убирать его или делать таким разветвлённым, что он начинает напоминать паутину.

Экономить нужно и на характеристиках. Если две характеристики почти ничем не отличаются и влияют почти на одно и то же, то лучше объединить их в одну. Изобилие характеристик может сильно помешать балансировке развития игрового персонажа. Большое количество характеристик приводит к необходимости увеличивать количество получаемых баллов для их повышения, что при недосмотре позволяет поднимать одну из характеристик до предела, создавая перекос в игре. Так что надо или вводить ограничения навыков по уровню, или вводить прогрессивный расход баллов, или учитывать средний балл, или пускаться на более тонкие математические ухищрения.

Экономить нужно ещё и время игрока, как бы странно это не звучало. Иногда для того, чтобы добраться до нужного окна требуется открыть два-три дополнительных. А открывать его надо пять раз в минуту! Отсутствие поиска и систематизации в игровых дневниках, перелистывание списка товаров, лежащих вперемешку и прочие недоработки игрового интерфейса могут довести до того, что играть станет невозможно. Парадоксально, но факт: экономия времени продлевает время игры.

Этап седьмой. Включаешь — не работает!

Цель оправдывает средства, особенно если цель это повышение производительности игры или снижение системных требований. Но на этом пути есть хитро замаскированная ловушка. Включив в игре поддержку скрытых или недокументированных возможностей операционной системы или действующего поколения компьютеров разработчики тем самым ставят точку на её продолжительности жизни. После смены операционной системы или прихода нового поколения компьютеров игра перестаёт работать. Если вспомнить игры, ставшие классикой жанра, то можно увидеть, что даже те из них, которые были написаны под MSDOS и первые виндоузы на древних процессорах, продолжают работать и сейчас, например, те же Heroes 2.

Системные требования к игре это не простая формальность, как некоторым кажется. Сейчас уже дошли до того, чтобы указывать минимальные и рекомендуемые требования. Но уровень работы игры должен соответствовать заявленным требованиям. И здесь кроется ещё одна ловушка в которую часто попадают производители. Что гарантируют минимальные системные требования? И что гарантируют рекомендуемые требования? И где находятся максимальные требования? Часто ответ на эти вопросы слишком сильно размыт. Спрашивается, если на минимальных требованиях игру можно только посмотреть, а играть невозможно, то могут ли эти требования называться минимальными? Если на рекомендуемых требованиях игра при максимальных настройках начинает тормозить, то могут ли эти требования называться рекомендуемыми? И на вот таких неточностях могут происходить самые настоящие крушения проектов.

То, что лучшее — враг хорошего слишком часто подтверждается в игровой индустрии. Производители игр стараются выжать из аппаратного обеспечения всё возможное и сами же себе делают хуже, и не только себе, но и пользователям игр. Отсутствующая дополнительная настройка звука или видео — всего лишь повод для сожаления, а вот неработающая или непредсказуемым образом обрушивающая систему вместе с игрой — повод для раздражения. Одно дело не получить то, что хотелось, а другое — получить то, чего совсем бы не хотелось.

Множественные нарекания может вызывать и аппаратная требовательность игры, зачастую отягощённая неустойчивостью работы на перегруженной системе. Сама по себе современная операционная система, в которой запущена игра, дополнительно нагружена не одним и не двумя, а раз в десять большим количеством процессов. Параллельно с игрой работают другие приложения и когда происходит всплеск нагрузки от игры или от других процессов система может перейти в нестабильный режим. Если игра не запрограммирована на работу при исчерпании какого-либо системного ресурса, то она зависает или самовыгружается.

Существует ещё одна серьёзная угроза игре со стороны системных требований. Если в игре не существует раздельного управления дальностью обзора и детализации, то игрок может лишиться возможности увидеть врагов раньше, чем они увидят его. Само собой разумеется, что играть в таком случае окажется невозможно. Хорошо, если при составлении минимальных системных требований учли необходимость поддержания минимально необходимых настроек игрового интерфейса. В противном случае игра рискует надолго отправится на хранение до ближайшего апгрейда.

Довершением необходимости строгого подхода к оценке системных требований игры является то, что достаточно часто уже выбирается не игра под компьютер, а компьютер, или деталь компьютера, под игру. Если при таком подходе производитель заниженно или неточно указал системные требования к игре, то он рискует очень надолго лишиться репутации, спроса и потребителей потому, что компьютеры и их комплектующие стоят уже не порядок больше, чем сами игры, а разочарованные игроки быстро найдут подходящую замену своей любимой игре у конкурентов.

Этап восьмой. Если на клетке со львом…

Хорошую игру мало сделать, её надо ещё и правильно подать. Если на коробке с боевиком будет написано ролевая игра или назвать стратегию квестом, то провал будет обеспечен. Потом, конечно, разберутся и купят те, кому это действительно нужно, но время будет потеряно, а репутация производителя испорчена. Что это за производитель, который сам не знает, как называется его продукция? Реклама — двигатель торговли, но упаковка — лицо товара, особенно если упаковка включает в себя рекламу.

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

Для того, чтобы покупатель не разочаровался сразу после покупки, нужно, чтобы он видел, что покупает. Это значит, что уже на упаковке диска должно быть описание игры с перечислением ключевых характеристик. Чем является игра: ролевой, стратегической, боевиком… или смешанным жанром и чего с чем. Сколько в игре есть и чего. Не страшно, если не останется места для выражений вроде лучшая игра или новейшее достижение. Никакие заявления производителя не убедят покупателя, если продукт не соответствует предъявленным требованиям.

Сайт игры в первую очередь должен содержать много отчётливых скриншотов и, желательно, с комментариями. Совсем не лишним будет полное и развёрнутое руководство с толковыми рекомендациями. Bethesda вообще сделала приложение к игре Fallout 3 в виде руководства по игре. Сейчас забыта, но должна указываться возрастная категория игры, причём не то, что обычно устанавливается ограничение по возрасту, а верхняя и нижняя возрастная планка. Не многим детям и подростками понравятся игры для старшей аудитории, а старшей аудитории в массе своей не будет интересна игра для детей и подростков. И так будет совсем не потому, что игры плохие, а потому, что были неправильно выбраны. Конечно, есть игры для всех возрастов, но это должно быть указано.

Правильно выбрать игру может очень помочь демонстрационный видеоролик или демоверсия игры. Несмотря на очевидность этого приёма им часто пренебрегают. И если против изготовления демоверсии вполне можно найти весомые аргументы, то против изготовления демонстрационного ролика таких аргументов нет. Именно посмотрев игру в действии можно увидеть все её графические достоинства или недостатки. Другое дело, что некоторые производители надеются таким способом скрыть недостатки неудачных игр, а когда игра уже куплена, то уже неважно что с ней будет дальше.

Утаивание недостатков игры это один из любимых и самых пагубных приёмов, используемых для продажи. Иногда утаивают специально, иногда просто забывают сообщить о недостатках, которые потом становятся неприятными сюрпризами. Достоинства и недостатки игры во многом субъективны. То, что по мнению одних является достоинством, по мнению других является недостатком, поэтому скрывать что-либо от покупателей — процесс очень неблагодарный.

Последним камнем преткновения на пути игры к покупателю может стать сам носитель игры. Игру можно записать на одном или нескольких CD, DVD, выложить на сервер в интернете или продать только ключевой диск для дозагрузки к нему с сервера. Игра может запускаться с внешнего носителя или из установочного каталога, а родной носитель использовать только для проверки подлинности. Будет ли удобно всё время переставлять диски с игрой? Нужна ли игре защита от копирования? Что будет в случае поломки одного из нескольких носителей игры? Эти, и не только эти вопросы возникают иногда в последний момент, но могут иметь едва ли не первостепенное значение.

Заключение

Прочитав всё вышеизложенное можно подумать, что современных хороших игр сейчас в природе нет. Все хорошие игры уже были сделаны, а всё, что было после, просто грубое и бездарное подражание. И это будет совершенно неправильно! Новые хорошие игры есть и будут. И будет их тем больше, чем тщательнее производители будут подходить к выполнению поставленной задачи. Отсидеться за громким именем и прославленной репутацией в игровой индустрии не получится.

Единственное, что действительно закончилось, так это эпоха безответственного подхода к созданию игр. Современную конкурентоспособную игру нельзя сделать просто так, случайно и мимоходом. Конечно, из правил бывают исключения, но это именно исключения. Качественная игра требует продуманного подхода, а не наскока с целью сделать что-нибудь.

Особенно тщательный подход требуется при создании серий компьютерных игр. Если продолжение оказывается хуже начала, то следующая часть может вообще оказаться невостребованной и никакие заверения и обещания сделать в следующий раз лучше и учесть всё не помогут. В истории уже были печальные примеры, когда серия проваливалась или едва не проваливалась потому, что разработчики понадеялись на успех предыдущих частей или просто решили заняться сомнительными нововведениями.

Не надо бояться подражания, надо бояться копирования. У каждого направления может быть множество вариаций. Каждая новая игра будет чем-то похожа на существующие, но количество возможных игр неисчислимо. Попытка использовать только известное заводит в тупик. То, что сейчас считается классикой, когда-то было новаторством. Никогда не надо бояться нового. Может быть что-нибудь из того, что сейчас считают спорным нововведением, приговорённым к скорому забвению, через годы станет вечной классикой.

Защита содержимого сайта или история человеческой глупости.

Не так давно передо мной была поставлена задача: скачать галереи фотографий с нескольких сайтов, перебрать, муть повыкидывать, составить портфолио и представить рекомендации по изготовлению фотогалерей для сайтов. Задача казалась не столько сложной, сколько нудной, но как же я ошибался! Меня ожидало целое приключение.

Первое, с чем я столкнулся, это отсутствие нужной программы по выдёргиванию изображений с сайтов в свободном доступе. Перебрав имеющееся в распоряжении небогатое множество программ зеркалирования сайтов я выбрал самый лучший, собственно, единственный работающий HTTrack. После нескольких часов битвы с зацикливанием и прочими мелкими пакостями программа пала, так и не сумев отзеркалить сайт. И тогда в ход пошла тяжелая артиллерия, а именно Python со всеми его сетевыми модулями.

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

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

Существует распространённое мнение, что защита нужна не от хакеров, а от рядовых посетителей. Только зачем простой посетитель будет копировать сайт? Нет, понятно, что некоторые производители браузеров даже додумались до метатегов с инструкциями запрета, но достаточно прочитать описание HTML и HTTP, чтобы понять, что реальная ценность этих тегов ничтожна. Запускается оболочка, подключается библиотека, посылается запрос и включается разборщик текста. Всё остальное уже дело мелкой техники.

Чтобы понять, зачем и что пытаются защитить изготовители сайтов, коротко рассмотрим из чего сайт состоит. А состоит он из всего двух частей: одна хранится и выполняется на сервере, а другая отправляется клиенту. Обычно первая часть представляет собой определённую ценность, если разработана специально для сайта, или является платной или бесплатной CMS и тогда уникальной ценности не представляет. В любом случае добраться до первой части можно только взломав сайт и переписав содержимое, что при правильном построении сайта мало кому доступно и уж никак не рядовому пользователю. Вторая часть гораздо более доступна, так как в том или ином виде отправляется клиенту.

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

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

По-настоящему защитить изображение и прочее может только регистрация авторских прав на него. Мероприятие ужасно дорогое и нудное. Некоторые просто не знают, сколько судебных исков идёт одновременно из-за схожести логотипов, эмблем, гербов, товарных знаков и прочего. Страшное дело! Адвокаты и эксперты обогащаются, истцы разоряются, суды переполняются, свидетели подкупаются. Так что не верьте заявлениям на сайтах, что всё представленное и так далее…

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

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

А уж какие меры! Отключают выделение и сохранение, режут изображения, загоняют их в фон, накрывают прозрачными изображениями, накладывают водяные знаки, скриптуют и шифруют. Иногда создаётся впечатление, что на защиту сайта ушло больше, чем на его создание. Для завершения картины надо ещё возле каждого изображения приписать, какие санкции следуют за её незаконное использование.

К применителям всех этих мер у меня всегда один вопрос: а кого вы хотите напугать и кому хотите помешать? Дядю Васю и тётю Машу, которые с трудом понимают, что такое браузер, вы напугаете, причём до такой степени, что они с вашего сайта сразу уйдут и больше не зайдут. Они подумают: а вдруг что-нибудь нарушим и нам за это что-то будет? А это основная составляющая посетителей. После них идут наплеватели на всё и вся. Вот для них все ваши защиты это как для тяжеловеса штанга. Чем труднее — тем интереснее. Дальше идут уже многочисленные роботы для всего, что только можно придумать. И мало, кто из этих роботов будет собирать всё подряд и сохранять. Это же не хватит ни ёмкости хранилищ, ни пропускной способности сетей! И под конец остаются немногочисленные, но грозные хакеры, от которых любая защита спасает, как газета от пулемёта.

Мы забыли упомянуть небольшую, но важную непосредственную аудиторию сайта, которой нет дела до сохранения и сбора содержимого. Но кто же о них думает! Идёт война за сохранение от скачивания, в жертву которой принесено всё, что только можно: качество, удобство, скорость, содержание и прочее. Вы когда-нибудь пробовали поработать с сайтом при отсутствии интернета? Да! Вы не поверите, но такое бывает, причём гораздо чаще, чем кажется. Нажали, сохранили, пока занимались чем-то другим, пролистали, выбрали, остальное выкинули. Есть ещё медленный доступ и медленные серверы. Страница с одной фотографией грузится от десяти секунд до минуты, а на оценку фотографии уходит одна секунда. Вы пробовали работать с десятикратно уменьшенной скоростью? Очень раздражает.

Есть ещё одна распространённая глупость в борьбе с разворовыванием — ограничение скорости отдачи. Рассчитывают на то, что робот не дождётся и отцепится. Забывают только, что у робота терпения хватит навечно, а у пользователей — наоборот. А что получается в итоге? Роботы увеличивают количество потоков и подвешивают сервер, забивая его запросами. В итоге сайт повисает для всех.

Эйнштейн считал, что есть две бесконечности: вселенная и человеческая глупость, причём насчёт вселенной он не был уверен. Есть защита, а есть её видимость. Так вот, видимость раздражает. От детей замки в шкафах, может быть, защищают, только не от воров. Если вы хотите защитить содержимое так, чтобы его не украли, то ставьте действительно непробиваемую защиту или не ставьте никакую вообще. Сайт с хорошей защитой разворовывать не будут потому, что рядом есть незащищённые. Воры всегда ищут плохой замок потому, что раз он есть, значит есть, что украсть, а раз замок плохой, значит украсть будет просто. Сами привлекаем воров на сайты, а потом удивляемся, что всё у нас растащили.

В противоречие с защитой часто вступает удобство пользования сайтом. Для входа на сайт надо авторизоваться, каждый переход сопровождается вводом кода и так далее. Даже сохранить что-либо по выдернутой из исходного кода страницы невозможно без подтверждения вручную пароля. Пользоваться очень неудобно и применимо только в очень обоснованных случаях.

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

Пришло время подвести итог рассуждений. Если вы хотите защитить картинки от растаскивания, то ставьте действительно серьёзную защиту и сразу пишите, что за содержимым установлено слежение. Будет неплохо показывать посетителю его IP адрес — это хорошо убеждает. Если вы на это не готовы, то не ставьте ничего, а в дополнение покажите ссылку на коллекцию изображений. Увидев её большая часть любителей растаскивания просто пойдут искать дальше потому, что решат, что раз есть такая ссылка, то на сайте ничего ценного для них нет. Помните, что предотвращать лучше, чем бороться.

USB-flash или маленький конец большого пиратства.

Недавно я приобрёл новую восьмигигабайтную флешку всего за четыреста рублей. Само по себе явление достаточно заурядное, если бы не воспоминание о былых временах почти десятилетней давности, когда флешки на шестьдесят четыре мегабайта стоили почти тысячу рублей. Ещё несколько лет, а может быть и меньше, и восьмигигабайтная флешка будет стоить рублей сто, примерно. И что в этом такого знаменательного? А то, что емкость почти пять гигабайт имеет стандартный DVD диск.

О пиратстве и защите от пиратства сказано и написано много. И есть на стороне пиратов сильнейший союзник — программы раздаются на стандартных носителях или по сети. Что CD-ROM, что DVD-ROM, что запись на жесткий диск и прочее не обеспечивают отсутствия повтора где-то и кем-то. Технология копирования информации между носителями это один из краеугольных камней существования компьютера, а, следовательно, и пиратства. Только записанную на заводе и не имеющую возможности к перезаписи флешку с програмой в домашних условиях изготовить уже нельзя…

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

Какая от всего этого нововведения, а именно продажи программ на USB-flash носителях, польза? А польза очень большая! Больше царапины не приводят драгоценный носитель в негодность, его не разрывает в дисководах и не разбивает падение на пол. Огромные, вечно разбитые и потрескавшиеся коробки больше не нужны и не занимают целые полки. Пираты уходят с рынка навсегда, а с торрентов исчезает пиратское содержимое.

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

Особенно хорошо нововведение скажется на игровой индустрии, где стоимость продуктов измеряется сотнями рублей. Офисное, научное, образовательное, дизайнерское или конструкторское программное обеспечение стоит дорого, закупается в основном организациями, подвергается проверкам уполномоченных органов и, хоть и с трудом, но поддаётся контролю. Ворованные виндоузы на домашних компьютерах отслеживаются похуже, но их стараются продавать вместе с компьютерами и система покупается на годы. А вот с играми пока не всё благополучно…

А неблагополучно потому, что игра стоит сто, двести, триста, пятьсот рублей, а носитель от неё стоит рублей десять. Если сейчас перенести игры на флеш-носители, то стоимость возрастёт в два раза. Но если стоимость флеш-носителей упадёт ещё в четыре раза, то игры можно будет переводить на другие носители без повышения цен. Насколько я помню, что-то подобное имеется в мире игровых приставок, где пиратство не процветает, но от мира игровых приставок я достаточно далёк.

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

Безусловно, что трудности с переходом на новые носители неизбежны: нужно найти производителя соответствующих носителей; найти программистов для адаптации ПО к новым носителям; убедить покупателей, что новое не уступает старому; отразить нападки со стороны подкормленных пиратами и хакерами поборников краденого ПО и многое другое. А терпеть убытки от пиратства и хакерства это дёшего? То, что пираты разворовывают, стоит в разы больше.

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

А кто сказал, что носители лицензионного ПО должны копироваться? Пишущие приводы нужны не для копирования защищённых от копирования носителей, а для пользовательских данных. И это с учётом того, сколько денег было потрачено на защиту от копирования. Да, есть ПО, привязываемое к устройству и не защищаемое от копирования носителя, так это другая лицензия. Мало кому понравится закупать после каждой переделки компьютера все игры заново или получать личный код активации каждый раз при переустановке. Только вдумайтесь, что произойдёт, если производитель игры прекратит поддержку или даже своё существование.

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

И не надо бояться, что после гибели последнего носителя любимая игра навсегда погибнет. Как-то выходят игры для приставок и персоналок одновременно и ничего. Разница будет только в том, что выходить всё будет не одновременно и для того и для другого, а по очереди. К тому же есть ещё одна весомая причина для спокойствия — производитель не заинтересован в исчезновении игры никогда потому, что не исчезающая годами игра является его собственной рекламой и подтверждением высокого рейтинга.

Много ли вы знаете программ, переживших хотя бы десятилетие? Причём не из серии программ, а именно одна программа. Штучное количество, а почему? А потому, что меняются технологии аппаратного обеспечения. Уцелеть удаётся в основном стратегиям или головоломкам. Вряд ли кому-то захочется переиграть в стрелялку пятилетней давности, а всё потому, что выглядит она по сравнению с современными просто ужасно. Досовские игры помните? Многие сейчас даже не знают, что это такое. Вспомните ещё переход с пиксельной на объёмную графику и увидите, сколько игр сразу канули в забвение. Даже среди любителей старины найдётся мало желающих играть в игры или пользовать программы с доисторическим разрешением экрана. То, что красиво смотрелось на четырнадцатидюймовом мониторе с несколькими сотнями цветов, хорошо, если не десятками, на двадцатичетырёхдюймовом мониторе с миллионами цветов выглядит часто ужасно.

Опасения всегда были и это естественно. Сначала неохотно приживались CD, потом небыстро пишущие CD, медленно вползали приводы DVD, с опозданием пишущие DVD, ползком внедрялись крупнотоннажные флешки, USB разъёмы незаметно множились на платах. Так что уже пора привыкать к новым устройствам потому, что игра на флеш-носителе уже будет чем-то средним между носителем и устройством. Никого же сейчас не удивляет, что сама игровая приставка не содержит игру. Так что удивляться скоро будет нечему, разве что медленному, но неотвратимому вымиранию пиратов и хакеров.

О, рандом! Или мракобесию от программирования посвящается.

Генератор случайных или псевдослучайных чисел сейчас используется если не везде, то почти везде: карточные игры, шифрование данных, защита информации, логические игры, ролевые игры, стратегии, MMORPG… Вот об играх мы поговорим поподробнее. Да, об играх, а не о генераторах, точнее об использовании генераторов в играх. Вообще, с развитием изобразительной части, программной части игр сильно не везёт. Возможно это следствие переключения внимания от содержания к внешнему виду и случайные события в играх не избежали печальной участи.

За последнее время, гоняя то аллодов, то перфект, я не мог не обратить внимания на поток чудес вокруг игрового действа. Полчаса, час, два колотим мобов и ждём когда же выпадет это, то, что надо. А оно выпадать совсем не торопится, тогда мы открываем базу по игре и читаем, что вероятность выпадения равна… А чему бы она ни была равна, а уже пять раз должно было выпасть!

Нет, мы не рассматриваем случаи, когда написано, что вероятность выпадения десять процентов и некоторые ожидают, что на десятом мобе всё выпадет. Не надейтесь! Чтобы вы не мучились я вам сразу скажу, что при десятипроцентной разовой вероятности выпадения, вероятность получить желаемое достигнет девяноста процентов только после двадцать второго моба, девяносто пяти процентов после двадцать восьмого, а девяносто девяти аж после сорок четвёртого! Так что не торопитесь делить единицу на десять процентов и поносить игру на форумах, что ничего в ней нельзя сделать и про игровую тягомотину.

Гораздо хуже, когда программисты забывают про некоторые свойства генераторов, а именно их погрешность и неравномерность, которые и вылезают именно в области малых вероятностей. Когда вы третий час колотите мобов и без малейшего успеха, не торопитесь разбивать компьютер! Он совершенно не виноват. Это не глюки процессора последнего образца, а простое наплевательство программистов. Вы уже скачали из интернета учебник по теории вероятностей и перерыли википедию, на всех имеющихся в доме и компьютере калькуляторах пересчитали необходимое количество мобов и умножили его на два, в два раза превысили, ничего не достигли и находитесь в недоумении? А всё очень просто: программист заложил в игру не то, что есть на самом деле, а идеальную модель генератора, по которой предмет выпадает в том случае, если генератор выдал число, скажем, меньше одной тысячной. То есть вероятность выпадения предмета одна тысячная, если генератор выдаёт значения от нуля до единицы.

И вот вы колотите уже пятую тысячу мобов и ждёте, что вот-вот выпадет долгожданное. После десятой тысячи возникают большие сомнения в правдивости игровой базы. А сомнения напрасны! Просто погрешности генератора таковы, что на самом деле вероятность выпадения стала в десять раз меньше! Если вы проверите любой генератор случайных чисел, то почти наверняка увидите, что по десятым долям единицы всё распределяется просто идеально, по сотым уже видна неравномерность, а по тысячным всё больше и больше, хуже и хуже. И как раз в этой недостоверной области программист заставил работать программу!

Конечно, можно возразить, что ничего с этим неизбежным злом поделать нельзя и остаётся только терпеть, если бы на поверхности не лежало уже готовое решение и не одно. Например вместо rnd(…)≤0.001 написать rnd(…)≤0.1 & rnd(…)≤0.1 & rnd(…)≤0.1 и на производительности это почти не скажется, но религия не позволяет! В соответствии с правилами построения программного кода генератор случайных чисел надо эксплуатировать в области наименьшей устойчивости. Сомневаться в этой догме недопустимо так же, как и прочитать труды Кнута и прочих!

Безусловно, идеальных генераторов случайных и псевдослучайных чисел пока не нашли. Да, генераторы псевдослучайных чисел инициализируются набором данных какой-то битности, ограничивающим получаемое число возможных последовательностей. Но и того, что есть, достаточно для работы при правильном использовании. Игра это не банковская сеть и от неё не требуется сверхзащиты от взлома. От игры требуется просто устойчивая работа, когда на форумах не плодятся обсуждения, что одному выпало сразу всё, а другому почти ничего и все попытки что-либо исправить ни к чему не привели, причём последних подавляющее большинство.

А опасаться есть чего! Некоторые разработчики с перепугу начинают поднимать вероятности особых событий настолько, что складывается впечатление, что игровой процесс только из них и состоит. На пять выстрелов один промах и одно критическое попадание при десятипроцентной вероятности таковых. И хорошо, если на пять! Бывает, что и на три! Вы можете себе представить снайпера, который то попадает в глаз, то мимо тела вообще? Причём каждым третьим выстрелом. Я — с трудом.

Есть ещё одна беда, которую незаслуженно сваливают на генераторы, а именно непредсказуемость исходов битв, особенно в MMORPG. Вот тут как раз генераторы совсем не виноваты, совершенно, а виновата злополучная теория вероятностей и недальновидность разработчиков игр. Некоторые из них считают, что достаточно сделать расчёты только по среднему значению. А приводит это к тому, что в половине случаев исход битвы оказывается не в пользу игрока и сделать с этим ничего невозможно! Вероятность отклонения от среднего пятьдесят процентов в каждую сторону независимо от вероятностей промаха, критического попадания, применения каких-либо навыков и прочего. Вот такое вот есть свойство у суммы нескольких случайных величин, особенно, если слагаемых много.

Генераторы случайных чисел иногда любят использовать не по назначению. Обычно это способ обойтись универсальным средством, которым эти генераторы почти являются. Если в игре есть сотни видов ресурсов и тысячи предметов, которые могут выпасть в качестве трофеев, то сам по себе напрашивается вывод использовать для их обработки рандом, но подводные камни не дремлют. Предметов много, ресурсов мало, вероятности выпадения надо устанавливать поменьше, а дальше смотрим выше.

Опять же есть способы борьбы с явлением путём полного исключения случайности. Те же самые трофеи могут записываться в полный список добытого и при достижении единичного значения выбрасываться в игру. Следует пинимать, что это увеличивает объём сохраняемых данных и заставляет делать полный проход списка, но зато исключает расходы на запуск генераторов.

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

И напоследок. В некоторых религиях считается, что мир сотворён из хаоса. Да пребудет с нами рандом!

О сколько нам чудес готовят CMS!

Системы управления содержимым сайта в настоящее время основательно распространились, укрепились, усовершенствовались и размножились. Делятся они на два направления: работа на сервере или работа перед отгрузкой на сервер. Смешанную разновидность как отдельную рассматривать не будем. Второе направление представлено чем-то вроде редактора сайта с приделанным к редактору конвертером. Первое направление располагается на серверах и их ему достаточно. Спрашивается, а где же тут чудеса и когда они начнутся?

Поток чудес начинается, когда начинается выбор CMS для сайта. И проходя по сайтам интернета видно, что поток этот не оскудеет. Некоторые думают, что если сайт должен обрабатывать поисковые запросы или к сайту приделан электронный магазин, то сайт обязательно должен быть построен на CMS серверного типа. Ещё бы! На сайте же присутствует исполняемое содержимое! Непревзойдённая логика безумия! Если двигатель теплохода работает на солярке, то теплоход это трактор. Смешно? Вот так же и CMS оценивают.

Прежде, чем перейти к разбору чудес, рассмотрим, чем эти чудеса для пользователей сайтов заканчиваются. Как ни странно, наибольший вред наносят серверные CMS. Предназначены серверные CMS для работы с базами данных и шаблонами страниц. Неудобно было бы загружать гигабайты данных туда и обратно, если, конечно, сервер не присоединён к локальной сети, поэтому применяют вход на сайт администратором и редактируют только шаблоны страниц. Шаблоны обычно прилагаются потому, что страницы раскиданы по исполняемому коду или встроены в него через переменные. Так что богатством выбора оформления серверные CMS не отличаются, а хочется чтобы сайт был исключительно единственным.

Тут надо бы остановиться и задуматься, но потребитель уже разошелся и останавливаться не собирается. Он уже выбрал CMS и не собирается отступать. Любые встречающиеся на пути трудности воспринимаются, как подтверждение правильности сделанного выбора. А как же! Ещё в школе учили, что чем правильнее, тем труднее или если трудно, значит правильно, как-то так. Хорошо ещё, если руки свои в код не запустят… А запускать любят. Потом посетители долго удивляются, почему не работает поиск, куда пропала вся навигация, где карта и почему до некоторых страниц можно добраться только через внешнюю поисковую систему. А не надо удивляться! Люди трудности преодолевали! Самими же себе созданные…

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

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

Шаблонное построение в первую очередь предназначено для работы с базой данных, которая может меняться непрерывно. Привязка к программному коду исключает возможность творить со страницами всё, что захочется. Да редактирование может быть, но оно ограничено и не просто так. Это программа с примесью страниц, а не страница с примесью программ. Вот как раз последняя часто решает множество вопросов, если в программе не пороются. Если собираетесь делать страницы самостоятельно, то не связывайтесь с шаблонной CMS, иначе не оберётесь бед.

Ещё одна причина чудодейства — оценка CMS. Немало школьников мечтают о вертолёте, чтобы летать в школу, но мало кто из них представляет, насколько это сложно. Достаточно велосипеда, но лучше пусть будет вертолёт! Вот так, обычно, при выборе CMS и рассуждают. Раз шаблонов недостаточно, значит пусть к системе приделают редактор страниц. Ну и что, что при этом правка страницы превращается в подвиг, часто ненужный, зато какая технологичность! Особенно, если в сайте страниц двадцать…

Никто не спорит, что построить вики, форум, блог, доску объявлений и прочие изысканные вещи на статическом CMS никак не получится по определению. Всё отправленное должно появляться сразу и делать это должен сервер. Если есть необходимость редактировать сайт из любого браузера без привязки к чему-либо, то без серверной CMS тоже не обойтись. Но не надо же сайт из одной страницы вешать на систему с удалённым управлением! Тем более, что страница не меняется годами…

Одной из главных причин, приводящих к ошибке выбора CMS, является незнание того, что такое CMS и сколько их существует. Кто-то решил сделать сайт с чем-то. Ему сказали, что нужен движок для сайта и надо зайти на сайт такой-то, чтобы скачать или заказать у тех-то, чтобы купить. Что заказать, что купить, для чего и на чём уже не обсуждается. О том, что на самом деле представляет из себя движок и чем он отличается от шаблона, после выбора уже не задумываются.

Немногие знают, что количество CMS измеряется сотнями, что они делятся по лицензиям и направлениям функциональности, что есть узкоспециализированные или многофункциональные CMS и так далее. Так что прежде, чем звонить знакомым и спрашивать про движок, лучше открыть поисковую систему и запросить список систем управления сайтом. И только изучив полученные результаты поиска уже приниматься за выбор CMS.

Дополнить процесс выбора можно обдумыванием необходимости CMS. Вполне возможно, что ваш сайт в ней вообще не нуждается. Помните, что CMS не являются заменой ручной разработке сайтов. Многие считают, что CMS являются следующим уровнем разработки сайтов, но они ошибаются. Это всё равно, что заявлять, что C# заменяет ассемблер или Perl заменяет C++. Совершенно разные уровни разработки. Так что использование CMS не избавляет от копания в HTML и построчной сборки.

Проникновение CMS куда не надо происходят иногда по незнанию самих разработчиков о существовании автоматизированных средств разработки сайтов. Тут уже выступает на первый план элементарное незнание скриптовых языков и языка преобразования XSLT. Например, для отображения базы данных в виде таблицы не обязательно нужна SQL, а бывает достаточно базы XML с таблицей преобразования. Или для генерации нескольких тысяч страниц достаточно применить скрипт на Perl или Python. Собственно, с написания скрипта уже начинается разработка индивидуальной CMS для конкретного сайта.

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

Что у нас будет в качестве подведения итогов обзора? Я думаю, что утверждения: семь раз отмерь — один отрежь или поспешишь — людей насмешишь здесь подходят как нельзя лучше. Ну и ещё: каждому делу учиться надо. Если вы взялись делать свой сайт, то не поленитесь хотя бы прочитать, как это делается, благо теперь интернет выделяется почти бесплатно.

Последний день пирата, или интернета, интернета…

О том, что пиратство это зло, знают все. Только борьба с пиратством чаще всего заканчивается идиотством. Эффективность почти никакая, удобства отсутствуют, потребители злобствуют, производители разоряются… Но есть, есть ещё неприменённые средства! Которые положат пирата в гроб и забьют в него последний гвоздь.

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

Речь пойдёт о борьбе с пиратством в игровой сфере. От пиратов пострадали многие производители игр, некоторые пострадали настолько сильно, что закрылись. Для того, чтобы понять, как убить пирата игрового мира, представим несколько моделей.

Модель первая. Производитель игр заявляет на своём сайте о новой игре, представляет, как она будет выглядеть и так далее. В разделе о приобретении выставляет необходимую ему для проекта сумму, причём окончательную, то есть с учётом всех расходов и покрытия прибылью от продаж. Будущие покупатели оплачивают через интернет-магазин или почтовым или банковским переводом соответствующую сумму. Производитель на сайте рядом с необходимой ему суммой представляет собранную сумму и объявляет о намеченном сроке выхода игры. Если совершенно не удалось ничего сделать, то деньги возвращаются обратно.

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

Модель вторая. Производитель делает то же самое, что и в первой модели, но собирает несколько большую сумму и выпускает игру для бесплатного распространения. В этом случае происходит непрямое финансирование и затраченные заранее средства гарантируют получение игры всеми желающими. Примерно так работают многие производители MMO игр и бесплатного ПО. Линукс можно скачать бесплатно, а можно купить коробку в магазине, тогда вы платите только за коробку и техподдержку. То же самое можно реализовать и для игр.

Достоинства такого приёма те же самые, что и у всего свободного ПО: всеобщая доступность и отсутствие пиратства. К недостаткам можно отнести неготовность многих производителей перейти на другой способ финансирования.

Модель третья. Отчисления от оплаты интернета. Этот вариант предоставляет преимущества провайдерам. Многие считают, что в интернете всё можно найти бесплатно, но забывают, что платят за сам интернет. Ежемесячная оплата сейчас от двухсот до пятисот рублей за бюджетный канал, что в год составляет примерно три-шесть тысяч. Нетрудно заметить, что десять процентов этой суммы вплоне достаточны для оплаты приобретения одной дорогой или пяти дешёвых игр. Производитель выгружает игру сразу в интернет для свободного скачивания, а провайдеры отчисляют ему процент от прибыли. Таким образом образуется взаимовыгодное сотрудничество между производителями игр, которые гарантировано получают деньги, и провайдерами интернет услуг, которые увеличивают количество клиентов.

Можно считать, что эта модель уже нашла воплощение с появлением MMO игр. Тем не менее очень многие производители ещё психологически не готовы к переходу на неё, а продолжают пытаться делать ставку на защиту от копирования.

Модель четвёртая. Ничего не препятствует использовать и всё предложенное в различных сочетаниях. Таким образом в распоряжении производителей оказывается гибкий и многофункциональный инструмент борьбы с пиратством.

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

Но всё уже было и ничего нового изобрести обычно не удаётся. Есть ответ на самый любимый вопрос игроков: а что будет, если игра не понравится? Когда кто-то покупает билет на спектакль, он не знает, насколько ему понравится спектакль, поэтому выбирает, на какой спектакль ему пойти. А те, о ком ещё никто не знает, выступают дёшего, или вообще бесплатно. Я думаю, что все понимают разницу между Blizzard, Bethesda и подлестничной конторой налево от второй от угла помойки.

В своё время, когда выделенные линии только входили в дома рядовых граждан, появилось устойчивое мнение, что неограниченные возможности для скачивания приведут к расцвету пиратства. Если раньше для приобретения пиратской копии игры приходилось или искать знакомых с нужным диском, или покупать у пиратов, то сейчас достаточно полазить по интернету, найти образ диска и бесплатно скачать. То есть пираты уже страдают от пиратов. Почти по классику: натуралистами открыты на паразитах паразиты. У кого сейчас нет выделенного интернета? А на десять человек может быть, чтоб ни у кого не было? Если представить себе, что всё и сразу будет выкладываться производителем в интернет, то пираты вообще не нужны. Ну так остался последний шаг!

Количество пиратов сейчас подсократилось, а мест продажи стало поменьше. Ещё немного, ещё чуть-чуть и скачивание положит конец пиратским дискам. Ну так что мешает? А мешает всё та же косность мышления большинства. Пираты вымрут — хакеры останутся, так думают многие производители. Продавать их творение за деньги не будут, а станут растаскивать бесплатно. Что так не было доходов, что так, причём второй случай хуже потому, что с пиратов можно хоть через суд что-то взыскать, а от сервера с раздачей денег точно не будет. А раз так, то надо ставить защиту за защитой. Логика в духе: Василий Иваныч, Вы…

А не надо ничего ставить — подход к распространению надо менять. Причём это не я один такой умный нашелся. Не так давно публиковалось обращение директора крупной корпорации на тему распространения новой игры и в нём звучало, что игра должна распространяться только бесплатно и больше никак. Правда, там речь шла о MMO, но тем не менее… Кстати, тот же Microsoft раздаёт свои продукты с последующей активацией и ничего. Ну раздавать игры с активацией в течение месяца не очень разумно потому, что их можно проходить за две недели, но тенденция намечается.

Ну а чего бы нам, игрокам, хотелось? Нам бы хотелось, чтобы вместо работы над защитами производители начали работать над играми. Если мы платим деньги, то хотим соответствующего товара. Мы готовы платить деньги заранее, но не любим, когда нас разочаровывают. Мы готовы платить напрямую производителям, минуя распространителей, если игра будет того стоить, а не как иногда бывает: единственно качественно работающей частью диска оказалась защита от копирования. Да, и самое главное: производители, вы работаете не для кого-то, а для нас, покупателей.

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

Искусство ведения бизнеса.

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

Первый этап.

Набор всех остальных участников будущего бизнеса. Если хочется, чтобы этот этап не стал последним, то надо забыть слово “нет” и надолго, если, конечно, не планируется платить каждому деньги сразу. Если на должность главного бухгалтера пришёл наниматься узбекский плиточник без малейшего представления о бухгалтерии, то не надо ему отказывать сразу. Отказать всегда успеете — плиточник тоже может пригодиться. Но самое главное, что вокруг проекта не создастся информационное поле или аура отказов, которое распугает всех подходящих кандидатов ещё до того, как они узнают о наборе работников.

Узбекский плиточник может привести за собой казахскую жену, сестра которой может оказаться недорогим бухгалтером. Некоторые вещи происходят не всегда как по науке, а часто строго как попало. Люди суеверные списывают это на гнев божий, сглаз, порчу, проклятия и прочее. Экстрасенсы ссылаются на отрицательную энергетику и таинственные поля, но в любом случае достаточно понять как происходит, а не почему. Для того, чтобы управлять бухгалтерией на компьютере совсем необязательно понимать его работу. Раз отчего-то возникают беды, то надо этого избегать, а не вдаваться в поиски глубоких причин происходящего.

Второй этап.

Отбор нужных участников. Причём действительно отбор, а не просто перебор с обдумыванием. Из набранного ранее может получиться не совсем то, для чего всё это набиралось. Вполне может получиться, что вместо туристической конторы получилась автомастерская или бригада по косметическому ремонту. Есть смысл задуматься о перемене направления бизнеса потому, что вполне возможно, что к получившемуся направлению у вас есть больше способностей, чем к ранее выбранному. Даже если совсем не хочется заниматься получившимся направлением, то есть смысл обратиться к его представителям потому, что продажа бизнеса это тоже выгодный бизнес.

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

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

Вот теперь вы готовы отбирать из оставшихся действительно нужных работников. Вот тут уже можно задумываться о всех вопросах соотношения срабатываемости с квалификацией. Можете провести собеседование или собрать всех вместе, чтобы посмотреть, как и кто с кем поладит. Самое время для второго пересмотра срабатываемости команды, но уже на уровне команды, а не на уровне отношений с вами. Дальше делаете всё то же, но уже уровнем ниже, пока не очистите команду от скандалистов, бездельников, склочников, проповедников, халтурщиков, сплетников, недоучек и прочих мешающих. Через несколько проходов у вас получится вполне работоспособная команда.

Третий этап.

Погружение в работу. Как бы вы ни старались, но запустить сразу всё не получится. Даже самый обширный предварительный набор и самый тщательный предварительный отбор не помогут предотвратить необходимость дополнительно кого-то набрать, а кого-то и уволить. Разница будет уже в деньгах потому, что если раньше вы никому ничего не платили, то теперь уже платите и откладывать на потом будет стоить вам денег и, возможно, больших. Именно поэтому не надо тянуть с увольнением лишних людей потому, что чем дольше они задержатся, тем лучше закрепятся. Не наживайте себе врагов и недоброжелателей, это портит бизнес не хуже всего остального. Избегайте и выкуривания ненужных людей, чтобы добиться их самостоятельного увольнения. Чем больше вы будете на них давить, тем хуже будет для работы и для вас. При некоторых способностях и наличии желания они неанесут вам в разы, если не на порядки больший ущерб, чем выходное пособие.

Четвёртый этап.

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

Если от кого-то за год ушла вторая любимая подруга или его два года игнорируют представители противоположного пола, или за год два раза ограбили, один раз избили, новую машину угнали или разбили или сам разбил, всё время неприятности дома, дачу сожгли, соседи сверху затопили, а соседи снизу требуют денег за ремонт и ничего не хотят слышать, компьютер всё время стирает нужные файлы и ломается, мобильный телефон крадут карманники, каждый день автобус попадает в пробку и каждый раз в другое время и всё это за год, то этот человек может уверенно считаться неудачником. Забудьте про жалость и пожалейте лучше себя. Этот человек и сам утонет и всех остальных за собой потянет. Вы ему ничем помочь не можете и вам остаётся только спасать от него всех остальных и себя заодно.

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

Строителей отношений и служебных романов легче вычислить, но труднее уволить. Вся энергия этих людей уходит на построение отношений и романов и на оповещение об этом окружающих. Обычно такие люди выглядят невыспавшимися и уставшими, работа у них идёт плохо, но всегда готовы оправдания, что скоро будет свадьба, все деньги уходят на построение серьёзных отношений и скоро всё изменится, после свадьбы должна появится квартира в двух шагах от работы и даются прочие обещания увеличить производительность и качество труда в разы. Так продолжается годы без видимых изменений. Если вам не хочется превращения работы вашего бизнеса в любовный сериал, то увольняйте таких работников под любым предлогом потому, что они не только не работают сами, а ещё и мешают работать остальным. Через некоторое время ваш бизнес может превратиться в собрание разбитых отношений, мёртвых романов или разведённых семейных пар с полностью отсутствующей работоспособностью.

Почитатели уставов бывают разных видов и направлений. Основная их деятельность сводится к приставанию к окружающим под предлогом нарушения ими общеизвестных правил. Даже если ношение галстуков у вас необязательно, то если без галстука пришёл только один человек, то почитатель уставов непременно сделает ему замечание. Точно так же он сделает замечание тому, кто пришёл в галстуке, когда все пришли без галстуков. Упор может делаться на мораль, коллективизм, нравственность, религию, культуру, этику и что угодно, только всегда с деинственной целью — сделать кому-нибудь замечание. Таких людей на работу лучше не брать, но если они к вам просочились, то увольняйте их при первой же возможности, даже если они призывают к строжайшему соблюдению правил вами же управляемого места работы.

Пятый этап.

Не расслабляться! Даже если всё прошло удачно, вам успешно удалось развить свой бизнес и кажется, что уже ничего не случится, то самое время не расслабляться в пяти минутах от цели. В бизнесе расслабиться и отдыхать дальше у вас не получится и цель всегда будет в пяти минутах впереди. Даже если всё идёт вроде бы как само, то всё равно само оно так долго не продержится и развалится без вашего вмешательства, так что на вечный отдых после налаживания собственного бизнеса не надейтесь или передайте свой бизнес другим.