среда, 27 мая 2015 г.

Монополия. Империя

Вчера попробовали играть в версию "Монополии" под названием "Монополия. Империя" ( http://hobbyworld.ru/monopolija-imperija ).
Играли вчетвером (кстати, в ряде интернет-магазинов ошибочно указано, что максимальное число игроков шесть, но на самом деле - 4).

От привычной мне "Монополии" (классической, но локализованной, с московскими улицами) отличий довольно много. Впрочем, по порядку.

Есть классическое (или близкое к классическому) поле "Монополии". То, что вместо улиц - известные бренды - это не так важно, считаем локализацией. Основной принцип тоже тот же - бросил кубики, пошел на поле, если бренд ничей - или купил, или бренд выставлен на аукцион, если чей-то - заплатил за стоянку. Есть тюрьма, есть случайные события, есть возможность собрать бренды одного цвета - монополию.

Однако вот дальше начинается разница.

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

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

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

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

Наконец, условие победы состоит в том, что необходимо собрать брендов на определенную сумму - заполнить брендами башню Империи.

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

вторник, 19 мая 2015 г.

Wavefront .mtl в Assimp. Shininess

Воспользовавшись тем, что исходные коды Assimp открыты, с описанным выше багом сохранения материалов я разобралась. Однако проблемы на этом не закончились.

В .mtl-файле, описывающем материал, указывается коэффициент зеркального блеска SHININESS. Однако при загрузке материала с помощью Assimp, внутри своего приложения я получала не такое значение, как указано в файле. Методом пристального взгляда я определила, что загружается значение, ровно в четыре раза большее.

Действительно, в коде загрузчика Wavefront Obj нашлась совершенно замечательная строчка:

// multiplying the specular exponent with 2 seems to yield better results
pCurrentMaterial->shineness *= 4.f;

Поиск показал, что эта строчка привела в замешательство далеко не только меня. Но меня привела в замешательство не только и не столько она.

А то, что при этом при сохранении модели и материалов в файлы Wavefront Obj и Mtl - деление не производится. То есть взяли мы модель, загрузили, ничего не делали, сохранили - и материал поменялся.

понедельник, 18 мая 2015 г.

Брест, 09-10 мая 2015

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

Приехали мы в Брест около половины одиннадцатого утра 9 мая. Первым делом поменяли деньги (отдельная задачка - вычислить, сколько денег менять, при том, что с ценами заранее не ознакомился), почувствовали себя почти миллионерами и отправились пешком на бульвар Шевченко, где у нас была забронирована квартира.


воскресенье, 17 мая 2015 г.

Авиация Парада Победы, 7 мая 2015

Как я уже говорила, 4 мая на репетиции Парада Победы авиации не было. О том, что одна из репетиций воздушной части Парада будет 5 мая утром, я узнала только 4 мая поздно вечером, и потому ее пропустила: надеялась, что, возможно, увижу с работы, но траектории самолетов были таковы, что надежда оказалась ложной.

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

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

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

суббота, 16 мая 2015 г.

Техника Парада Победы, 4 мая 2015

Поскольку 9 мая я планировала отмечать не в Москве, а в Бресте, а технику посмотреть все-таки хотелось, то 4 мая я отправилась в окрестности метро "Динамо", а конкретно - на поворот с улицы Авиаконструктора Сухого на Ленинградский проспект. Увы, о том, что 4 мая не будет самолетов, я осознала только то ли 3, то ли даже непосредственно 4 мая, когда менять планы было уже несколько неудобно.

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

пятница, 15 мая 2015 г.

Wavefront Mtl в Assimp

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

Понадобилось мне, собственно, следующее:
- Загрузить 3D-модель из какого-нибудь формата (например, Wavefront OBJ, но необязательно)
- Некоторым образом ее преобразовать (удалить часть полигонов, части полигонов присвоить другие материалы)
- Сохранить модель (в Wavefront OBJ)

Пока моей задачей была работа с геометрией, а материал на всю модель был один, все шло отлично. А вот затем, с материалами, не заладилось: в файл все, вроде бы, сохраняется нормально, но при последующей загрузке тем же моим приложением, с использованием, опять же, Assimp, материалы загружаются некорректно. Либо все превращаются в JoinedMaterial_#63 (не обязательно именно 63, цифра может быть другая), либо сохраняют названия, но становятся одинаково серыми.

Приглядевшись, я обнаружила следующее: если в исходном файле материалов строки, описывающие цвет материала, начинались с Ka, Kd, Ks (с больших букв K), то в свежесохраненных файлах - с ka, kd, ks (то есть с маленьких). Кроме того, по непонятной причине в сохраненных файлах отсутствует строчка, описывающая коэффициент зеркального отражения. Я скачала исходники последней стабильной версии библиотеки, посмотрела в код: так и есть, проблема со строчными/заглавными буквами на месте. Вот в чем проблема с коэффициентом отражения - с ходу не поняла.

Но самое, на мой взгляд, удивительное в этой ситуации то, что я так и не смогла ничего конкретного по этому поводу найти в интернете. То ли мало кому доводилось сохранять в Wavefront OBJ с помощью Assimp, то ли те, кому доводилось, молча вносили небольшую поправку в исходники и пересобирали библиотеку, то ли я искать не умею...