• Простой publish-subscribe для мультиплеера на CoronaSDK, Gideros, Moai

      Однажды с коллегой столкнулись с проблемой реализации рилтайм мультиплеера на CoronaSDK. Сначала попробовали сервис pubnub.com, но со временем поняли, что не устраивает их latency (у них все через http) и цены. Не найдя ничего получше, решили на скорую руку создать на Node.js свой велосипед (или скорее самокат, потому как весь серверный код умещается в 90 строк с комментариями).

      Назвали в шутку NoobHub. Распространяется под лицензией WTFPL.
      Бобробности под катом
    • Ciklum Speakers' Corner: «Lua. Обзор языка и его возможностей»

        Компания Ciklum с продолжает ряд открытых мероприятий под названием Speakers’ Corner на которых, за короткое время можно узнать массу полезной информации и пообщаться с единомышленниками в неформальной обстановке.
        На этот раз 16го декабря мы приглашаем всех желающих расширить свои гоизонты и погрузиться в мир Lua, получить краткий обзор и узнать о его возможностях.
        Проливать луч света на Lua и открывать новые горизонты будет Владимир Безобюк (Senior Linux Developer, IntroPro).
        image
        Читать далее
      • Любовь в пикселях или что такое Love2d

        Что же такое Love2d и о чем этот пост? Это кроссплатформенный фреймворк для разработки 2d игр. Почему именно love2d? Потому что это бесплатный, легкий, кроссплатформенный, с открытым исходным кодом, а главное сделанный с любовью движок.

        Читать дальше →
      • Что такое скрипты и с чем их едят — Lua & C++

        • Tutorial
        Добрый день, Хабрахабр!
        Решил написать этот топик на тему скриптов

        Что нужно знать?


        • С++ на приличном уровне (в уроке будут шаблоны — template)
        • Lua, очень легкий скриптовый язык. Советую этот урок.

        Почему писать диалоги игры в .cpp файле было большой ошибкой


        Если вы разрабатывали большие проекты (к примеру, масштабные игры), замечали, что с каждой новой сотней строк кода компиляция идет медленней?
        В игре создается больше оружия, больше диалогов, больше меню, больше etc.
        Одна из самых главных проблем, возникающих в связи с нововведениями — поддерживать бессчетное множество оружия и бейджиков довольно сложное занятие.
        В ситуации, когда просьба друга/босса/напарника изменить диалог или добавить новый вид оружия занимает слишком много времени, приходится прибегать к каким-то мерам — например, записи всей этой фигни в отдельные текстовые файлы.
        Почти каждый геймдевелопер когда-нибудь делал карту уровней или диалоги в отдельном текстовом файле и потом их считывал. Взять хотя бы простейший вариант — олимпиадные задачи по информатике с файлом ввода

        Но есть способ, на голову выше — использование скриптов.

        Читать дальше →
      • Использование Lua и C++ для обработки и хранения данных

        Код статьи можно посмотреть здесь.
        Чем так хорош Lua?

        Когда-то я разрабатывал свою игру и задался вопросом: а какой формат данных лучше использовать для конфигурационных файлов?
        Ведь удобно, когда создаёшь какой-либо объект, задавать различные начальные параметры не в самом коде, а в отдельных файлах. Это позволяет изменять некоторые параметры объектов без рекомпиляции, да и вообще даёт возможность менять их людям далёким от программирования.
        Разработчики используют разные форматы: одни используют JSON, другие — XML, либо другие форматы данных. Ну а некоторые вообще хранят данные в .txt файлах или пишут свои парсеры. После рассмотрения различных форматов я остановился на Lua.

        Lua можно использовать не только для игр, но и вообще для любых программ, которые используют данные, хранящиеся в других файлах.

        Вот, что выделяет Lua на фоне других форматов:
        • Lua легко использовать без дополнительных зависимостей (кроме одной библиотеки Lua и трёх .h файлов).
        • В Lua файлах данные можно инициализировать с помощью математических выражений или функций, написанных на Lua. Например:
          some_variable = math.sqrt(2) * 2
          some_variable2 = 64 * 16 - 32
          

        • Lua — очень быстрый язык, который к тому же не занимает много памяти.
        • У Lua лицензия MIT, которая позволяет использовать этот язык как в бесплатных, так и в коммерческих проектах, причём без всякой возни с бумагами. Как написано на сайте: «просто скачайте и пользуйтесь».
        • Lua комплируется практически везде, т.к. он написан на чистом C без использования дополнительных библиотек.
        • Данные можно хранить и сортировать в приятном глазу виде. Их легко читать и модифицировать в любом текстовом редакторе.

        Начнём с простого примера, а затем я перейду к реализации класса.
        Читать дальше →
      • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

        Подробнее
        Реклама
      • Опять XMP тэги лиц. Все плохо, но это поправимо

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

        Оригинальные статьи: раз и два.

        Все там написано хорошо и правильно, но счастья все равно нет.

        Картинка для привлечения внимания:


        Задача простая — отметить людей на фотографии и иметь возможность пользоваться этим в максимальном количестве мест любым удобным для меня способом.

        Лица отмечать буду в пикасе, потому как привязка к гугловским контактам, кроссплатформенность, авто определение, хранение тегов внутри файла (с нюансами). А вот смотреть и использовать эти теги хочу везде в gallery3 потому что она это умеет, в lightroom потому что именно им пользуюсь как каталогизатором, в microsoft explorer потому как он у меня есть и в Microsoft Live Photo Gallery, просто потому что это второй популярный формат и почему бы и его тоже не использовать.

        Кто тоже хочет заморочиться — добро пожаловать под кат.
        Читать дальше →
        • +14
        • 6,8k
        • 6
      • Создание несложного бота для WoW, программирование маршрутов

        Введение


        Прочитал недавно пост, в котором автор рассказал о своём боте для торговли на аукционе в игре World of Warcraft. Его персонаж бегал челноком на небольшие расстояния и выполнял конкретные действия, строго заданные в управляющей программе. Воспользовавшись его идеями, я решил пойти немного дальше: пусть персонаж будет способен бегать по маршруту длительностью хотя бы пять минут, при этом должна быть возможность записывать маршрут и выполняемые действия извне, не прибегая к изменению самой программы управления. Описанное мной является развитием поста-оригинала, тем не менее я постарался, чтобы его чтение не было обязательным.
        В посте я опишу
        1. Процесс создания тривиального аддона для пользовательского интерфейса WoW на языке Lua
          • Сериализация данных для передачи между частями системы
          • Передача с помощью цвета пикселей
        2. Процесс управления персонажем на языке AutoIt
          • Программа для записи выполняемых действий
          • Программа для воспроизведения
          • Мат.расчеты направления перемещения
          • Почему не стоит прибегать к чтению/записи памяти процесса
        3. Программа управления (ро)ботом с командами, понятными непрограммисту

        Читать дальше →
      • Lua за 15 минут

          image

          Для всех, кто хотел разобраться с Lua (скриптовый язык для разработки игр и не только, список), но никак не находил времени, Tyler Neylon приготовил небольшой подарок:

          http://tylerneylon.com/a/learn-lua/

          Посвящается всем, кто предпочитает один большой список из говорящих самих за себя сниппетов кода (с небольшими комментариями к 95% case'ов) длинным мануалам с огромной иерархией. Очень удобно для тех, кто уже умеет программировать и просто хотел бы разобраться с новым для себя языком. Весь «мега-сниппет» на английском, но примеры несложно читаются.

          P.S. А для всего остального есть Hyperpolyglot.
        • Классы в lua, или избавляемся от двоеточия

            Как всем известно, в lua нет как таковых классов и объектов. Однако есть метатаблицы и синтаксический сахар.
            С помощью указанных механизмов достаточно просто реализовать подобие классов.
            В итоге и получается нечто такое:
            Самый простой класс
            local MyClass = {} -- the table representing the class, which will double as the metatable for the instances
            MyClass.__index = MyClass -- failed table lookups on the instances should fallback to the class table, to get methods
            
            -- syntax equivalent to "MyClass.new = function..."
            function MyClass.new(init)
              local self = setmetatable({}, MyClass)
              self.value = init
              return self
            end
            
            function MyClass.set_value(self, newval)
              self.value = newval
            end
            
            function MyClass.get_value(self)
              return self.value
            end
            
            local i = MyClass.new(5)
            -- tbl:name(arg) is a shortcut for tbl.name(tbl, arg), except tbl is evaluated only once
            print(i:get_value()) --> 5
            i:set_value(6)
            print(i:get_value()) --> 6
            

            (взято с lua-users.org/wiki/ObjectOrientationTutorial)

            Всё это конечно хорошо, даже при определённой сноровке можно реализовать наследование…
            Но где public и private члены класса? Дефакто в этом примере они все public. Да ещё и надо помнить, где использовать двоеточие:
            MyClass:myFunc()
            

            а где просто одну точку:
            MyClass.myOtherFunc()
            

            А статические члены класса? Неужели придётся отказываться?
            Вот я и не захотел отказываться, и начал колхозить...
          Самое читаемое