Недавно инкапсулировал свой проект в namespace и столкнулся с проблемой отсутствия нормальной документации. Все, что удалось найти датируется примерно 2009 годом, а на дворе почти 2012… В найденном материале куча нерабочих мест, использующих то, что в нынешней версии php нет. В связи с этим хочу немного осветить этот вопрос.
User
Линейная алгебра для разработчиков игр
19 min
796KTutorial
Translation
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
+278
Мониторинг (измерение) потребляемого траффика в Linux
2 min
72KОднажды мне потребовалось измерить количество трафика, которое «пожирает» некоторое приложение. Один из способов такого измерения — это установить прокси. Но что, если не хочется ставить прокси-сервер?.. Мне вот не хотелось. В поисках других способов я сначала перерыл Хабр, потом интернет. Так как я в своё время потратил на это много времени, то сейчас я создаю эту заметку, чтобы у других такой проблемы не возникло.
ВАЖНО:
Этот метод работает, если мы знаем по какому адресу (адресам) обращается наше приложение, или же с какого/каких портов.
ВАЖНО:
Этот метод работает, если мы знаем по какому адресу (адресам) обращается наше приложение, или же с какого/каких портов.
+18
H.264 декодер на JavaScript
1 min
7.9KПрежде чем отправить публикацию, крепко задумался, какой блог выбрать: JavaScript или Ненормальное программирование. Так или иначе круг задач, которые можно решить на детище Нетскейпа расширяется с каждым днем.
Так например разработчики из команды Mozilla смеха ради сделали H.264 декодер на JavaScript. Любопытно, что скрипт при этом не был написан вручную.
Так например разработчики из команды Mozilla смеха ради сделали H.264 декодер на JavaScript. Любопытно, что скрипт при этом не был написан вручную.
+50
+42
REST vs SOAP. Часть 1. Почувствуйте разницу
6 min
484KНекоторое время назад я гуглил интернет по поводу “REST vs SOAP”, прочитал пару статей и вроде бы все понял, но не почувствовал от этого никакого удовлетворения. Что-то было не так, то ли я не почувствовал основную идею, то ли просто читал, одновременно слушая новый музон и думая о новой фиче в проекте. Как появилось время, решил восполнить этот пробел, заодно написав полезную статью по этому поводу.
+95
Техноблог: почему Evernote выбрал Apache Thrift для построения своего API
4 min
15K
Когда мы начинали планировать, как будет устроен сервис Evernote, в 2007 году, мы знали, что в первый же день нам понадобится поддержка как “тонких” (таких как браузеры), так и “толстых” синхронизируемых клиентов. Это побудило нас задуматься над удаленным протоколами и клиентским API еще до начала работы над любым GUI для веба. В противном случае пришлось бы ждать несколько месяцев, пока прикрутят API на уже существующий веб-сервис.
Наши приложения предъявляют к API определенные требования, как то:
+39
Паттерн «Обозреватель» и контекст вызова в Javascript
3 min
13KХотя про паттерн «Обозреватель (Наблюдатель, Observer)» сказано достаточно, в том числе и на Хабре, вкратце повторюсь. Суть паттерна в наблюдении за состоянием неких субъектов системы и соответствующей реакции наблюдателей на изменения этих состояний. За одним субъектом может следить несколько наблюдателей, причём сам он об этом не знает (слабое связывание), но исправно оповещает всех об изменении состояния.
Удобно использовать Обозревателя на сайтах и в веб-приложениях, поэтому логично реализовать его с использованием самого популярного языка для веб-среды — Javascript.
Удобно использовать Обозревателя на сайтах и в веб-приложениях, поэтому логично реализовать его с использованием самого популярного языка для веб-среды — Javascript.
+29
Опыт создания игры для социальных сетей
5 min
14KПривет, хабр сообщество.
Я хочу рассказать вам об опыте создания социальной игры, и возможно, здесь найдутся люди, которые захотят делать игры вместе с нами. Ниже я опишу каждый этап работы над проектом до создания прототипа и первых пользовательских отзывов. Я участвую в роли продуктовода.

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

