aruslan: (Default)
Обязательно к просмотру:
Исключительно мощная демонстрация силы и простоты от Brett Victor
(изобретателя новых концепций пользовательского интерфейса в Apple):


Это самое ясное изложение идей, которыми творчество живо там, где оно не умерло.
Тех идей, отсветы которых мы видим у Iñigo Quílez, автора знаменитой демы Elevated:


Спасибо [livejournal.com profile] lionet и всем в твиттере.
aruslan: (pepper)
Update:
Ben Diamand (SCEA, God of War III) написал объёмный комментарий со схожими наблюдениями и рассказал про то, как было сделано в God of War III.

И, чтобы два раза не вставать:

Tom Madams написал забавную заметку по следам выступления John Hable (Uncharted 2 HDR) на GDC и ряду его статей в блоге:
Image and video hosting by TinyPicFilmic Tonemapping Operators (by John Hable)
Why Reinhard desaturates your blacks (by John Hable)

Why Reinhard desaturates my blacks (by Tom Madams)

В результате всё получилось как всегда, что в общем-то не удивляет :)

На этой оптимистичной ноте передаю привет от изумительно-тёплого ветра в СФ.
И, кроме того, я считаю, что 60 FPS от Димы Андреева - это сила.
aruslan: (Default)
Update: На Eurogamer вышла объёмная статья про технологию Димы:
LucasArts' 60FPS Force Unleashed II tech demo


Дима "AND" Андреев мощно выступил на SIGGRAPH с показом зачем и как делать 60 FPS из 30.
Real-time Frame Rate Up-conversion for Video Games (слайды с комментариями, видео)

Во многих компаниях прошла война споров "60 vs 30".
Обычных аргументов - два: input latency (60 FPS рулит) и качество картинки (рулит 30 FPS).
Честные 60 FPS сделать можно, но удержать планку визуального качества на уровне хороших игр с 30 FPS будет довольно непросто. И наоборот, можно обрабатывать ввод чаще, чем раз в кадр, и реагировать на него хотя бы визуально раньше, но это сильно зависит от жанра и требует соответствующих изменений в игре.

Классический набор сломанных копий:
Christer Ericson: Input Latency
Mike Acton: Ratchet and Clank Future will probably be Insomniac’s last 60fps game
Cliff Bleszinski: Our target is, and shall remain, 30 fps
SCEA Explains Reason For 30FPS In God Of War III
Cevat Yerli: “nothing below” 30fps will suffice in Crysis 2

Полтора года назад я бы скептически сказал "не умеешь 60, не мучь себя", но то, что сделал Дима - реально доставляет, и эффект, конечно же, надо просто видеть.

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

Ну а пока - меня реально просто прёт :)
Через это интересно послушать ваши мысли по этому поводу.
aruslan: (Default)
Просто и волшебно - как и всё настоящее.

World Science Festival 2009:
Bobby McFerrin Demonstrates the Power of the Pentatonic Scale
(больше - здесь: http://vimeo.com/user1103909)


via @jeffreitman
aruslan: (Default)
http://www.gamasutra.com/php-bin/news_index.php?story=21981
"Microsoft Makes Big Cuts At Flight Sim Studio"

        Development sources have told Gamasutra that a large portion 
        of the dev house's staff has been let go - with multiple reports 
        indicating that the entire Flight Simulator team has been axed.


http://minimsft.blogspot.com/2009/01/microsoft-layoff-2009-now-what.html
aruslan: (Default)
Спешите видеть замечательное введение в lock free стеки у [livejournal.com profile] _foreseer:
Running lock free.

Там просто и внятно изложена базовая идея и есть хорошие ссылки на почитать.
Ну а уж презентация Elimination-Backoff Stack просто жжёт термоядом - спасибо за ссылку, Андрей!

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

"Как стек running free у нас" - ABA брутально через CAS2.
Но чаще не столько CAS, сколько классическое комбо Load-Link/Store-Conditional.
А именно lwarx/lwsync/stwcx/GETLLAR/PUTLLC, и дальше вариации на тему очень быстрой vs очень устойчивой синхронизации (ну и на обход багов в отдельно взятых процессорах).

Важно помнить про тот самый exponential backoff. Ну и вообще, важно думать.
Если думать, то и lock-free структуры не понадобятся :)
Ну а если не думать, то они скорее всё испортят, чем помогут.

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

