Классно написано, и к тому же столько проделанной работы. На счет недоработок не удивлён, потому как желанием выпустить, да побыстрее, страдают не только наши компании.
P.S. Civilization Forever!
Черт, да вы просто крут! Помню цивку4 играл на ноуте как только она вышла — точно так же плевался на своп. Не знал про ваш патч, и не знал, что фираксис это пофиксило в конце концов — ибо забил на 3 цивку и играл в старый добрый альфа центавр :)
Жаль у вас не дошли руки до Civ 5. Там после очередного патча, жутко долго ходил комп на последних стадиях игры. Но уже к следующему патчу ситуацию исправили. Видимо работали под страхом: «Что бы нас не обогнал тут русский» ))
у меня ноут с Core 2 Extreme на 3,06, 8 гиг памяти и Quadro FX3700, был крайне удивлен тормозам. новых патчей не накатывал, купил в стиме в первый день продаж. до этого играл только во вторую)
Так это Вы были :D А я думал какой-то финн, а оказался наш россиянин :) Спасибо, в свое время очень помогло до выхода соответствующих патчей от Firaxis
такое ощущение, что игры и программы в последнее время никто не тестирует, а если и тестирует, то правит только те ошибки, которые делают работу невозможной.
Да, да, во времена Фамикомов такого не было =)
На самом деле, проекты масштабнее становятся, оттого и сложно отловить все подобные ошибки на этапе тестирования. А тестировщикам игр (по крайней мере отечественных) приходится куда тяжелее, чем их собратьям из 1998-2000 годов.
Всем огромное спасибо за респекты! Та гонка длилась где-то четверо суток в режиме 6-через-6 (сон/кодинг). Очень хотелось выпустить патч раньше, чем это сделает Firaxis.
Да, что-то они сделали. Мой патч при этом перестал работать (игра стала вылетать). Потребление памяти с их патчем снизилось. Не так радикально, как с моим, но для играбельности на 512Mb конфигах их патча тоже было вполне достаточно. Почему стал вылетать мой патч с этой их версией — я до конца не разобрался, то ли они применили какие-то нестандартные техники, то ли специально от него защитились. Во всяком случае в моём патче нет ничего специфического именно для Civilization4, там хэширование общего вида, которое можно натравить на любую игру.
Никакого :) Подменял вызываемые цивилизацией функции на свои через API хуки и логировал в файлы/на-экран что происходит. В Visual C++ всё было сделано, на голом WinAPI. На ранних этапах очень помог коммюнити civfanatics, чтобы собрать стату по потреблению памяти не только на своём компе, и чтобы потестировать на разных видеокартах. К примеру, выяснилось что мои хуки не дружили с RivaTuner OSD — те, видимо, тоже через API хуки что-то дорисовывали в кадр. С fraps'ом таких проблем не было. У самого тогда был несбалансированный конфиг: P3-1.3Ghz, 512Mb, Radeon 9800 Pro 128Mb.
Учитывая, что действие было в октябре-ноябре, я туда засунул рождественский Merry Christmas от Harkonnen'а на 25е декабря :) Во-первых прикола ради, во-вторых на случай если бы Firaxis в истерике законопатил мою dll внутрь exe своего официального патча. Из этих же соображений строки с поздравлением были зашифрованы чтобы не просматривались в hex редакторе.
Ставлю бочонок черной крушовицы против бутылки жигулевского, что на этой неделе топикстартер будет завален приглашениями на работу безо всяких интервью и собеседований.
Респект OldSchool'еру!
А сейчас модно прикупить пару планок памяти и не париться…
Одну пожилую пару, прожившую 60 лет вместе, спросили: — Как вам удалось так долго прожить вместе? — Понимаете, мы родились и выросли в те времена, когда сломавшиеся вещи чинили
Я бы тоже бросил… но сложилось сразу несколько факторов — мой залипание на civ3 + выход civ4, которую я ОЧЕНЬ ждал + наличие свободного времени + приверженность к time-critical программированию, равная по силе приверженности к играм. Пришлось взяться :)
А то последнее время цветет быдлокодерство под лозунгом «А хуле, железо то дешевое, че напрягаться?»
Это не то, чтобы быдлокодерство, просто так дешевле. Заказчик оптимизирует целевую функцию, ему не надо, чтобы было ВАХ, ему надо чтобы пипл хавал и при этом заплатил максимум денег при минимуме капиталовложений. Увы.
Всегда считал людей, которые таким занимаются конченными психами! Но до чего же, чёрт побери, завидно! И хочется быть таким же фанатиком ))) Я бы просто бросил эту чёртову игрушку еще на пол-пути.
В общем моё почтение и тонна белой зависти к вам. :)
Очень зря. Последние где-то полгода только там умные технические статьи только и есть. На главной же — только про распилы, новую прошивку к айфону и классные ноутбуки от Асуса — читать нечего.
Как раз в данном случае меня это не удивляет (и очень радует): это ведь не просто пост, это Пост! Не очередная бугагашенька из одной картинки, не очередной унылый обзор, не очередной репост и пр.
Кстати, уже 14-е место. Так держать!
Автор, мне тоже интересно будет, отправят ли вам приглашения на приличную работу?) Если вдруг выгорит, просто скажите здесь, да или нет, без названий имен)
Ну уж очень интересно)
Тогда для меня была эпоха перемен (не связанная с этим патчем), поэтому отказался. С тех пор поучаствовал в нескольких околостартапных коллективах на 5-20 человек. Карьеру «до пенсии» в гигантской корпорации для себя не ищу, т.к. это отвлечёт от создани одной штуки, которую я просто обязан сделать :) но толком пока еще не взялся.
Как бы там ни получилось с Firaxis'ом, Sid'у я премного благодарен за время, проведённое за Civ1 и Civ3. Остальные серии, включая четвёрку, к сож-ю попали мимо периодов с кучей свободного времени.
Ну там, на самом деле, все весьма печально — на 2 Гб DDR3 и 2.8 ГГц дуалкоре расчёт хода неписей длится от минуты до пяти, в зависимости от размера карты.
Подобная болячка была и в civ3, кто-то даже бенчмарк на основании civ3 делал :) основные тормоза происходили при захвате городов, даже на собственных ходах. Скорее всего из-за пересчёта границ государств и пересчёта «торгового графа» — у каких городов с какими есть связь, по всем городам на карте.
Насколько я заметил, тормоза тем сильнее, чем больше паппет-городов у неписей под контролем. С ними весьма сложное дерево отношений есть, и оно просчитывается как для отдельного игрока, насколько я понял, копаясь в скриптах.
Судя по тому что проблема не у всех и иногда оно даже вылетает, скорее всего имеют место обе болячки. С пересчётом городов без сорса вряд ли что-то получится сделать, если только там всю логику в скрипты не вынесли — тогда есть надежда. По графике — есть гипотеза, что страдают в первую очередь люди со встроенными видеокартами, т.к. они шарят видеопамять с основной. Либо упирается в 2Gb лимит для 32-битного адресного пространства, это и у второго старкрафта происходило на последних миссиях кампании — у меня иногда текстуры становились белыми.
Логика в Lua, кое-какая ерунда в XML. Местами есть внезапно SQL, который, как я понял, применяется как конфиг. Скрипты все, что есть, весьма неплохо прокомментированы.
Небольшой оффтоп:
Тоже купил коллекционную бокс версию со всякими прибамбасами (книжкой красивой, деревом технологий и др.). И стоила она всего 800 р. за что большое им спасибо, или нашему издателю :)
За те 2.5 часа что топик висит на главной — пока что нет… хотя с работой у меня проблем тоже нет :) Дабы утолить любопытство всех, кто интересуется вопросом влияния хабратопика на карьерную карму — я оповещу, когда/если подобные предложения поступят. Без паролей и явок естественно :) просто по факту да/нет.
По DirectX'у хватило MSDN'а, от корки до корки. По ASM'у — я уже и не помню… был лет 17 назад талмуд Джордейна еще на 8086 со 128kb памяти :) ПК «Ассистент» производства Смоленск, потом еще был киевский «Поиск» с 640Kb, которых на всё хватало :)
По C/C++ точно не помню, разные были книги, очень хорошо подтянулся на ixbt'овском форуме программирования. По математике и алгоритмам — универ и ACM'овские олимпиады. Ну и сильно в своё время зацепила книга Майкла Абраша «Zen of Graphics Programming», который с Джоном Кармаком делал растеризатор для первого Quake. Хотя из неё в данном топике, да и вообще в современном мире с графическими ускорителями уже мало что применимо.
Желание есть конечно :) нужен пример, когда детальность картинки явно не соответствует заявленным требованиям. Как если бы сапёр хотел кушать пол-гига. И есть еще желание апгрейднуть World of Warcraft по качеству картинки, добавив bump-mapping (шейдерные блики), а то вроде уже 2010й год заканчивается… а движок до сих пор без единого гвоздя, ак Unrel Tournament 2004 рядом с Far Cry. Как оно в Cataclysm сделано своими глазами еще не видел, но судя по скринам — воз и ныне там.
Он не будет отказываться работать. Просто как только ГМом будет обнаружено то, что бинарная часть клиента модифицирована — аккаунт будет моментально заблокирован без права на апелляцию. Плавали, знаем — приходилось делать такие гадости для того, чтоб просочиться в локацию Emerald Dream, которая в продакш так и не ушла.
В своё время таким патчем оказался Flash от Macromedia. Правда зря они ударились в кривые с антиалиасингом по умолчанию, основная причина тормозов во flash именно в этом.
Call of Duty: Black Ops на PC, например! графика не ахти, зато лагает игрушка будь здоров. разработчики до сих пор не пофиксили толком. правда, особенно там экзешник не модифицируешь — Valve Anti-Cheat сработает
Почему разработчики не написали Harkonnen'у и не пригласили поучаствовать в разработке официального патча — загадка, ведь из возраста песочницы они, скорее всего, уже вышли.
Главный разработчик отписывал мне на civfanatics, просил перестать выпускать апдейты патча под новые версии уже после того как я его выложил для 1.07 и 1.08 (по-моему). Не думаю, что эта его просьба была связана исключительно с имиджевыми соображениями Firaxis, скорее всего они не хотели, чтобы мой патч мешал адекватной работе их собственных изменений, которые, судя по потреблению памяти версией 1.09, были достаточно радикальными.
Это радует. В том смысле, что тормозит не только во время хода противников, а и при обычном скролле. Это означает, что имеем дело не с civ3 болячкой (или не только с ней), но и с побеждённой однажды civ4 болячкой.
В Civilization 5 та же самая проблема! Не знаю, откуда у нее растут ноги в этот раз, но начинается игра очень резво, а по мере открытия карты начинает невыносимо тормозить и вылетает/зависает через каждые несколько ходов.
Данная проблема проявляется не у всех пользователей. По данным с форума издателя (2KGames), страдают 40—50% игроков. Но тем, кто страдает, не помогает ни мощный процессор, ни восемь гигов оперативки. :( Тормоза от уровня настроек графики никак не зависят, только от количества открытой территории.
Техподдержка на форуме издателя существование проблемы не признает. Регулярно появляются новые темы с описанием той же беды, и представитель техподдержки предлагает попинать шины и протереть зеркала, а когда пользователь теряет терпение, представитель перестает отвечать.
Уважаемый, попилите пожайлуста Civilisation 5 — они и там похоже от детских болезней не избавились. Но теперь они тормозят 4х ядерный i5 c 8Гб ОЗУ… )))
Сам не играю — друг жаловался. Припёр ко мне диск, ставим, грузим сэйв. Включаю режим разгона. Да, проц не верх новизны, q9550, штатная 2.86, 12 метров кеша l2. Открываю профили разгона, выставляю параметры для 4.4 ггц. Больше 20-25 минут даже с моим кулером (CoolerMaster V10) он не тянет, не самый удачный экземпляр. Да и память капризная.
Уж не знаю, такие вычислительные мощности и настолько загружать… кхм. Такое ощуещение, что оно параллельно сворачиваемость белков просчитывало, ну или еще чего.
Как итог — и вправду, никакие мощности не помогают от лагов цивилки 5ой.
Я не йог и столько медитировать не могу ) Также, в это время, динамика игры напротив раз повышается — обслуживание территории уже не требует столь пристального внимания и все стороны так или иначе начинают конфликтовать.
Хотелось выдержать баланс между размером, детальностью и «детективностью» :) если коротко на понятном — рисовалка кухни создавала в памяти каждую тарелку вместо того чтобы рисовать одну и ту же тарелку много раз. На то были, конечно, свои причины… но не достаточно веские, раз эту проблему удалось обрулить без исходника.
типичный пример в чем разница между словами труд и работа, то есть между работой на себя ради удовольствия и работой на кого-то ради денег. Вы ожидали не сколько результата, сколько получали удовольствие от процесса. А теперь еще и куча комплиментов и слава — но это уже побочный эффект.
Автор, как хоть называются такие профессии, что вы делали? С++программист?
<offtopic>
Автор, почините пожалуйста 100% потребление процессора в Master of Orion 2 :) Невозможно играть на лаптопе, всю батарею сжирает :)
</offtopic>
Статья — супер, был бы инвайт — дал бы не задумываясь.
По поводу MOO2 — уважаю космическую тематику :) Сам залипал что на MOO2, что на Ascendancy. Проблема в том, что MOO2 досовский, как там сделан Win95 вариант точно не знаю. Думаю у него цикл переопроса пашет с такой скоростью с какой может процессор. В качестве полумеры может помочь DosBox с DOS'овской версией MOO2 и заниженными тактами процессора. Главное чтобы музыка не лагала.
P.S: Сам пытаюсь с Amnesty Design (ныне Digital Reality) исходники Reunion выцыганить (предшественник Imperium Galactica I,II, Haegemonia). Есть у меня фетиш раз в год Reunion проходить, но его глюки — это п… ц какой-то. Уже и на мыло им писал, и в офис звонил, и на социалках разработчиков искал — всё без толку. Хоть в Будапешт за сорсом едь :)
Ок. Тогда варианта два:
1. [del]Попинать шины[/del] попробовать режимы совместимости с Win95 версией MOO2 (была такая).
2. Когда первый вариант не поможет, снизить количество тактов процессора в DosBox'е на DOS версии MOO2, пока заргузка процессора не упадёт до 5-10% (через CTRL-F11 в DosBox). Оценить играбельность при таком способе.
респект! наконец-то узнал причину тормозов по alt-tab.
а старик второй препаририуйте, пожалуйста, мне тоже не понятно ЧТО там может жрать столько памяти.
В далеких 90=х я на подобии такого какой-то телеметрию пытался взломать. Идет с датчиков сигнал и фиг его поймет какой… Ужасные воспоминания… В данном посте меня больше всего поражает как выяснить что за данные в структурах. Ну выделил ты кусок памяти который что-то там зажевал. И что это? Ну допустим понятно что что-то графическое. Но как понять что?! Текстура, геометрия, где Х, где Y? сколько значащих цифр и где размерность??? В общем у меня любопытства до такого уровня копать не хвалатоло… Автору респект! Теперь я верю, что компьютерные игры это не только утилизация времени и отупление подрастающего поколения!
В civ4, к счастью, угадывать байты не пришлось. В DirectX всё стандартизировано, а для координат вершин тот самый FVF из статьи (flexible vertex format) и определяет размерности и что к чему. По поводу игр — они мне дали как минимум отличный уровень английского. Но, разумеется, зависал не из-за этого :)
Совершенно нормальная ситуация для геймдева, как по мне — сталкивался на практике с написанием и даже использованием подобного кода. Сейчас гиг памяти стоит гораздо дешевле часа времени хорошего программиста, потому так все.
Есть так же ноутбуки, в которые память не довставить или тяжело/влом искать нужную планку. К тому же игры не под один комп пишут, если умножить стоимость планки на кол-во компов, которым она нужна для запуска цивки, там не один программеро-год получится.
А я вот только через 5 лет до civ5 добрался (купил на стиме BNW) чего-то через столько лет после civ3 вдруг пробила ностальгия. Так даже со всеми патчами на ноуте с 4Gb по мере открытия карты оно дико тупит. И некому полечить…
Как я наказал Firaxis или история о том, как перебрать бинарный движок через глушитель