Search
Write a publication
Pull to refresh
12
0
Алексей Линецкий @hoack

User

Send message

Работа с изометрическими картами в cocos2d

Reading time6 min
Views15K

Привет все читателям сайта habrahabr.ru


Недавно решил заняться разработкой игр под IOS, причиной стал прочитанный пост на сайте. Это занятие помогает не впустую тратить свое время и думаю в будущем принесет неплохую добавку к зарплате. По началу прочитал книгу по Objective-C и принялся искать хороший, но бесплатный движок для написания игры, так как чистый OpenGL не хотелось использовать. Выбор пал на cocos2d, тут и друг посоветовал и нашел много хороших отзывов на сайте про него, плюс не раз слышал, что разработчики часто отвечают на вопросы на форумах.
Читать дальше →

Описание Google AI challenge (Ants)

Reading time9 min
Views4.6K
image
На хабре уже имеется много информации по этому состязанию, однако вся она освещает отдельные моменты реализации, но не картину в целом. Постараюсь исправить это положение как можно более кратко, но в целом.
Данное описание предназначено для тех, кто что-то слышал о данном мероприятии, но всё желание что-то сделать отбила необходимость разбираться в тонкостях реализации. Пост состоит частично из перевода материалов с официального сайта, частично из анализа стратегий других ботов и чистой логики. Также в конце поста будет ссылочка на PHP-бота (чуть сложнее чем из starter-pack), который позволит вам попробовать собственные силы дописав имеющийся код. Официальный сайт состязания: aichallenge.org
Читать дальше →

Как на самом деле работает mod_rewrite. Пособие для продолжающих

Reading time17 min
Views281K
image
Эта статья выросла из идеи продвинутого обучения наших сотрудников технической поддержки работе с mod_rewrite. Практика показала, что после изучения имеющихся в большом количестве учебников на русском языке саппортам хорошо дается решение шаблонных задач, но вот самостоятельное составление правил происходит методом проб и большого количества ошибок. Проблема заключается в том, что для хорошего понимания работы mod_rewrite требуется изучение оригинальной англоязычной документации, после чего — либо дополнительные разъяснения, либо часы экспериментов с RewriteLog.

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

Я предполагаю, что читатель уже знаком с тем, что такое mod_rewrite, и не буду описывать его основы, которые легко найти в интернете. Также нужно отметить, что в статье освещается работа mod_rewrite при использовании его директив в файле .htaccess. Отличия при работе в контексте <VirtualHost> изложены в конце статьи.

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

Почему так происходит?
Читать дальше →

UnityCar — автомобили с физикой для Unity3D

Reading time3 min
Views51K


Игровой движок Unity3D не нуждается в особом представлении. Для тех, кто не знает, что это такое, могут посмотреть сайт unity3d.com/unity/ или поискать другие топики на хабре про этот замечательный кросс платформенный движок. Для него уже написано множество дополнений, моделей и других пакетов. Об одном из них и пойдет речь.
UnityCar — полноценный физико-реалистичный пакет симуляции автомобилей для Unity3D, который прост в использовании и реализует множество физических моделей, включая модели повреждений и разрушений.

Небольшое видео, демонстрирующее возможности пакета:

Читать дальше →

Adobe Flash Player и передача потоковых данных без участия сервера, часть 1-я: организация пирингового вещания

Reading time6 min
Views18K
    Как известно недавнее обновление продуктов Adobe Flash Player до 10.1 и Adobe AIR до 1.5 версий осуществило целый фурор, презентовав новый протокол связи Real-Time Media Flow Protocol (RTMFP). Заранее попрошу не путать вышеупомянутый с Real-Time Messaging Protocol (RTMP) для использования которого был необходим Adobe Flash Media Server (FMS) на стороне обслуживающего сервера.
    Разработчики обещают, что протокол будет обладать низкой задержкой во времени при пересылке пакетов, но самое главное, протокол ориентирован на организацию пиринговой сети.
Читать дальше →

Имена людей и интерфейс

Reading time13 min
Views50K
Пространство рассуждения статьи затрагивает вопросы различия имен людей во всем мире, и то, как это влияет на дизайн форм ввода, баз данных, онтологий информатики и др. в контексте Всемирной Паутины.

image

Заинтересованная аудитория: авторы HTML-контента, разработчики скриптов серверных приложений (PHP, JSP и т.д.), менеджеры веб-проектов и любые другие люди, так или иначе связанные с дизайном форм ввода данных, дизайна баз данных и онтологий, которые затрагивают личные имена людей.

Следует помнить о различиях формирования и традициях употребления имен людей в других странах. Зачастую создатели сайтов или программ одной культуры не учитывают национальные особенности пользователя другой, что заставляет последнего чувствовать себя непривычно, и ставит дополнительные преграды к использованию продукта.