+25
PHP-AMQP Что нового у Друзей?
4 min
6.9KПри построении социальной сети по типу шардинга встает проблема обмена данными между шардами. Традиционная репликация в данном случае не подходит по разным причинам. Тема шардинга — это отельная большая тема и не является предметом данной статьи.
В данной архитектуре для реализации «ленты Друзей» или «Новостной ленты» лучше использовать сервер очередей используя систему: Подписка-Уведомление. В качестве брокера обмена предлагается использовать сервер очередей RabbitMQ, реализующий протокол AMQP, который был выбран по причине хорошей масштабируемости. Серверная часть реализована на PHP, используя расширение php-rabbit (описание АПИ).
В данной архитектуре для реализации «ленты Друзей» или «Новостной ленты» лучше использовать сервер очередей используя систему: Подписка-Уведомление. В качестве брокера обмена предлагается использовать сервер очередей RabbitMQ, реализующий протокол AMQP, который был выбран по причине хорошей масштабируемости. Серверная часть реализована на PHP, используя расширение php-rabbit (описание АПИ).
+15
Исключение != ошибка
4 min
29KМногие программисты почему-то считают, что исключения и ошибки — это одно и то же. Кто-то постоянно кидает exception, кто-то через errorHandler превращает ошибки в исключения. Некоторые пытаются увеличить производительность, используя исключения. Но, на самом деле, exception и ошибки — это совершенно разные механизмы. Не надо одним механизмом заменять другой. Они созданы для разных целей.
Когда появился php5 с исключениями, а затем ZendFramework, который всегда кидает исключения — я не мог понять: чем же exception лучше моего любимого trigger_error()? Долго думал, обсуждал с коллегами и разобрался в этом вопросе. Теперь я чётко знаю, где использовать trigger_error(), а где throw new Exception().
В чём же принципиальная разница между ними?
Когда появился php5 с исключениями, а затем ZendFramework, который всегда кидает исключения — я не мог понять: чем же exception лучше моего любимого trigger_error()? Долго думал, обсуждал с коллегами и разобрался в этом вопросе. Теперь я чётко знаю, где использовать trigger_error(), а где throw new Exception().
В чём же принципиальная разница между ними?
+47
UnityCar — автомобили с физикой для Unity3D
3 min
51K
Игровой движок Unity3D не нуждается в особом представлении. Для тех, кто не знает, что это такое, могут посмотреть сайт unity3d.com/unity/ или поискать другие топики на хабре про этот замечательный кросс платформенный движок. Для него уже написано множество дополнений, моделей и других пакетов. Об одном из них и пойдет речь.
UnityCar — полноценный физико-реалистичный пакет симуляции автомобилей для Unity3D, который прост в использовании и реализует множество физических моделей, включая модели повреждений и разрушений.
Небольшое видео, демонстрирующее возможности пакета:
+47
«Захват движения» от iPi Soft
5 min
41K
Большинство систем захвата движения работают с маркерами или датчиками, которые крепятся на тело актера, как правило — при помощи костюма. Но есть и способ захват движения при помощи хромакея — мы поговорили с Михаилом Никоновым, одним из участников команды iPi Soft (выигравшей дубнинскую инновационную школу) и обсудили подробности проекта и его перспективы.
+51
Жители самой богатой китайской деревни построили небоскреб
2 min
23KПытливый читатель сразу спросит — а зачем такой пост в таком блоге? — сразу отвечу — чтобы добиться успеха — его надо добиваться и доводить все дела до конца. И эта новость показывает какого успеха можно добиться.
Ко дню празднования 50-ти летия китайской деревни Huaxi (Хуаси) был открыт 328-ми метровый небоскреб. Cтоимость строительства небоскреба оценивается в 3 миллиарда юаней (больше $470 млн). При этом каждая деревенская семья отдала по 10 миллионов юаней (примерно $1,5 млн ), поэтому отель поистине считается гордостью его жителей.

Хуаси (провинция Цзянсу, Восточный Китай) — Самая богатая деревня в Китае, которая известна всем как «село номер 1 в Поднебесной», пользуется славой самой развитой в экономическом плане деревней в Китае.
В 1950-х годах Хуаси была деревушкой с населением 576 человек. Однако уже в 2003 году ВВП этой деревни превысил $1.5 млрд. Сейчас тут живут 36 тысяч человек. У каждой семьи есть хотя бы один дом, две машины и $250 тысяч в банке. А 20% годового дохода всей деревни делится поровну между всеми жителями деревни.
Ко дню празднования 50-ти летия китайской деревни Huaxi (Хуаси) был открыт 328-ми метровый небоскреб. Cтоимость строительства небоскреба оценивается в 3 миллиарда юаней (больше $470 млн). При этом каждая деревенская семья отдала по 10 миллионов юаней (примерно $1,5 млн ), поэтому отель поистине считается гордостью его жителей.

