• Создание игры на Lua и LÖVE — 3

    • Перевод
    • Tutorial
    image

    Оглавление


    • Статья 1
      • Часть 1. Игровой цикл
      • Часть 2. Библиотеки
      • Часть 3. Комнаты и области
      • Часть 4. Упражнения
    • Статья 2
      • Часть 5. Основы игры
      • Часть 6. Основы класса Player
    • Статья 3
      • Часть 7. Параметры и атаки игрока
      • Часть 8. Враги
    • Статья 4
      • Часть 9. Режиссёр и игровой цикл
      • Часть 10. Практики написания кода
      • Часть 11. Пассивные навыки
    • Статья 5
      • Часть 12. Другие пассивные навыки

    13. Skill Tree

    14. Console

    15. Final

    Часть 7: Параметры и атаки игрока


    Введение


    В этой части мы больше сосредоточимся на части геймплея, относящейся к игроку. Сначала мы добавим самые фундаментальные параметры: боеприпасы, ускорение, здоровье (HP) и очки навыков. Эти параметры будут использоваться на протяжении всей игры и они являются основными параметрами, которые будет использовать игрок для выполнения всех доступных ему действий. После этого мы перейдём к созданию объектов Resource, то есть объектов, которые может собирать игрок. В них содержатся вышеупомянутые параметры. И наконец после этого мы добавим систему атак, а также несколько разных атак игрока.
    Читать дальше →
  • Создание игры на Lua и LÖVE — 2

    • Перевод
    • Tutorial
    image

    Оглавление


    • Статья 1
      • Часть 1. Игровой цикл
      • Часть 2. Библиотеки
      • Часть 3. Комнаты и области
      • Часть 4. Упражнения
    • Статья 2
      • Часть 5. Основы игры
      • Часть 6. Основы класса Player
    • Статья 3
      • Часть 7. Параметры и атаки игрока
      • Часть 8. Враги
    • Статья 4
      • Часть 9. Режиссёр и игровой цикл
      • Часть 10. Практики написания кода
      • Часть 11. Пассивные навыки
    • Статья 5
      • Часть 12. Другие пассивные навыки

    13. Skill Tree

    14. Console

    15. Final

    Часть 5: Основы игры


    Введение


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

    Структура игрового процесса


    Сама игра разделена всего на три отдельных комнаты: Stage, Console и SkillTree.

    В комнате Stage происходит весь игровой процесс. В ней находятся такие объекты, как игрок, враги, снаряды, ресурсы, бонусы и так далее. Игровой процесс очень похож на Bit Blaster XL и на самом деле достаточно прост. Я выбрал такой простой геймплей, потому что он позволит мне сосредоточиться на другом аспекте игры (огромном дереве навыков).
    Читать дальше →
  • Создание игры на Lua и LÖVE — 1

    • Перевод
    • Tutorial
    image

    Введение


    В этой серии туториалов мы рассмотрим создание завершённой игры с помощью Lua и LÖVE. Туториал предназначен для программистов, имеющих некоторый опыт, но только начинающих осваивать разработку игр, или для разработчиков игр, уже имевших опыт работы с другими языками или фреймворками, но желающими лучше узнать Lua или LÖVE.

    Создаваемая нами игра будет сочетанием Bit Blaster XL и дерева пассивных навыков Path of Exile. Она достаточно проста, чтобы можно было рассмотреть её в нескольких статьях, не очень больших по объёму, но содержащих слишком большой объём знаний для новичка.

    GIF

    Кроме того, туториал имеет уровень сложности, не раскрываемый в большинстве туториалов по созданию игр. Большинство проблем, возникающих у новичков в разработке игр, связано с масштабом проекта. Обычно советуют начинать с малого и постепенно расширять объём. Хотя это и неплохая идея, но если вас интересуют такие проекты, которые никак нельзя сделать меньше, то в Интернете довольно мало ресурсов, способных вам помочь в решении встречаемых задач.

    Что касается меня, то я всегда интересовался созданием игр со множеством предметов/пассивных возможностей/навыков, поэтому когда я приступал к работе, мне было сложно найти хороший способ структурирования кода, чтобы не запутаться в нём. Надеюсь, моя серия туториалов поможет кому-нибудь в этом.
    Читать дальше →
    • +21
    • 10,6k
    • 5
  • Докеризация nginx и php на сокетах с ротацией логов

    • Tutorial
    В статье на Хабре обсуждался «docker way»(TM), который гласит: один контейнер — один процесс.
    one process per container
    Each container should have only one concern

    Decoupling applications into multiple containers makes it much easier to scale horizontally and reuse containers. For instance, a web application stack might consist of three separate containers, each with its own unique image, to manage the web application, database, and an in-memory cache in a decoupled manner.

    You may have heard that there should be “one process per container”. While this mantra has good intentions, it is not necessarily true that there should be only one operating system process per container. In addition to the fact that containers can now be spawned with an init process, some programs might spawn additional processes of their own accord. For instance, Celery can spawn multiple worker processes, or Apache might create a process per request. While “one process per container” is frequently a good rule of thumb, it is not a hard and fast rule. Use your best judgment to keep containers as clean and modular as possible.

    If containers depend on each other, you can use Docker container networks to ensure that these containers can communicate.
    Следование этому принципу при докеризации nginx чревато двумя последствиями. Настроить взаимодействие nginx и php-fpm в разных процессах через unix сокет немного сложнее, чем может показаться. И ротация логов, которая при обычной установке идет «из коробки», не может осуществляться в принципе, т.к. требует отправки сигнала USR1 nginx, для чего нужен ещё один процесс.
    Читать дальше →
  • Защита от DDoS на уровне веб-сервера

      Статистика DDoS-атак показывает неизменный рост и смещение вектора с сетевого уровня на уровень приложений.

      image

      Если у Вас есть небольшой сайт на сервере с минимальными характеристиками, то положить его можно любым вполне легальным средством стресс-тестирования. (Не рекомендую этого никому делать т.к. IP-адрес легко вычисляется и экспериментатор может влететь на возмещение ущерба.) Поэтому сайт без защиты от DDoS очень скоро будет выглядеть так же дико, как компьютер с Windows-98 без анивирусника.
      Читать дальше →
      • +22
      • 15,8k
      • 4
    • Ой, у вас баннер убежал!

      Ну. И что?
      Реклама
    • Lua. Краткое введение в метатаблицы для чайников

      • Tutorial

      На написание данной статьи меня сподвигло большое количество вопросов по метатаблицам и ООП в Lua, благо это самый сложный и проблематичный раздел у изучающих данный язык, но, так как Lua проектировалась как язык для начинающих и не-программистов и, в целом, имеет небольшой объём материала для освоения, негоже оставлять её «на потом», учитывая что с помощью метатаблиц можно творить чудеса и крайне элегантные решения заковыристых задач.
      Читать дальше →
      • +27
      • 9,9k
      • 7
    • Corona SDK — игра давилка насекомых (Crush)

        image

        Пишем простую, но весьма азартную игрушку. Игра называется Crush т.е. в ней нужно будет давить насекомых, пытаясь избежать давления Ос, так как они отнимают очки, другие насекомые добавляют очки. Все насекомые имеют различные показатели размеров, награды и скорости перемещения. На игру дается определенное время поэтому в мастерстве давления правильных зверьков вы вполне сможете посоревноваться с друзьями. Лучший результат фиксируется и сохраняется в настройках игры.
        Читать дальше →
      • Язык Lua и Corona SDK (3/3 часть)

          image

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

          • Циклические операции
          • Работа с файлами
          • Дата и время
          • Функции
          • Регулярные выражения и захваты
          • Управление случайностью
          • Математические функции
          • Бережное отношение к чужому

          Возможно кто-то не читал первые две части этой статьи им я советую начать именно с их прочтения: первая часть и вторая часть
          Читать дальше →
        Самое читаемое