• Как я в одиночку сделал игру и выводы

    История разработки одной фанатской компьютерной игры Fallout: The X-Project и попытки сделать из неё «конфетку»


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

    Объясню почему: сама по себе игра разрабатывалась в период с 1998 по 2008 год, а наиболее активно — где-то с 2004 по 2007. Если честно, то я и в 2005-м понимал, что будущего у игры нет. Но хотел просто её закончить. Иначе зачем столько времени и усилий потратил на проект? К тому же, я был не один, и нельзя допускать, чтобы чужие усилия были потрачены впустую. Ответственность.

    Но не будем отходить в сторону. Кому будет полезна статья? В первую очередь таким же ребятам, каким я был сам, учась в институте. Мечтателям, желающим создать свою игру мечты.
    Читать дальше →
  • Web-Оповещения в нагруженных проектах

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

      Есть несколько вариантов решения такого класса задач. Наиболее оптимальное и распространенное решение – это подписка на события. Как это реализуется в нагруженных проектах?
      Читать дальше →
    • Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженном проекте

        Аникин Денис (@danikin, Mail.Ru)


        Денис Аникин

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

        Базы данных – это хранилище, более структурированное, чем файл, и обладающее рядом некоторых фич, которых у файла нет.



        Там можно делать запросы, там есть транзакции, индексирование, таблицы, устойчивые, более-менее надежные хранилища. На самом деле, базы данных – это более удобно, чем файлы.
        Читать дальше →
      • Lua Meetup 2 сентября в офисе Mail.Ru Group



          2 сентября 2016 года в офисе Mail.Ru Group пройдёт очередной Lua Meetup — встреча, посвящённая языку программирования Lua и его экосистеме. Анонсированы два доклада (о них вы сможете подробнее прочитать под катом), но мне бы хотелось написать о другой причине, по которой на встречу нужно прийти. В мире очень много языков программирования, и новые языки появляются чуть ли не каждую неделю. Как писал классик, «все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему». Интересуясь исключительно мейнстримовыми языками программирования, мы лишаем себя ощущения контраста, и, как следствие, осознанности в выборе. Lua ни в какой мере не является «несчастливым» языком, но это однозначно язык, стоящий в стороне от мейнстрима. У Lua прекрасный синтаксис и очень легковесная реализация. Мало кто знает, что язык создан в 1993 году — настолько современно он смотрится. Что же мешает ему стать таким же популярным как Python или Go?
          Читать дальше →
        • World of Warcraft: одна строка кода, чтобы потерять все

          • Перевод


          Представьте себе ситуацию: в игре персонаж, который представился членом одной из популярных и известных гильдий, подходит к Вам и обещает редкие крутые элементы, редких животных (на которых Вы можете путешествовать) оружие и т.п. Скорее всего такой перс не имеет ни редких элементов, ни специальных кодов для них. В итоге жертва не получает правильный код или какой-либо редкий предмет. Злоумышленник смог убедить ничего не подозревающего игрока ввести всего одну команду в диалоговом окне.
          Читать дальше →
        • Вызываем Java код из Love2D

          • Tutorial

          Всем доброго времени суток!


          Возникла потребность встроить рекламу в свою игру на Love2D. Решил показывать баннер после выигрыша игрока и тут появились сложности: банер вызывается Java кодом приложения, а выигрыш определяется в Lua коде. Связывает их код на Си, туториалов, как добавлять свои методы в движок не было, и пришлось копаться в коде самостоятельно. Репозиторий Love2D для Android лежит вот тут.

          Читать дальше →
        • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

          Подробнее
          Реклама
        • Контроль качества воздуха (со2 и температуры) в офисе и дома, своими руками

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

          Для контроля качества воздуха в помещении знать температуру недостаточно. Даже с кондиционером часто бывает прохладно, но душно. Спертый воздух. Оказалось, на это больше всего влияет концентрация со2. Когда я узнал стоимость готовых приборов хотел от этой идеи отказаться. Но случайно увидел описание оптического датчика концентрации со2 MH-Z19.

          image
          Читать дальше →
        • Lua микро-фреймворк на Apache

            Лучше маленькая рыбка, чем большой таракан.
            Русская поговорка

            Lua нравится всем, он простой, но не примитивный. Нет, скорее — продуманный, выверенный, оптимальный. Р.Иерузалимски (автор языка), в своей книге «Программирование на языке Lua» пишет: «Lua — это крошечный и простой язык». Это так. И ещё он скриптовый, переносимый, эффективный, расширяемый, склеивающий (glue). Как же такой не попробовать?

            Как и многие другие, я поддался искушению заглянуть, что же из себя представляет Lua. Ну а поскольку самый лучший способ изучить язык, это написать на нём программу, я решил набросать простой веб-микрофреймворк под сервер Apache (версии 2.3+). Апач выбран потому, что он есть на каждом хостинге, и вся настройка под Lua заключается во включении модуля mod_lua.so в конфигурации сервера. Это решение конечно, будет медленнее, чем на Nginx, но возможно, нам больше и не надо?
            Читать дальше →
          • Через фильтрующий прокси при помощи скрипта во имя Луны

              Данная статья является лиш исследованием на тему и не должна использоваться как инструкция к действию.

              Блокировки продолжаются а я всё также не приветствую отдачу не шифрованного HTTP трафика в заморские прокси, Tor, анонимайзеры и включение экономии трафика в браузере. Пока есть возможность я буду пытаться ходить на сайты прямо. Заодно скорость связи с сайтом не будет зависеть от загруженности стороннего сервиса.

              Я поставил на Firefox плагин RequestPolicy и обнаружил в HTTP хедерах на сайте.
              X-Squid-Error:"403 Access Denied"
              

              Это значит что соединение к сайту проходит через прозрачный прокси.

              В этой статье я попробую пройти при помощи локального прокси написанного на Lua (Вики)

              Скачав LuaSocket 2.0.2 я написал небольшой скрипт локального прокси.

              Читать дальше →
            • Система рейтингов в высоконагруженном проекте

                Рассказ будет про один контентный проект, в котором мне пришлось переделать архитектуру. Ранее была реализована классическая Лампа-схема (Linux-Apache-MySQL-PHP). Но кол-во посетителей прибавлялось и прибавлялось, уже стало подходить к 1М хостов и сервер БД переставал справляться. Первым делом, я предложил докупить еще один серак, но в данном сегменте конвертация в партнерских программах довольно низкая, так что, руководство проекта немного пожмотилось.

                Если, интересно, как мне пришлось изменить архитектуру и при этом еще прикрутить систему ротации и рейтингов, то добро пожаловать под кат.
                Читать дальше →
              Самое читаемое