Хуаси (провинция Цзянсу, Восточный Китай) — Самая богатая деревня в Китае, которая известна всем как «село номер 1 в Поднебесной», пользуется славой самой развитой в экономическом плане деревней в Китае.
В 1950-х годах Хуаси была деревушкой с населением 576 человек. Однако уже в 2003 году ВВП этой деревни превысил $1.5 млрд. Сейчас тут живут 36 тысяч человек. У каждой семьи есть хотя бы один дом, две машины и $250 тысяч в банке. А 20% годового дохода всей деревни делится поровну между всеми жителями деревни.
+132
Алгоритм «diamond-square» для построения фрактальных ландшафтов
12 min
119K
Как же автору игры, Notch'у, удалось добиться подобного сходства его случайных «миров» с земными просторами? В этом топике я как раз и рассмотрю один из способов построить искусственный ландшафт такого рода (и вскользь упомяну пару других способов), а также расскажу о моем небольшом усовершенствовании этого алгоритма, позволяющем значительно увеличивать размеры ландшафта без заметных потерь в производительности.
Внутри вас ждет несколько схем и красивых картинок, довольно много букв и ссылка на пример реализации алгоритма.
+146
Рендеринг искусственных объектов на фотографии
1 min
4.3KTranslation
Мы предоставляем метод для реалистичного добавления искусственных объектов в существующие фотографии, не требуя необходимости доступа к сцене или других дополнительных измерений. С помощью одного изображения и небольшого количества аннотаций, наш метод позволяет создать физическую модель сцены, которая подходит для рендеринга на ней искусственных объектов с рассевающими, зеркальными или даже светящимися поверхностями, с учетом взаимодействия освещения между объектами и сценой.
+68
Unity3d и развеивание некоторых мифов
8 min
94KНедавно я прочитал очередную статью про Unity3d на Хабре, в очередной раз были интересные комментарии — и грамотные, и грамотные не совсем.
Я вдохновился и решил немного прокомментировать происходящее.
Надеюсь, кто-нибудь почерпнет для себя здесь что-то новое и интересное.
Я вдохновился и решил немного прокомментировать происходящее.
Надеюсь, кто-нибудь почерпнет для себя здесь что-то новое и интересное.
+63
Погружение в скрипты игрового движка Unity3d, ч.1
6 min
237KДоброго времени суток, уважаемый читатель! На Хабре неоднократно публиковались статьи о разработке игр с использованием замечательного движка Unity3d. Большинство этих статей были посвящены вполне определенным задачам, я же хотел сделать общий экскурс в данный движок. Данная часть будет посвящена наиболее часто используемым скриптовым методам и объектам, которые используются мной в процессе разработки на данном движке. Примеры я буду приводить на JavaScript, как на наиболее близком мне языке.
+34
Использование OpenFeint в Unity3d
3 min
5.2KOpenFeint — достаточно популярная социальная сеть для игроков. Социальная составляющая всегда важна для казуальных (да и не только) игр, ведь она добавляет интерес к игре со стороны пользователей, да и способствует распространению.
Итак, наша задача на текущий момент — встроить OpenFeint в наш проект игры на Unity3d. Итак, все по порядку.
Итак, наша задача на текущий момент — встроить OpenFeint в наш проект игры на Unity3d. Итак, все по порядку.
+15
Сетевой слой движка физики
7 min
4.8KВсем привет. Одним игровым проектом на физике box2d стало больше, закончили онлайн-файтинг на физике ragdoll. Хотелось бы сделать некоторые выводы и рассказать об основных технических проблемах, с которыми пришлось столкнуться, и о методах их решения. Статья заинтересует начинающих разработчиков [флеш-]игр с использованием физических движков. Фокус делается на сетевом слое для движка физики.
+30
Information
- Rating
- Does not participate
- Location
- Одесса, Одесская обл., Украина
- Date of birth
- Registered
- Activity