Здравствуйте, с вами снова я, бессменный аналитик ТП форума Singularity на PG - ZimaAlex. Бессменный - потому что никто этим больше не занимается (кому это надо?), аналитик - от первых четырёх букв в этом слове, при написании каждого гайда я лезу в такие места, которые вам даже в самом страшном сне не снились :) Сегодня мы будем опять толкать всякую бредятину поговорим о требовательности игры к железу, проведём парочку экспериментов (куда ж без них), рассмотрим полученные практические значения, сделаем соответствующие выводы.
Статья №1 - здесь
Вернёмся к предыдущей статье
Прошло время, и я пересмотрел свои взгляды.
1. Raven – нормальные челы.
Просто мне довелось поиграть в новую игру от Obsidian Entertainment – да, это Alpha Protocol, “шпионская RPG”, чтоб ей пусто было. ”Довелось поиграть” – громко сказано, я пытался только запустить её часа 4, потом боролся с кучей багов и лагов (их раза в три больше, чем в последнем STALKER’e). Сначала я грешил на железо, но, посетив соседний форум по игре, увидел, что такая херня почти у всех. Задумка была отличная (полчаса я всё-таки смог погамать в неё), но реализовано через одно место, как будто игру делали русские разрабы.
Та же участь постигла и Sniper: Ghost Warrior, тем более что эта игра от City Interactive требовала офигенно много ресурсов. Мне кажется, что ваши “Рекомендуемые системные требования” – это на самом деле минимальные, с ними можно играть 22-30 fps, нах такую оптимизацию. К тому же челы в тамошних ТП рвут опу делают всё, что могут, чтобы появился звук/перестала лагать мышь (пользуясь случаем, передаю привет товарищам utilizer и Onkarian – в такой гемор полезли и исправили, спасли сотни геймеров, уважаю :)). Печальная тенденция среди разрабов наблюдается в последнее время – лишь бы срубить бабла, а на качество игр наплевать.
Куда мы катимся???
//проставить ссылки на темы/файлы utilizer и Onkarian
2. All rights reserved…
Если вы, приложив героические усилия, всё-таки смогли дочитать тот бред, то в конце наверняка обратили внимание на фразу All rights reserved. Так вот, Википедия утверждает, что это пустой звук. Но если кто-то будет использовать что-то из текста без моего согласия (да кому эта херня нужна?), то с ним может случиться что-нибудь неприятное. Давайте соблюдать авторские права!
//всё-таки не удержался и вставил плашки с Лурки
Системные требования
Начало
Итак, речь пойдёт о Singularity (игра от Raven Software, если кто не допёр ещё). Её анонс был ещё в первом квартале 2009 года, но вышла она только сейчас – 25 июня 2010. Время выбрано удачно – летом нет никаких новых GTA, CoD, Crysis, Mafia и других крутых игр. Геймеры, получив её после почти двухлетнего ожидания и наигравшись, как только не начали обзывать игру: и ‘научно-фантастический шутер от первого лица’, и ‘смесь Wolfenstein, Bioshock и TimeShift в соотношении 5:3:2’, и ‘полное дерьмо’. Но я не буду сейчас обсуждать геймплей, атмосферу, элементы RPG/экшена – это не рецензия, скажу только одно: сюжет выворачивает мозги. Оценим её с другой стороны – с технической.
Разрабы выдали нам такие требования к железу:
Singularity
Издатель: Activision
Разработчик: Raven Software
Минимальные системные требования (рис.1)
ОС (операционная система): Windows XP/Vista/7
Процессор: Intel Core 2 Duo 2.4 GHz / AMD Athlon X2 4800+
Оперативная память: 1 Gb
Жесткий диск: 8 Gb свободно
Видео память: 256 Mb
Видео карта: nVidia GeForce 7800 / ATI Radeon X1800
Звуковая карта: Совместимая с DirectX
DirectX: 9.0c
Клавиатура
Мышь
Привод DVD ROM
Рекомендуемые системные требования (рис.2)
ОС (операционная система): Windows XP/Vista/7
Процессор: Intel Core 2 DUO @ 3.0 GHz / AMD Athlon 64 X2 6000+
Оперативная память: 2 Gb
Жесткий диск: 8 Gb свободно
Видео память: 512 Mb
Видео карта: nVidia GeForce 8800 / ATI Radeon HD 3850
Звуковая карта: Совместимая с DirectX
DirectX: 9.0c
Клавиатура
Мышь
Привод DVD ROM
Примечание:
Карточки NVIDIA GeForce 8400 и 9400; ATI Radeon X1800 GTO, HD2400, HD2600 и HD3450 находятся ниже минимальных системных требований.
Линк - www.vgrequirements.info/ru/singularity-pc/
Ну что можно сказать по этому поводу… привод DVD ROM мне не понадобился, я (как и 95% игроков, те самые 95%, кто читал Лурку - знают) скачал игру с кряком (да, мне очень стыдно). Брать лицуху не стал, боялся, что комп Singularity не потянет, как потом выяснится, зря беспокоился, пошло всё нормально. Стали появляться случаи запуска игры на ПК, конфигурация которых меньше заявленной минимальной. Это вызвало у меня подозрения, что Raven нас кинули немного завысили системки. Чтобы точно определить, сколько жрёт игра, я отправлюсь на испытательный полигон (коим является мой компьютер) и проведу парочку экспериментов, но о них расскажу уже в следующий раз. Сейчас же будет теоретическая часть.
//откуда в коде столько мусора?
Настраиваем игру
Первый облом наступает уже в меню – настроек графы не просто мало, их НЕПРИЛИЧНО мало.
“Всё ок, - подумал я, - сейчас найдем файл с настройками игры”.
“Конечно, прям сейчас”, - сказал ini-файл, который Raven’овцы решили не запихивать в игру ещё на стадии бета-теста.
Блин, куда, мать вашу, разрабы запихали настройки? Может в реестр или зашифровали где-нибудь в коде? Не, они не такие гавнюки, чтобы так с нами поступить…
В общем, ну вы поняли, где они прописаны. Да, в реестре. Мало того, не все работают (например, FoV не пашет), похоже, что ещё где-то надо править. Не будем искать себе проблем – пусть этим занимаются кодеры и программисты. Соберём пока всё, что знаем.
Комментарий: поговаривают, что графу ещё можно настроить принудительно в Панели Управления (Nvidia) и где-то там же (ATI), этим займёмся в другой раз.
Реестр - сила народная
А что мы знаем о реестре? Большинство юзеров скажут, что нихрена не знают не слишком компетентны в этом вопросе, но на самом деле это мощная вещь (рис.3, fuuuuu-)!А что вы знали о hex-редактировании? – забыл спросить я вас в прошлый раз...
Опишем в двух словах параметры в реестре по адресу HKEY_CURRENT_USERSoftwareActivisionSingularity
(так как по Singularity очень мало инфы, то будем отталкиваться от похожих игр – Batman: Arkham Asylum, Mirror’s Edge, Borderlands, Mass Effect и старый добрый UT (я думаю, что UE3 от UE3.5 мало чем отличается))
Основные источники инфы (кроме мозгов, многое пришлось додумывать):
udn.epicgames.com/Three/SystemSettings.html
smilaforum.org.ua/viewtopic.php?t=6016
wiki.beyondunreal.com/UE3:Engine_internal_variab..
borderlands.wikia.com/wiki/PC_Tweaks
forums.steampowered.com/forums/showthread.php?t=..
www.tweakguides.com/UT3_8.html
Образец написания параметра:
Название=dword:значение в 16-ричном формате (значение в 10-тичном) (допустимые значения)
Значения приведены по умолчанию!
AllowD3D10=dword:00000000 (0) (0-1) Это типа должно включать Direct3D10 (если 1, то есть =true), но вот у меня после этого перестала запускаться игра, у некоторых пошло, но изменений в графе никаких, даже лаги появились. Есть мнения, что это не работает на Windows XP, а пашет на Vista только при высоком разрешении, типа 2560x1600 (ну и если ваше железо это поддерживает), работает некорректно и нестабильно, и только с Vsync. Да ну нафиг, про этот параметр можно ещё одну статью страниц на пять накатать, чёткого ответа нет, но с моим компом мне это не потестить.
AmbientOcclusion=dword:00000000 (0) (0-1) Это модель затенения, используемая в трёхмерной графике и позволяющая добавить реалистичности изображению за счёт вычисления интенсивности света, доходящего до точки поверхности.
Затенение Ap в точке p поверхности с нормалью N может быть посчитано путём интегрирования функции видимости по полусфере Ω (рис.4), где Vp,ω — значение функции видимости в точке p, равное нулю, если луч из p в направлении ω имеет пересечение с объектом, и равное единице в остальных случаях...
Нахер эту википедию, я завис на формуле. Короче, в теории включение этого должно ‘существенно улучшать визуальное качество сцены и восприятие трёхмерных объектов’ (то есть тени и освещение), что, естественно, приведёт к падению производительности.
ru.wikipedia.org/wiki/Ambient_occlusion
www.3dnews.ru/video/asus_engtx275/
3dyuriki.com/2009/03/26/ambient-occlusion-slovar/
Про AO тоже можно поговорить отдельно :)
bAllowBetterModulatedShadows=dword:00000001 (1) (0-1)
Улучшает качество каких-то определённых теней (по словам ‘better’ и ‘shadows’ всё понятно).Toggle extra geometry pass needed for culling shadows on emissive and backfaces – вот что это делает.
Для увеличения FPS можно выключить.
www.cyberneticpunks.com/forums/all-points-bullet..
bAllowFracturedDamage=dword:00000001 (1) (0-1)
Whether to allow fractured meshes to take damage – разрешает разрушающимся мешам принимать урон. Поговаривают, что это как-то связано с отображаемой кровью.
www.answerlogr.com/topic/2074442/How-to-reduce-gore...html bDisableSkeletalInstanceWeights=dword:00000000 (0) (0-1)
Whether to disable instanced skeletal weights – я ещё раз убедился в содержательности пояснений на этом сайте.
Хз, что это, но если поставить значение 1, то что-то выключится.
bEnableBranchingPCFShadows=dword:00000000 (0) (0-1)
Toggle Branching PCF implementation for projected shadows
Нихера не понятно, за что отвечает. Полезли в гугл…
Выражаю благодарность челу, написавшему эту статью:
koitsu.wordpress.com/2009/11/28/borderlands-shadows-and-framerate-performance/
Там речь идёт о Borderlands, но и для нас нашлось кое-что полезное:
UE располагает несколькими методами прорисовки карт теней: PSSM (Parallel-Split Shadow Maps), VSM (Variance Shadow Maps), PCF (Percentage-Closer Filtering)… (и куча ссылок по этой теме).
Это тоже неплохо http.developer.nvidia.com/GPUGems3/gpugems3_ch08.html, но вот такие вещи (рис.5) меня пугают, как-нибудь в другой раз об “истории развития shadow mapping’а”.
А bEnableBranchingPCFShadows оставьте равным 0, я почитаю про это, но вроде VSM круче – жрёт меньше (наверно, включается при выключенном PCF, в старых играх с UE была ещё переменная bEnableVSMShadows).
bEnableForegroundShadowsOnWorld=dword:00000000 (0) (0-1)
Hack to allow for foreground DPG objects to cast shadows on the world DPG – врубить тени на переднем плане (возможно, имеется ввиду тень самого ГГ и находящихся рядом предметов, но я в этом не понимаю нифига).
forums.ag.ru/?board=fps&action=display&s=0&num=1188509147&start=200#200
//к сожалению, эта ссылка ведёт прямиком в ад в помойку на AbsoluteGovno на AG
bEnableForegroundSelfShadowing=dword:00000001 (1) (0-1)
Whether to allow foreground DPG self-shadowing – самозатенение объектов переднего плана.
Непонятно, разберёмся. bForceCPUAccessToGPUSkinVerts=dword:00000000 (0) (0-1)
Форсирует доступ процессора к каким-то SkinVerts с видеокарты (к сожалению, я не занимаюсь трёхмерным моделированием, поэтому и эти понятия для меня – тёмный лес).
Bloom=dword:00000001 (1) (0-1)
Ну это все знают, даже особо разглагольствовать не буду. Отключите – смачно прибавится FPS.
ru.wikipedia.org/wiki/Bloom
en.wikipedia.org/wiki/Bloom_(shader_effect) bUseExponentialShadowMaps=dword:00000001 (1) (0-1) Это врубает какие-то суперские карты теней (ESM), о которых я нифига не знаю. research.edm.uhasselt.be/~tmertens/papers/gi_08_esm.pdf (там нет вируса, это просто pdf, если что). bUseGaussianESMFilter=dword:00000000 (0) (0-1) Вообще нет никакой инфы (только ESM что-то проясняет).
CompositeDynamicLights=dword:00000000 (0) (0-1) Whether to composite dynamic lights into light environments. Включает какое-то составное динамическое освещение www.tweakguides.com/ME_8.html forums.playground.ru/mass_effect/194078/ (наши уже допёрли) Во блин, оказалось, что если выставить 1, то “упрощается расчёт освещения от нескольких локальных источников света, расположенных близко.” (в английском гайде то же самое, но я бы в жизни не перевёл) При включении фреймрейт в некоторых локациях прибавится на 10-30%, а качество картинки на глаз не пострадает (прям чудо какое-то, проверить надо). DecalCullDistanceScale=dword:3f800000 (1065353216) Scale factor for distance culling decals – да что такое, нормального описания нет, что ли? Стопудово связано с дистанцией декалей, короче, разберёмся. DepthOfField=dword:00000001 (1) (0-1) en.wikipedia.org/wiki/Depth_of_field www.gamedev.ru/code/terms/DOF www.uraldev.ru/articles/index.php?id=23&page=2 Включает эффект “размытых текстур” (нет, это не те размытые текстуры, о которых я писал в прошлый раз). На самом деле, в оптике возможно только одно расстояние, при котором точка в пространстве передаётся в виде точки на светочувствительный элемент, так что «глубина» резкости на самом деле физически не существует и является следствием несовершенства техники и глаза наблюдателя – вот и я что-то крутое узнал :). В компьютерных играх этот эффект добавляет реализма, атмосферы… читайте про него сами, статей в интернете дохера. В теории, если его отключить, то производительность может повыситься аж на 50%, тоже затестим.
DetailMode=dword:00000002 (2) (0-2)
Ну, это проще некуда – уровень детализации. Уменьшение этого значения – ухудшение качества прорисовки воды, тумана, пара (в первую очередь). DirectionalLightmaps=dword:00000001 (1) (0-1) Включает более крутую прорисовку поверхностей. Может, ещё что-нибудь делает с динамическим освещением (я уже говорил, что ничего не знаю обо всех этих понятиях и рассказываю всё на любительском уровне? Именно - рис.6).
Distortion=dword:00000001 (1) (0-1) Отвечает за красоту смачных взрывов, дым из оружия и т.п. (если во время жестоких перестрелок проседает FPS, отключите это). DropParticleDistortion=dword:00000000 (0) (0-1) forums.epicgames.com/showthread.php?t=602663 Вроде как уменьшает качество эффектов частиц, (тех, которые описаны выше – ведь не просто так здесь слово Distorion) то есть, если включить, то повысится производительность.
DynamicDecals=dword:00000001 (1) (0-1) Динамические декали – следы от пуль на стенах и др. DynamicLights=dword:00000001 (1) (0-1) Динамическое освещение, это вы и так поняли. DynamicShadows=dword:00000001 (1) (0-1) Включает динамические тени (то бишь, улучшенную обработку теней движущихся объектов). ESMDarknessClamp=dword:3e4ccccd (1045220557) Я начинаю жалеть, что взялся ворошить реестр, может остановимся??? ESMFilterPasses=dword:00000001 (1) FFFUUUUUUUUU- ESMFilterSamples=dword:00000007 (7) Если будет ещё один параметр с ESM в начале, я застрелюсь… en.wikipedia.org/wiki/ESM - и что это? ESMOverDarken=dword:40c00000 (1086324736) БАМ! Пыщь! Если серьёзно, то об этом известно только то, что это каким-то образом связано с ESM (Exponential Shadow Maps), типа фильтрация ESM и всё такое. FloatingPointRenderTargets=dword:00000001 (1) (0-1) Какая-то технология “рендеринга с плавающей точкой” (что за йухня???) Тут мне подсказывают, что это влияет на постпроцессинг, позволяет включать HDR и Anti-Aliasing вместе. FogVolumes=dword:00000001 (1) (0-1) Так, а что за Fog? en.wikipedia.org/wiki/Fog - да, опять Вики, ещё раз спасибо ей. Видимо, это всякие объёмные погодные эффекты, а-ля туман, облака. Матчасть утверждает, что это можно отрубить.
FoliageDrawRadiusMultiplier=dword:3f800000 (1065353216) Пришлось достать старый словарь по инглишу (он ещё не раз пригодится, поверьте), стряхнуть с него пыль, открыть и узнать, что Foliage – это листва, трава. Значит, этот параметр отвечает за дальность прорисовки этой херни. Determines when the engine starts drawing foliage, like grass for example – определяет, когда двигло начинает рисовать листву, траву и др. (я был прав, ура!) FractureCullDistanceScale=dword:3f800000 (1065353216) Distance scale for whether a fractured static mesh should actually fracture when damaged (опять эти “меши” и всякие умные слова). Дословный перевод – “определяет дистанцию, на которой повреждающийся статический меш реально (а есть нереально?) разрушается при уроне”. Наверно, связано со следами от пуль, взрывами.
FractureDirectSpawnChanceScale=dword:3f800000 (1065353216) “Процентный шанс респауна жёсткого объекта при прямом повреждении статического меша, ёпт” – говорит нам одна из статей.
FractureRadialSpawnChanceScale=dword:3f800000 (1065353216) “Процентный шанс респауна жёсткого объекта при повреждении статического меша radial blast’ом” – та же статья. Что ж такое radial blast – смотрите картинки (рис.7-8), словами сформулировать я не смог (может, какая-то атака вспышкой или взрывная волна?). А вам не кажутся последние два параметра подозрительными? Написано же – “процентный шанс…”, какого хера такие значения??? В предыдущих играх с UE3 они равнялись 1.00000. Ну да ладно… Fullscreen=dword:00000001 (1) (0-1) Капитан Очевидность знает, что это такое, знаете ли вы? Конечно, вы правы (возьмите с полки пирожок), это включает полноэкранный режим. LensFlares=dword:00000001 (1) (0-1) Включает рендер вот таких эффектов (рис.9-10). Надеюсь, вы поняли. en.wikipedia.org/wiki/Lens_flare LightEnvironmentShadows=dword:00000001 (1) (0-1) “Управляет тенями, которые отбрасывает окружающая среда” – отлично!
MaxAnisotropy=dword:00000004 (4) (0-16…)
Включает анизотропную фильтрацию, придаёт крутости текстурам на дальней дистанции (0-выкл, 1-16 – уровень фильтрации, чем больше, тем красивее, говоря по-простому) www.tweakguides.com/Graphics_11.html
MaxMultisamples=dword:00000001 (1) (0-16…) Контролирует мультисэмплинг – одну из форм AA, то есть сглаживание (Anti-Aliasing, если кто забыл, опять профессиональный термин) www.tweakguides.com/Graphics_11.html На тему AF и AA тоже можно написать статью (и не одну), уж слишком много эти понятия в себя включают. Скажу только, что чем больше это число, тем больше образцов пикселей уходит на сглаживание/фильтрацию – хорошо жрёт ресурсы. MinShadowResolution=dword:00000020 (32) () MaxShadowResolution=dword:00000200 (512) () Устанавливает минимальное и максимальное значения разрешения теней. При увеличении Min тень становится жирнее и чернее, при уменьшении тень становится светлее. Там же предупреждают, что игра с этими параметрами может привести к появлению артефактов. Затестите сами, я и так занят )) MotionBlur=dword:00000001 (1) (0-1) Врубает супер-пупер эффект размытия при движении и т.п. (отключение прибавит FPS).
NumFracturedPartsScale=dword:3f800000 (1065353216)
Вроде как, число определяет количество разрушающихся физических объектов или число частей, на которые они разбиваются (осторожней, а то получится как на рис.11 ;)). OneFrameThreadLag=dword:00000001 (1) (0-1) Я думаю, вы уже заметили слово Lag в названии и поспешили выставить в 0. Но этот параметр всего лишь включает очередную фичу движка - rendering thread to lag one frame behind the game thread (один кадр обрабатывается в запасе, то есть система уже прорисовывает следующий кадр, пока идёт этот (а разве может быть как-то по-другому???)). OnlyStreamInTextures=dword:00000000 (0) (0-1) Ещё одна фишка – влияет на подгрузку текстур. При включении как бы должен запретить потоковую выгрузку текстур текущей локации (а то UE любит выгружать текстуры, даже те, которые находятся совсем рядом от ГГ). Когда-то мы им пытались вылечить баг, описанный в моей предыдущей статье, но безуспешно. ParticleLODBias=dword:00000000 (0) (…;-2;-1;0;1;… - хз, как в реестре поставить отрицательные значения, но в теории они есть) Влияет на эффекты частиц, ещё как-то связано с мипмаппингом. Положительные значения уменьшают детализацию, а отрицательные вроде как делают картинку более чёткой – слухи, слухи… ResX=dword:00000320 (800) ResY=dword:00000258 (600) Разрешение по горизонтали и вертикали. Если не пашет, попробуйте также выставить UserSelectedResolution в True (1).
SceneCaptureStreamingMultiplier=dword:3f800000 (1065353216) WTF??? ScreenPercentage=dword:42c80000 (1120403456) Определяет занимаемую игрой часть экрана, только раньше это было в процентах, а сейчас числа такие жёсткие. ShadowDepthBias=dword:3c449ba6 (1011129254) Влияет на качество прорисовки теней, только непонятно каким боком. ShadowFadeExponent=dword:400ccccd (1074580685) Controls the rate at which shadows are faded out – контролирует значение, при котором тени блекнут. ShadowFadeResolution=dword:00000080 (128) Resolution in texel below which shadows are faded out - разрешение (в текселях), ниже которого тени блекнут. ShadowFilterQualityBias=dword:00000000 (0) (…0-4…) Контролирует качество фильтрации теней. ShadowFilterRadius=dword:40000000 (1073741824) Радиус фильтрации теней (логично, чёрт возьми!)
ShadowTexelsPerPixel=dword:3fa2f987 (1067645319) Определение количества текселей, приходящихся на каждый пиксель объекта (ставлю сто баксов, что эта настройка, как и шесть вышеописанных, не работает). ShadowVolumeLightRadiusThreshold=dword:447a0000 (1148846080) ShadowVolumePrimitiveScreenSpacePercentageThreshold=dword:3e800000 (1048576000) Нафиг не трогайте это! SkeletalMeshLODBias=dword:00000000 (0) (…0-1…) Отвечает за что-то в анимации, как и ParticleLODBias, тоже связано с мипмаппингом. Говорят, что это регулирует уровень детализации живых существ (хрен, скажу я вам). SpeedTreeLeaves=dword:00000001 (1) (0-1) SpeedTreeFronds=dword:00000001 (1) (0-1) Включает мега-технологию улучшенной прорисовки листьев, деревьев и другой мелочи. StaticDecals=dword:00000001 (1) (0-1) Отображение статических декалей (если выключить, то прибавится FPS) UnbatchedDecals=dword:00000001 (1) (0-1) Отображение декалей, которые have not been placed in static draw lists and have dynamic view relevance (ну вы сами переведёте и догоните, я не понял) UpscaleScreenPercentage=dword:00000001 (1) (0-1) This setting only has an impact if the Screen Percentage setting is below 100% - эта настройка работает, если ScreenPercentage (то бишь, процент от всего экрана, занимаемый окном игры) меньше 100%. Так что нах это, но в оконном режиме она как бы подгоняет размер обрабатываемой картинки. UseHighQualityBloom=dword:00000001 (1) (0-1) Bloom – это уже само по себе клёво, но кому-то наверху (рис.12) этого показалось мало. Проще пареной репы: включите – будет Bloom с высоким качеством. UserSelectedResolution=dword:00000000 (0) (0-1)
При выставлении 1, этот параметр разрешает использовать нестандартные изменённые значения ResX и ResY (в теории). UseVsync=dword:00000000 (0) (0-1) Включает вертикальную синхронизацию, обеспечивает некоторую плавность картинки, стабильность FPS ("стабильность" не значит больше, даже наоборот!!).
Ну вот и всё, отмучался, рассказал, что знаю (есть ещё настройки, не обозначенные в реестре, но реально работающие, но мне и так хватило). В следующей статье будет практика: эксперименты, тесты и выводы. До встречи! :)
Немного фактов не по теме
На основе темы Лицензия или пиратка был подсчитан примерный процент людей на PG, купивших лицуху.
На первом этапе были просто пересчитаны посты и поделены на пиратка/лицензия. Получилось, что 27% юзеров потратили бабло.
На втором этапе я достал книжку по психологии, перечитал посты и определил тех, кто нагло песдит не купит эту игру, даже если написали, что возьмут лицензию. Осталось 15% - почти в два раза меньше.
На третьем этапе я подключил теорию вероятности (ну типа, всё ж могло случиться – вот пошёл чел за игрой, а его машина сбила или кирпич на бошку упал). Получилось 12%.
И наконец, ведь не все отписались в той теме, поэтому для получения более достоверных данных умножим это число на сводный коэффициент 0,4 (выведен путём наблюдений). Результат поражает – меньше пяти процентов купили лицензионную версию игры. Как вам не стыдно, а на что разрабы есть будут? А ещё продолжения ждёте… на какие шиши???
Да, 95% геймеров ничего не потратили (кроме своего времени) на Singularity (само число символизирует :))
Кстати, у меня пиратка, и вот почему:
P.S.: Все данные в послесловии – это на 99,9% песдёж!
Created by ZimaAlex – Jul 22, 2010. All rights reserved.
Special for PG. Special for you. Special for fun.
zimakov.alex@yandex.ru
P.S.
Ссылка на вордовский документ - вот
Настройки реестра описаны реально кратко, на эту статью нельзя полагаться на 100%, к тому же, не тестируя, уже видно, что половина из них просто так не заработает.
Ссылки могут не работать или указывать на неизвестные темы (я не всё проверил).
Через неделю обязательно подгоню практическую часть с бенчмарками, просто это сложновато, да и данных много, ждите.
//почистить код
//проставить ссылки, проверить
//сдохнуть
Singularity Configurator
https://cloud.mail.ru/public/vFxw/9TftWKGyT