Я по-прежнему считаю, что геймдев конторы обязаны предоставлять публичный доступ к исходникам. Чтобы термины "exponential backoff", "memory barrier" и "lock-line reservation" из абстрактных превратились в конкретные, благодаря помощи зала.
Принцип Керкхоффа вполне применим к геймдеву, ибо смысл соревнований - в умении создавать и шипить игры.

Через это ссылки на почитать дальше про lock free и вообще:
1. Lock-Free Code: A False Sense of Security Хебра нашего Саттера.
2. Insomniac’s SPU Best Practices (PPT) Майка нашего Эктона.
3. Obstruction-Free Synchronization (PDF) того самого Мориса Херлихуя (ц) _foreseer.
aruslan: (Default)
Иногда создается ощущение, что то, как линкер работает - военная тайна.
И поэтому делают странное и смешное.

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

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

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

Зачем делать плохо - вот загадка.
Лучше уж не делать совсем - хотя бы устойчивее работать будет, да и дешевле.
aruslan: (Default)
Иногда возникает брутальное желание запретить коммит кода, если в нём нет или мало ассертов.
С одной стороны - учить пользоваться вилкой глупо если код как пюре.
Но ведь становятся же люди веселее, когда берут образ веселого человека?..

[Poll #1109174]
aruslan: (Default)
Иногда создается ощущение, что проблемы диагностики бинарной несовместимости не были решены обычным дайджестом лет сорок назад.
Т.е. не на Microsoft 360, а на вполне себе IBM 360.

В самом тупом случае используют просто номер версии. Слишком хрупко ибо человеки.
Или CRC32 всего текста шейдера или там описания класса. Это чересчур строго.

Более жизнеспособен дайджест бинарной совместимости.
Т.е. хэш того, от чего эта самая бинарная совместимость зависит.

Например для классов - это хэш от layoutа и сигнатур виртуальных функций плюс layoutа полей.
Для шейдеров - описание внешних связей (порядок, типы, имена/семантика).

И всё - при построении ассета, который требует конкретного шейдера, - считаем дайджест шейдера и пишем его прямо в ассет (32 бита например или там MD5).
А в рантайме берем дайджест теперь уже реального шейдера (из рантайма) и сравниваем с дайджестом что в ассете.

Очевидно следующий шаг - вообще побороть несовместимость, но это обычно дорого и через это ненужно.
Поэтому все или делают дайджесты или делают абсолютно быстрый и прозрачный бандлинг.

И вместо невероятных глюков и access violation спокойно говорят - "сорри, бинарная несовместимость".
aruslan: (Default)

Завидую по-доброму.
Явно не хватает Белой Книги для правильной цветогаммы, но, как я понимаю, - это вопрос времени.
Шоданчег - ты там?
via [livejournal.com profile] oleg_bunin
aruslan: (Default)
http://blog.gamedeff.com/ ([livejournal.com profile] gamedeff_blogs)

Оно заработало.
Первые посты - про lip service и маленький рыбацкий городок в устье реки Янцзы.
aruslan: (Default)
Поясню, про что тут.

Зачем тест в котором человек что-то пишет (игру, например)?
Чтобы он написал что-то гениальное? Не-а.
То есть, конечно, гениальное приветствуется, но это не всегда главное.

Нужно три простых вещи.

1. Человек должен уметь общаться. Понимать, спрашивать и предлагать.
2. Человек должен уметь программировать. Реализовывать то, что понял.
3. Человек должен уметь заканчивать. Результативно. В полную силу.

Вот эти вот "Понимать" и "Заканчивать" - то, что бывает важнее всего.
Всё остальное можно побороть. Это - нет.
Read more... )
Ну а жёсткие, скриннинговые и брутальные вопросы по C++ в стиле kunaifusu - это стресс тест умения адаптироваться к неизвестному контексту без права на ошибку. Причём - в классическом C++ контексте - мы оба много чего знаем, осталось убедиться, что все DR прочитаны обоими.

