Pull to refresh
7
0

Пользователь

Send message

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

Reading time19 min
Views3.8K
image

Оглавление

Оглавление


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

14. Console

15. Final

Часть 13: Дерево навыков


Введение


В этой части статьи мы сосредоточимся на создании дерева навыков. Вот, как оно выглядит сейчас. Мы не будем располагать каждый узел вручную (это я оставлю в качестве упражнений), а рассмотрим всё необходимое для реализации и правильной работы дерева навыков.

Сначала мы рассмотрим способ задания каждого узла, затем узнаем, как считывать эти определения, создавать необходимые объекты и применять к игроку соответствующие пассивные навыки. Затем мы перейдём к основным объектам (узлам и связям), а потом рассмотрим сохранение и загрузку дерева. А в конце мы реализуем функционал, необходимый для того, чтобы игрок мог тратить очки навыков на узлы дерева.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments4

Онлайн, офлайн и P2P: как купить биткоин в России

Reading time4 min
Views19K


Изображение: VanityFair

В последнее время цена самой популярной криптовалюты снижалась и сегодня находится на уровнях далеких от максимумов прошлого года, когда биткоин стоил более $20 тыс. При этом, популярность криптовалют только растет — по данным Statista, число криптокошельков приближается к 25 млн. Растет и количество способов приобретения криптовалюты — сегодня речь пойдет о тех из них, что доступны пользователям из нашей страны.
Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments23

Создание мультяшного шейдера воды для веба. Часть 2

Reading time12 min
Views5.2K
В первой части мы рассмотрели настройку окружения и поверхности воды. В этой части мы придадим объектам плавучесть, добавим на поверхности линии воды и создадим линии пены с буфером глубин вокруг границ объектов, пересекающихся с поверхностью.

Чтобы сцена выглядела чуть получше, я внёс в неё небольшие изменения. Свою сцену вы можете настраивать так, как хотите, а я сделал следующее:

  • Добавил модели маяка и осьминога.
  • Добавил модель земли с цветом #FFA457.
  • Добавил камере цвет неба #6CC8FF.
  • Добавил в сцену цвет подсветки #FFC480 (эти параметры можно найти в настройках сцены).

Моя исходная сцена теперь выглядит так.

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments0

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

Reading time68 min
Views8.5K
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
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments1

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

Reading time42 min
Views5.2K
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, то есть объектов, которые может собирать игрок. В них содержатся вышеупомянутые параметры. И наконец после этого мы добавим систему атак, а также несколько разных атак игрока.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments1

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

Reading time22 min
Views4.2K
image

Оглавление

Оглавление


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

Часть 14: Консоль


Введение


В этой части мы разберём комнату Console. Консоль реализовать гораздо проще, чем всё остальное, потому что в итоге она сводится к выводу на экран текста. Вот, как это выглядит:

GIF

Комната Console будет состоять из трёх разных типов объектов: строк, строк ввода и модулей. Строки — это просто обычные цветные строки текста, отображаемые на экране. Например, в показанном выше примере ":: running BYTEPATH..." будет являться строкой. С точки зрения структуры данных это будет просто таблица, хранящая позицию строки, её текст и цвета.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments2

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

Reading time45 min
Views9.3K
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 и на самом деле достаточно прост. Я выбрал такой простой геймплей, потому что он позволит мне сосредоточиться на другом аспекте игры (огромном дереве навыков).
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments1

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

Reading time37 min
Views37K
image

Введение


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

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

GIF

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

Что касается меня, то я всегда интересовался созданием игр со множеством предметов/пассивных возможностей/навыков, поэтому когда я приступал к работе, мне было сложно найти хороший способ структурирования кода, чтобы не запутаться в нём. Надеюсь, моя серия туториалов поможет кому-нибудь в этом.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments7

Перевод правил Ludum Dare

Reading time8 min
Views15K
image

Предисловие переводчика: до следующего, 37-го по счёту, конкурса Ludum Dare осталось меньше недели (он стартует в 05:00 утра 10 декабря по московскому времени). Я решил перевести правила, потому что в них есть много тонкостей (особенно в условиях Compo). Думаю, они будут полезны новичкам в этом популярнейшем геймджеме. Итак...

Правила Ludum Dare


Ludum Dare — это конкурс, в котором вы можете за одни выходные создать с нуля игру на заданную тему.