Читать дальше →

Чек-лист разработчика языка программирования

Reading time4 min
Views23K
Итак, Вы собираетесь создать новый [] функциональный, [] императивный, [] объектно-ориентированный, [] процедурный, [] стековый, [] мультипарадигменный, [] быстрый, [] статически-типизированный, [] динамически-типизированный, [] чистый, [] богатый, [] не-искусственный, [] наглядный, [] простой для новичков, [] простой даже для не-программистов, [] абсолютно непостижимый язык программирования.

Не получится. И вот почему.
Читать дальше →

Немного о деревьях

Reading time3 min
Views28K

Вступление


Встречалась ли вам ситуация, когда необходимо реализовать хранение древовидной структуры в реляционной БД?

PostgreSQL on tree

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

В данном топике мы с вами поговорим об одной из тех возможностей, которые существуют для организации хранения деревьев в PostgreSQL — ltree.
Читать дальше →

Очистка кэша в iOS 5

Reading time5 min
Views12K


У каждого приложения iOS есть рабочая папка для хранения файлов. Все элементы оттуда, кроме содержимого Caches и tmp, синхронизируются с бэкапом во время соединения с iTunes.

До выхода iOS 5, система никогда не удаляла содержимое Caches и tmp, они были единственным безопасным местом для хранения данных, которые всегда должны быть доступны и в то же время которые можно повторно скачать в случае потери. Таким образом, эти данные не занимали место в бэкапах и не замедляли синхронизацию.
Читать дальше →

Push уведомления в приложениях для iOS

Reading time3 min
Views13K
Добрый день, Хабражитель.
Все наверное в курсе, что в iOS существует такой полезный сервис как Push уведомления. Я тоже был в курсе, но пока не столкнулся с его реальным использованием, даже не знал, что с ним есть так много нюансов. В этом топике вы узнаете два аспекта об этом сервисе: что нужно делать в xCode, и как отсылать сами пуш сообщения через php сервер.
Под катом описано то, как все это работает.
Читать дальше →

Юнит-тесты в Cocoa

Reading time5 min
Views11K
Ниже описаны основы использования OCUnit — фреймворка для создания юнит-тестов, интегрированного в Xcode. Чтобы наглядно попробовать описываемые вещи, код можно скачать сразу. Писал до эпохи Xcode 4, поэтому картинки немного устарели.

Читать дальше →

Автоматизация Flex-приложений при помощи Java + Selenium + FlexMonkium

Reading time10 min
Views8.1K
В этом посте я опишу свои исследования, которые мне пришлось проделать, когда на проекте стал вопрос об автоматизации тестирования. Проект представляет собой веб-сайт, клиентская часть которого написана на Flex, а серверная — на Python(Django).

Выбор средств для автоматизации

Для начала рассмотрим путь от начала, который я прошел, прежде чем остановился на связке Java + Selenium + FlexMonkium. А это:

  • Selenium + Sfapi
  • Ranorex
  • FlexMonkey
  • Selenium + FlexMonkium

Читать дальше →

Домашний медиа-сервер: настройка и аспекты применения

Reading time6 min
Views256K

Преамбула


Наверное, у каждого из нас дома немало цифровых медиа-устройств, общающихся по WiFi или подключённых к сети с помощью обычной витой пары. У меня, к примеру — КПК, нетбук, пара ноутбуков, пара компьютеров и ещё пара смартфонов. Последние (парочка Nokia 5800 Xpress Music), благодаря тому, что даже в ванной или в постели постоянно находятся под рукой, оказались самыми часто используемыми девайсами. Благо и серфинг, и общение через GTalk/Skype, и простенькие игрушки-убийцы времени — всё доступно. Вот только памяти у девайсов всего по 8 Гб, так что фильмов туда не шибко накидаешь, да и конвертировать, а потом заливать на смартфон каждый фильм — на это нужно время, а ведь есть ещё такая штука, как лень! Одним словом, захотелось иметь возможность как-то просматривать медиаконтент (и в первую очередь — видео) с домашнего сервера в любой момент, не конвертируя и не совершая лишних телодвижений.
Читать дальше →

RedDwarf — cерверная платформа для разработки онлайн-игр на Java

Reading time4 min
Views9.5K
Добрый день!
RedDwarf logo Последние два года я занимаюсь разработкой сервера игр на платформе RedDwarf – свободной (GPLv2) серверной платформе для создания онлайн-игр на Java. На Хабре очень мало информации об этой платформе, поэтому я решил исправить этот недостаток.

История