Вот и всё.
aruslan: (Default)
Благодаря [livejournal.com profile] rudybear вспомнил, что забыл подобновить ссылки на C++09 на моём del.icio.us/aruslan/C++ (aka [livejournal.com profile] delicpp_aruslan), а ведь после майской встречи комитета всё расцвело в предвкушении C++09 public draft. Он ожидался в октябре 2007, теперь возможно сдвинется, но это уже не важно.

Разработчикам игр будет небезынтересно почитать пейпер Electronic Arts STL из мэйлинг листа.

На Google Tech Talks - замечательное видео "New features in the next C++ standard" (и там есть еще много всего вкусненького!):

Comeau как всегда впереди планеты - вот список уже поддерживаемых Comeau фич C++09.

И, наконец, сам драфт стандарта (PDF) из майского мэйлинг-листа.


C++ меняется, и меняется сильно и толсто.
Как там у Брукса про синдром второй системы? ;)

А вот и цитата из старой доброй ветки Дамира про C++ на gamedev.ru:
Infernal Papuan
Интересно, если boost включат в стандарт, какого размера будет четвертое издание Страуструпа? :)
aruslan: (Default)

http://movies.teamxbox.com/xbox360/pgr4/pgr4_stpetersburgrain_720p.wmv (53M)

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

Но вот дождика ребята явно давно не видели.
Брызг от асфальта нет, и вообще неправильный дождик какой-то.
У того же Сайбера - дождик вполне себе правильный.
И в одном нашем проекте, который зреет уже себе вполне.

В общем, выездную сессию ребятам надо устраивать.
В места, где дождь бывает ;)

Ну а Питер - Питер испортить тяжело.
Белые ночи, опять же.
Уже скоро :)
aruslan: (Default)
[livejournal.com profile] kunaifusu сегодня двинул сильно правильную мысль про неадекватные интервью как фермент глобального bozo explosion в индустрии.

А любое интервью - это, очевидно, способ оценить компанию.

Про сливные бачки и ГЭС )
Потому что специалисты по C++ в геймдеве действительно нужны нечасто.
И гораздо чаще - нужны специалисты по разработке игр.
aruslan: (Default)
Уже как-то непонятно, по какому часовому поясу поздравлять; поэтому лучше позже, чем раньше :)
В любом случае, не прошло и двух лет, - и вот Саймон уже вовсю двигает технологии в Microsoft, [livejournal.com profile] sim0nsays радует интересными и насыщенными постами, ну а CEMEH постепенно становится омереканчегом.

Желать совсем безоблачного неба и серо-зелёного хомячьего счастья по ряду рабочих причин не хочу и не буду. Что думать об извечном carpe diem - Семёну, очевидно, виднее.

Через это остается только пожелать мощного сибирского здоровья, огня и задора в сердце, и понимания, что счастье - оно есть и более чем возможно.
Остальное, уверен, Саймон возьмёт и сам ;)

С днём рождения, Семён!
Жги еще!
aruslan: (Default)
Смотрел сегодня зачем-то немножко всякого кода.
Мысль остановилась на втором экране невнятной сети несвязанных между собою условий.
Понял, что волю читать мегапростыни кода я утратил. Особенно ненужного. Бажного.
А чем больше кода - тем скорее он станет ненужным.

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

Не пишите лишний код. Пишите нужный.
aruslan: (Default)
Сегодня напомнили, что boost::interprocess (который в девичестве был известен как shmem) жив и всячески приближается к.
Лежит в boost vault.

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

Profile

aruslan: (Default)
aruslan

January 2014

S M T W T F S
   1234
56789 1011
12131415161718
19202122232425
262728293031 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 25th, 2017 06:04
Powered by Dreamwidth Studios