• Любовь в пикселях или что такое 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 без использования дополнительных библиотек.
    • Данные можно хранить и сортировать в приятном глазу виде. Их легко читать и модифицировать в любом текстовом редакторе.

    Начнём с простого примера, а затем я перейду к реализации класса.
    Читать дальше →
  • Опять XMP тэги лиц. Все плохо, но это поправимо

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

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

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

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


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

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

    Кто тоже хочет заморочиться — добро пожаловать под кат.
    Читать дальше →
    • +14
    • 6,7k
    • 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.
    • Реклама помогает поддерживать и развивать наши сервисы

      Подробнее
      Реклама
    • MySQL On air. Мониторим SQL запросы

      • Tutorial
      image
      Разбираясь как работает та или иная CMS приходится использовать различные инструменты, облегчающие работу.
      Наиболее интересная тема — это работа с баз(ой|ами) данных. Естественно для изучения запросов и результатов запросов нужно использовать что-то универсальное. Что-то, что будет работать стабильно как с известным движком, так и с самописной системой.
      Предположим у вас оказалась система управления контентом и вам необходимо посмотреть как реализовано добавление новых пользователей или смена паролей.

      Большинство инструментов позволяющих мониторить работу с БД являются платными [раз, два]. Я хотел что-то более легкое и удобное, поэтому выбрал mysql-proxy. Хотя возможности утилиты гораздо шире чем мне требуется, я опишу лишь основное. Работает как под Windows, так и под Unix системами.
      Как я это использую?
    • Учим язык, смотря сериалы: vlc + lua + stardict + wordnet + anki = l'amour

        Очень уж мне нравится смотреть сериалы, а еще я учу с их помощью языки. И если раньше я прилежно останавливал видео на непонятном месте, перематывал назад, включал субтитры и забивал незнакомые слова в Анки, то сейчас я делаю то же самое. Разве что лень заставила этот процесс автоматизировать, что привело к созданию расширения Say It Again для проигрывателя VLC со следующими особенностями:

        • Навигация по субтитрам (переход к предыдущей, следующей фразе) — клавиши y, u;
        • Сохранение слова, его транскрипции и перевода вместе с контекстом (см. скриншот) — клавиша i;
        • Функция «Еще раз»: переход к предыдущей фразе, показ субтитра и пауза — клавиша backspace;
        • Подключение любых словарей в формате Stardict (в сети лежат словари из Lingvo x3);
        • Экспорт в Anki или другую программу, понимающую файлы в формате csv;


        Say It Again screenshot


        Зачем все это нужно и как это работает?
      • Шаблоны с переменным количеством аргументов на примере обертки для Lua

        Понадобилось мне прикрутить Lua к проекту на C++. Писать обертки в ручную — лень (слишком много писать), готовые не подходили по тем или иным причинам. Решил написать свою. А потому задался вопросом, как максимально упростить интерфейс? От одной только мысли об этом в голову лезли жутчайшие конструкции из шаблонов. Так оно в последствии и оказалось, но гораздо проще, чем представлялось.

        В C++11 появились шаблоны с переменным числом аргументов, это позволяет писать шаблонные функции/классы так, как в C++03 было невозможно вовсе. Такие шаблоны сильно упрощают задачу.

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

        В итоге хотелось увидеть интерфейс близкий к следующему:

        lua.export_function(some_function);
        

        Читать дальше →
        • +19
        • 13,4k
        • 4
      • Lua: как перестать встраивать и начать жить

          Lua: как перестать встраивать и начать жить



          За Lua прочно закрепилась слава полуязыка — инструмента, который при случае можно встроить, чтобы заскриптовать приложение, написанное на компилируемом языке вроде С++. Тем не менее Lua является вполне самостоятельным языком, имеющим свой интерпретатор, возможность создания модулей, большое число библиотек, и при этом данный ЯП обладает минимальным размером среди аналогов. Проще говоря у нас есть все, чтобы создавать такие же приложения как на perl, python, и вообще любом другом распространенном языке программирования.

          Читать дальше →
        Самое читаемое