Разработка данного движка изначально велась компанией Sun, сама платформа называлась Sun Game Server (аббревиатура sgs до сих пор используется в наименованиях пакетов). В 2005 году сервер был представлен миру под названием Project Darkstar. После того, как Oracle купила Sun, от поддержки проекта сановцы отказались, платформа была переименована в RedDwarf Server и сейчас существует только при поддержке сообщества. Проект развивается сейчас гораздо медленней, но всё же развивается – в прошлом году вышла версия 0.10.2. Всех планируемых фишек (прозрачного масштабирования) в ней ещё нет, но как основа для игрового сервера используется во многих проектах.

Основные принципы


Игровой сервер на платформе RedDwarf состоит из следующих частей.
  • Игровое приложение
  • Расширения
  • Ядро
  • Внутренняя БД
Читать дальше →

Кроссбраузерный вызов методов Flash из JavaScript

Reading time3 min
Views4.8K
Неделю назад в одном из моих проектов возникла задача заменить существующее слайд-шоу, реализованное на JavaScript более красивым, сделанным на Flash. При минимальном изменении кода требовалось вставить флеш-ролик и наладить передачу данных и обработку событий на страничке так, чтобы она и дальше продолжала работать корректно.

Русскоязычные статьи на тему передачи данных в связке JavaScript—Flash дают общее представление о процессе, но не учитывают одну важную деталь: в разных браузерах следует использовать различные объекты для выбора флеш-ролика. Наиболее часто предлагаемое решение работает в Chrome, но отказывается работать в Firefox, и уж тем более в IE.

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

Читать дальше →

Погружение в скрипты игрового движка Unity3d, ч.2

Reading time4 min
Views131K
Доброго времени суток всем читателям! Не так давно мною была опубликована статья, охватывающая некоторые часто используемые скриптовые возможности движка Unity3d. В этой части я хотел бы написать о скриптовых событиях, вызываемых при различных условиях. Все, указанные в данной части справочника, функции доступны в любом скрипте, который «повешен» на игровой объект.

Читать дальше →

Разработка игры с использованием Box2D на ActionScript 3

Reading time6 min
Views9.1K
Доброго времени суток, дорогой читатель!
Недавно была опубликована статья, где описывалась работа с движком Box2D.
Однако, движок на сайте был версии 2.1a работа с которым, к сожалению, отличалась от работы предоставленной в статье. К сожалению скудная иностранная документация по этой версии движка заставила во многом разбираться самому. Частью своих изысканий я бы хотел поделиться с тобой, дорогой читатель.
Читать дальше →

Разработка мобильных приложений на Adobe Flash + AIR: обзор возможностей

Reading time14 min
Views26K
Недавно замечательная flash-игра Machinarium заняла 1 место в рейтинге платных игр для iPad. Тем не менее много талантливых разработчиков flash-игр с опаской смотрят в сторону мобильных платформ. На русском языке информации по теме крайне мало. Надеюсь эта статья немного улучшит положение вещей. Желаю приятного прочтения.


Читать дальше →

CLI на стероидах: Google Guice и JCommander

Reading time10 min
Views6.7K
В этой статье я хочу рассказать об одном из способов построения CLI-приложений на Java.
Собственно сама потребность в таких приложениях никуда не делась — так, например, в моем случае это было приложение для проведения функционального и нагрузочного тестирования серверной части. Конечно же были варианты в проведении необходимых тестов при помощи набора JUnit-ов, но мы были сильно ограничены во времени и хотелось получить решение, не требующее программирования со стороны отдела тестирования. Тем более, что бинарный протокол по которому взаимодействовали клиент и сервер был четко специфицирован.

Идея


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

На Хабре не так давно была статья о commons-cli. Сам commons-cli мне не понравился своим 'деревянным' API, однако из комментариев к самой статье я узнал про несколько альтернатив в числе которых был JCommander.

Привлек внимание именно он, поскольку:
  • Естественная поддержка паттерна Команда;
  • Удобный способ определения параметров вызова, основанный на аннотациях;
  • Автоматическое формирование помощи по доступным командам;
  • Неплохая документация;
  • Бесплатно.


Читать дальше →

Пьеса «Разработка многопользовательской сетевой игры.» Часть 3: Клиент-серверное взаимодействие

Reading time7 min
Views16K


Часть 1: Архитектура
Часть 2: Протокол
Часть 4: Переходим в 3D

С третьей частью я немного задержался. Но как говорится лучше поздно чем никогда…

Итак, продолжаем разговор.

В третьей части нашей постановки мы реализуем протокол, напишем сервер и клиент которые будут взаимодействрвать по сети. И (ОМГ!) танки будут ездить!
Под катом то, что вы давно хотели, но боялись спросить…

Добро пожаловать в зрительный зал.

Information

Rating
Does not participate
Location
Fair Lawn, New Jersey, США
Registered
Activity