August 31, 2007, 1:40 am
Всему, кажется, своё время. Рано или поздно кризис жанра приводит к очевидному пониманию – так жить нельзя. После чего немедленно хочется откинуть гряные сандали С++ в сторону цели, написать что-нибудь своё – большое, чистое, прекрасное.
Continue reading ‘ЕЗЫГ МОЙ. «ПЕРДИСЛОВИЕ»’ »
August 30, 2007, 11:54 am
Я нашел в MS дядьку, с которого дико тащусь.
Его зовут Дэвид Блайс (David Blythe), и он архитект в Windows в области графики. Дядька раньше дизайнил OGL в SGI, писал по нему книжку, а сейчас вот архитектит в том числе D3D. Дядька совершенно монструозный и замечательный. Я с ним говорил минут 20 и просветлился больше, чем за два предыдущих месяца. Читал его гуидлайны про API design и опять же радовался.
Отрывок на сегодня:
“DESIGN BY COMMITTEE. Avoid design by committee. There should be a single person with final say in the design …. and this person should have good architectural experience and instincts.”
Я еще не умею писать так лаконично, поэтому придется в многабукф.
Continue reading ‘Коллективный разум: How to’ »
August 30, 2007, 10:26 am
Как белый человек делает минимально продолжительный рефактор в эпоху победивших DVCS?
Он, натурально, регулярно фиксирует промежуточные локальные изменения, в которых что-то уже заработало, в локальном же репозитории. А по окончанию рефактора и тестов делает либо push, либо commit в глобальный репозиторий. (Последнее в случае, если глобальный построен на нераспределенной VCS.)
Только вот через неделю затяжного рефактора я все равно поймал сам себя на том, что с целью бэкапа сделал уже 4ю копию промежуточных исходников тупо кнопочкой F5, а не командой hg commit.
Буду делать вид, что это я как будто забранчил. Потому как бранчи в том hg делаются, хихи, тоже кнопочкой F5!
August 29, 2007, 9:05 am
Намедни меня попросили в продолжение темы эволюции рассказать про эволюцию игрового объекта (GameObject). Отвечаю: тут эволюции нету. Тут самое что ни на есть распределенное блуждание по дюжине разных направлений.
Вообще идея сделать универсальный и абстрактный GameObject часто занимает сердца и умы. Это точно можно предсказать, во что выльется через несколько лет – в гигантского монстра на несколько сотен виртуальных функций, который тормозит все, что можно и все что нельзя. С этом пытаются бороться, разделяя GameObject на части, у многих получается. Но после этого начинают навешивать дополнительные иерархии классов, пытаясь совместить несовместимое по определению – логические игровые сущности и физические (геометрические объекты).
Но мое глубокое ИМХО – лучший gameobject – это отсутствие gameobject вообще. В игре не так много сущностей, которые обладают полностью единым интерфейсом. И слишком много сущностей, которые обладают совсем разным интерфейсом.
August 28, 2007, 10:12 pm
Мы дружим с дизассемблером не только и не столько потому, что мы не любим компилятор. Работа компилятора это работа сантехника – продираться через clutter. Clutter – это не только синтаксический сахар, но и неявно выраженные невнятные неочевидные идеи; пишем Партия подразумеваем Ленин.
Continue reading ‘Последний раз про математику или ещё раз про abstraction penalty’ »
August 26, 2007, 4:35 pm
В процессе оптимизации демки для PS3 выяснилось, что было бы неплохо оптимизировать шейдер для частиц. В вершинном шейдере происходит расчет позиций 4 вершин (частицы – билборд), а-ля point sprite, но размер указывается в world space, и частицы можно крутить. В пиксельном шейдере считается глубина, читается глубина из depth texture, и разница с коэффициентом используется как множитель к альфе.
Continue reading ‘Расчет глубины пикселя’ »
August 24, 2007, 3:47 pm
Иногда за абстракцию приходится платить временем исполнения. А иногда – временем отладки!
Вопрос в копилку для собеседования на позицию C++ гуру: влияет ли шаблонность метода на видимость переменных?
Правильный ответ с точки зрения MSVC 2005…
Continue reading ‘Цена абстракции-2 (или все, что мама не рассказывала про C++)’ »
August 22, 2007, 11:25 pm

кликабельно
crossposted to zeux.livejournal.com.
|
Как прекрасно, когда новый runtime – lean & mean. Нагромождения стейтов превратились в удобные и быстрые state objects, дорогие по разным причинам установки шейдерных констант завернули в constant buffers. Потерь устройства нет, вся память – полностью виртуализирована. Depth-текстуры – поддерживаются официально. Если текстура скажем формата A8R8G8B8, то каждый компонент можно рассматривать как unsigned int, как fixed point, как signed int, etc. Ну и конечно – отлично, когда наконец-то есть возможность генерировать геометрию прямо на GPU! Не говоря уже о легализации хака R2VB.
|
Continue reading ‘PS3 hands-on experience’ »
August 22, 2007, 2:17 am
Оно понятно, что на компилятор надейся, а сам не плошай. Однако 2007-й год за окном провоцирует многих думать, что современный компилятор от ведущей-компании разработчика ПО (это MSVC 2005) достаточно умен, чтобы хорошо компилировать несложный код.
Увы, это заблуждение.
Continue reading ‘Цена абстракции (или все, что мама не рассказывала про C++)’ »