Темы предлагаются и выбираются сообществом. Предлагаемые темы (Theme Suggestions) принимаются в течение 5 недель до начала конкурса. Голосование за темы (Theme Voting) продолжается в течение 2 недель до конкурса.
Тема становится известной в начале конкурса.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments7

Генерирование полигональных карт для игр

Reading time24 min
Views58K
Я хотел научиться генерировать интересные игровые карты, которые не обязательно были бы реалистичными, а также попробовать техники, с которыми раньше не работал. Обычно я создаю карты с другой структурой. Что можно сделать с тысячей полигонов вместо миллиона тайлов? Отчётливо различимые игроком области могут быть полезны для геймплея: местоположения городов, места квестов, территории для захвата или колонизации, ориентиры, точки поиска пути, зоны с разной сложностью и т.д. Я генерировал карты с помощью полигонов, а затем растеризировал их вот в такие карты:

image

Во многих процедурных генераторах карт, в том числе и некоторых моих предыдущих проектах, для генерирования карты высот используются функции шума (midpoint displacement, фракталы, diamond-square, шум Перлина и т.д.). Здесь я их не применял. Вместо неё я использовал структуру графов для моделирования элементов, определяемых ограничениями геймплея (высота, дороги, течение рек, места квестов, типы монстров) и функции шума для моделирования того, что не ограничивается геймплеем (форма побережья, расположение рек и деревьев).
Читать дальше →
Total votes 100: ↑99 and ↓1+98
Comments11

Классические алгоритмы генерации лабиринтов. Часть 2: погружение в случайность

Reading time12 min
Views31K


Предисловие


Первая часть

Итак. Оценив отклик аудитории Хабра и разобравшись с делами, я принялся за написание второй статьи из цикла. Реакция публики оказалась значительно позитивнее моих предположений, а значит, мы продолжаем разговор на одну из любопытнейших тем процедурной генерации – создание лабиринтов.

В этой части мы поговорим о том, что же такое случайная и псевдослучайная генерации, какие алгоритмы могут дать нам равновероятно ничем не похожие друг на друга лабиринты и в чем их минусы. Героями нашего сегодняшнего приключения станут алгоритм Уилсона и алгоритм Олдоса-Бродера для создания случайного остовного дерева (Uniform Spanning Tree). ОСТОРОЖНО ТРАФИК.
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments25

Классические алгоритмы генерации лабиринтов. Часть 1: вступление

Reading time8 min
Views60K


Предисловие


На написание статьи меня сподвигло практически полное отсутствие материалов на русском языке про алгоритмы генерации лабиринтов. На Хабре, из того, что вообще есть по теме, можно отметить две статьи: раз и два. Ценность и пользу из которых несет лишь вторая. В первой – просто перевод формального алгоритма и небольшое его пояснение. Что, конечно, неплохо, но очень скудно и не вызывает желания изучать тему дальше.

Если моя статья Вам понравится, я продолжу писать о различных алгоритмах. Мы рассмотрим два самых примитивных и простых случая – генерация двоичного дерева и Сайдвиндер, который, по своей сути, просто чуть измененная версия двоичного дерева с одним заметным плюсом. ОСТОРОЖНО ТРАФИК.
Читать дальше →
Total votes 68: ↑68 and ↓0+68
Comments35

Настройка D-Link DIR-320/NRU + 3G Ростелеком R41 (Sense R41)

Reading time9 min
Views20K
В статье описывается настройка маршрутизатора «D-Link DIR-320/NRU» и модема «3G+ Ростелеком R41».

На странице поддержки маршрутизатора приведён перечень совместимых моделей модемов, и «3G+ Ростелеком R41», также известный как «Sense R41», в их число не входит. При подключении к маршрутизатору модем не определяется в интерфейсе настройки, в логах он отображается как SCSI устройство, и никаких /dev/ttyUSB* устройств не создаётся. То есть без вариантов — требуется альтернативная прошивка маршрутизатора.

Поиск в интернете показал, что данный маршрутизатор можно прошить некоторыми версиями прошивок ZyXEL Keenetic и OpenWRT. Выбор пал на OpenWRT. Наряду с пользовательскими сборками OpenWRT, включающими всё необходимое для подключения 3G модема, поддержка маршрутизатора DIR-320/NRU добавлена в основную ветку OpenWRT, начиная с ревизии 38040. Поэтому для прошивки выбрана последняя стабильная версия OpenWRT — Barrier Breaker 14.07.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments0

40 великолепных QR-кодов

Reading time1 min
Views192K
QR-коды — новый тип штрих-кодов, который содержит в себе информацию, но они выглядят смертельно скучно. Однако, благодаря талантливым дизайнерам, они могут превратиться в настоящее искусство.

image

Осторожно, под катом очень много картинок.
Читать дальше →
Total votes 92: ↑81 and ↓11+70
Comments84

Интеграция Transmission в Chromium

Reading time1 min
Views26K
imageЗдравствуйте. Сегодня хочу вам представить расширение, которое умеет интегрировать популярную торрент качалку Transmission в браузер на основе Chromium.

Изначально это был порт подобного расширения для uTorrent. Но процесс портирования api оказался настолько прост, что первая бета была сделана уже через 8 часов.

Когда я задумался над тем нужно или нет адаптировать расширение под Transmission, я просмотрел хром стор и к своему удивлению не нашел там чего-либо подобного.
Ну и кто-то же должен был это сделать.
Читать дальше →
Total votes 70: ↑69 and ↓1+68
Comments53

Мобильное приложения для управления умным домом на базе Z-Wave с помощью OpenRemote

Reading time8 min
Views84K

Не так давно был представлен Z-Wave модуль для Raspberry Pi — RaZBerry, который превращает мини-компьютер в полноценный контроллер умного дома. Управление Z-Wave сетью осуществляется с помощью web-интерфейса, использующего HTTP/JavaScript API. Используя JavaScript можно создать набор функций для автоматизации (включение/выключение света, проверка температуры, опрос датчика движения и др.), которые затем можно выполнить, послав HTTP запрос.

Продукт компании OpenRemote с одноименным названием позволяет создавать мобильные приложения для умного дома без программирования, при этом в одном приложении могут использоваться разные технологии: Z-Wave, KNX, X10, ZigBee, управление компьютером по ssh и др.

OpenRemote это сервер выполняющий любые команды и конструктор интерфейсов в котором вы создаете кнопки, переключатели, надписи и др. и этим элементам уже назначаете команды, в нашем случае это HTTP запросы на выполнение JavaScript функций на сервере Z-Wave.

Далее я по пунктам расскажу как создать пульт управления умным домом для iPhone и Android! А вот так будет выглядеть наше приложения, когда мы закончим:


Под катом много картинок.
Будет интересно!
Total votes 52: ↑50 and ↓2+48
Comments40

Видеоредактор Lightworks для Linux — Официальный релиз (Beta)

Reading time1 min
Views41K


Отличная новость для всех хабравчан, кто любит Linux и редактировать видео! В публичном доступе появился видеоредактор Lightworks для Linux! На данный момент программа имеет статус beta-версии, но по отзывам работает довольно стабильно.
Читать дальше →
Total votes 82: ↑76 and ↓6+70
Comments37

Обучение в Японии, в Киотском Университете. Начало

Reading time5 min
Views135K
Хотелось бы тоже написать о своем опыте обучения в Японии, а именно в Киотском Университете. Сразу оговорюсь, что обучение не было связано с IT, происходило это 8 лет назад, но возможно кому-то пригодиться мой опыт. Это будет вводная статья о этапе подготовки документов и прохождения отбора. Надеюсь тот, кто ездил по этой программе недавно, сможет дополнить более свежей информацией. Раньше уже был пост от об учебе в Aizu от cherepaha, так что часть информации будет пересекаться.

Как все начиналось.

Земля остыла, вымерли динозавры и в один солнечный весенний вечер, решил я посетить презентацию программ обучения в различных зарубежных странах. Организовывалось это представителями различных посольств и происходило все в Петербурге. Так я узнал о стипендии Monbukagakusho и программе стажер-исследователь поддерживаемой правительством Японии (Ministry of Education, Culture, Sports, Science and Technology). Всегда была мечта уехать в далекую экзотическую страну, также хотелось просто попробовать подать документы на обучение за границей. Я решил попробовать.
Что было дальше
Total votes 70: ↑59 and ↓11+48
Comments38

Захабренный договор на разработку сайта, дизайна, софта. Версия 1.1

Reading time18 min
Views244K
На сайте немало постов о том, какие условия нужно включать в договор на создание сайтов и программ (краткий список ниже), но нет договора в формате, который можно взять за основу для составления своего договора. Мы изучили условия из постов (спасибо авторам), подумали над ними, переработали и учли в предлагаемой на ваш суд форме договора. Так что договор пока можно считать частично «захабренным».


Договор авторского заказа
Total votes 158: ↑147 and ↓11+136
Comments124
2

Information

Rating
Does not participate
Location
США
Registered
Activity