Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Испытайте захватывающие сражения Второй мировой войны: быстрые бои, огромный арсенал, настройка, танки и стратегия на разнообразных картах!

Warfare 1942 - онлайн шутер

Мультиплеер, Шутер, Мидкорные

Играть

Топ прошлой недели

  • Oskanov Oskanov 9 постов
  • Animalrescueed Animalrescueed 46 постов
  • AlexKud AlexKud 33 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
11
Undrev
6 лет назад
Лига Разработчиков Видеоигр

WORD SHOT 0.4⁠⁠

Привет! Уже в течении 6-7 месяцев, весну и всё лето, я делаю игру WORD SHOT. Её жанр можно было-бы определить как "клавиатурный тренажёр", ну или игра "по составлению слов". Простая казуалка, максимум на месяц работы, где нужно правильно писать слова на школьной доске. Но, как это часто бывает, всё пошло не по плану...

Да, последнее предложение в предыдущем абзаце было написано, конечно, для пущего драматизму. Всё идет по плану, но есть нюансы. И об этом - в очередном дневнике разработки WORD SHOT (предыдущие здесь и здесь).

3-в-1


Когда тебе интересен сам процесс разработки, время летит незаметно. К тому-же мой внутренний перфекционист часто берёт вверх и уговаривает добавить ещё одну "вот эту, очень нужную" опцию или деталь в игру, что, объективно, влияет и на сроки.


Так произошло и на этот раз. Помимо классического игрового режима Word Typing ("Печатай слова на скорость") я решил добавить в игру ещё два: Word Learning ("Изучай иностранные слова") и Word Guessing ("Разгадывай слова"). А так-же добавил поддержку мультиязычности. В каждый из игровых режимов можно сыграть на Английском, Французском, Итальянском или Русском языке. Из простого "keyboard trainer" игра превратилась в "3-in-1 word game".

Word Learning


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

Word Guessing


Идею этого игрового режима мне подсказали в отзывах, на Пикабу. Конечно, это не совсем скрамбл. Я-бы назвал это анти-кроссворд - у игрока есть набор букв, из которых нужно составить загаданное слово.

Про текущий прогресс я вкратце написал. Сейчас немного технических деталей и "подводных камней" разработки.

Defold


В качестве игрового движка для WORD SHOT я использую Defold.

Вот несколько (субъективных) пунктов, которые заинтересовали меня попробовать этот двиг для игры:

- активно развивается, хорошая поддержка, используется в серьёзном продакшене

- Lua в качестве скриптового языка

- небольшой размер результирующего файла, билд шустрый

- экспорт в win/osx/linux/html5 + мобайл

- возможность использовать сторонние расширения и модули

Минусы тоже есть, и они так-же субъективны. Например: отсутствие многих вещей "из коробки", нет экспорта на консоли, заточен под 2D мобайл (писать трёхмерный FPS на нём будет не очень просто).

Словари


У каждого игрового жанра есть тот основной тип ресурса, на производство которого тратится больше всего времени и усилий. Тайлмапы для 2D платформера, 3D модели для FPS и т.д. Для "игры в слова" - это, очевидно, словари. Каждый словарь - это обычный текстовый файл с парами "слово = перевод" в формате UTF-8. Процесс составления словарей (а их в игре на данный момент 16) скучный и рутинный. Занял довольно много времени.

Юникод


Словари в игре могут быть на очень разных языках. А это юникод. Defold использует Lua 5.1 в качестве скриптового языка. Но если задать вопрос "Поддерживает-ли Lua юникод?", то ответ будет такой: "И да, и нет". Да, потому-что внутри кавычек строковых переменных он отлично будет себя чувствовать. Нет, потому-что стандартная библиотека string его не поддерживает, и работа со строками будет не такой, как вы могли-бы ожидать:

К слову, большинство игр эта "проблема" не затронет. Но не в случае с WORD SHOT. Код игры активно работает с юникод-строками. Всё решается использованием сторонних модулей (библиотек функций):

Диакритики в языках обрабатываются нормально, поэтому слова, например, на французском можно печатать прямо на клавиатуре (конечно-же с французской раскладкой):

0.4 и 6 месяцев


Ну и пару слов в качестве промежуточного итога разработки игры за полгода. Что получилось сделать?


3 типа игры (Печать/Изучение/Разгадывание слов), 2 режима игры (Таймер и Релакс), 16 словарей (1500-1700 слов в каждом), 4 языка (Английский, Французский, Итальянский, Русский), музыка и звуки, метрики игрока (WPM, CPS, скорость печати и др.).


Спасибо всем, кто дочитал до этого момента. В качестве бонуса ) предлагаю немного размять свои мозги и решить слово-загадку 7 уровня из игры WORD SHOT. (Подсказка: "каждый программист знает это").

Следить за разработкой игры можно в соцсетях, поиграть можно на itchio (все ссылки есть в первом посте).

Показать полностью 5 2
[моё] Wordshot Gamedev Видео Инди игра Defold Lua Indiedev Иностранные языки Длиннопост
4
6
djalex
djalex
6 лет назад
Лига программистов

Опыт работы с языком Lua, Love framework⁠⁠

Написание простых программ и 2д игр на относительно низкоуровневом фреймворке


Мне движок понравился своей простотой и удобством

Писать в удобном мне стиле - используя как функциональное программирование так и ООП.

Написать свой рендерер, камеру и т.д контролируется абсолютно любой аспект кода.

Делать программу кроссплатформенной (В всех моих программах по умолчанию поддерживается Linux x64, Windows x64, Android.)

Есть популярные наборы библиотек например anim8 (https://github.com/kikito/anim8) для анимации и готовые библиотеки и модули https://love2d.org/wiki/Category:Libraries

И неплохая википедия -https://love2d.org/wiki/Main_Page


Я не являюсь специалистом высокого уровня

Я создал для себя свой игровой "движок"-"конструктор" на базе которого сделал несколько достаточно разных игр.

Одной из целей являлось воссоздать с нуля выпущенные мной игры в 1998 году на spectrum

а также сделать несколько ремейков на другие игры этой платформы.

Однако движок способен на гораздо большее.

Можно например написать приложение на андроид которое будет показывать веб страницу.

или добавить поддержку PS3 джойстиков и сплит-скрин.


А вот проект который сильно облегчает портирование на разные платформы.

https://qubodup.itch.io/startgamedev (в основном пользуюсь для Android)

к сожалению на данный момент автор забросил своё творение и оно не соответствует новым правилам Google Play насчёт 64битных бинарников, однако APK тем не менее создаются.


Чат в котором можно пообщатся на тему Love , Lua и задавать вопросы.

https://t.me/ProLua


Пример готовой игры

https://www.youtube.com/watch?v=j0Ph0UxiO28


Если заинтересовали мои проекты можете посетить страничку игры


Исходный код одной из игр.

https://github.com/dj--alex/reskue

Сразу предупреждаю я писал код для себя, он плохо читабелен.

Показать полностью 1
[моё] Lua Программирование Linux Android Видео
1
AkioSarkiz
6 лет назад

Lesson 1. Corona SDK⁠⁠

Источник с подсветкой кода: https://akiosarkiz.ru/lesson-1-corona-sdk/


Всем привет. Уже прошел приличный период времени с того момента, как я познакомился с фреймворком Corona SDK. С этого дня я запускаю мини-курс по программированию в этой среде разработки. Сразу скажу, что это не полноценный игровой движок. Вам придется писать код каждого элемента самому и вы не сможете как, например, в Unity или Godot устанавливать их сразу перетащив их в mainScene. Курс рассчитан на новичков, которые хотят быстро научиться кодить.


План

1) Информация о фреймворке

2) Платная подписка

3) Установка фреймворка

3.1) Регистрация

3.2) Скачиваем exe файл

3.3) Установка

3.4) Авторизация

3.5) Дополнительные полезные программы.

4) Hello Corona SDK

1) Информация о фреймворке


Corona — бесплатный(есть подписка платная, подробнее ниже), кроссплатформенный фреймворк, который идеально подходит для создания игр и приложений для мобильных устройств и ПК. Разрабатывайте приложения используя мощный, но легкий язык Lua, более тысячи встроенных API, широкий ассортимент плагинов и родные расширения Corona на C, C++, Obj-C, Java. Вы даже сможете тестировать свои проекты одновременно на всех устройствах с помощью инструмента Live Builds! И все это — лишь часть экосистемы Corona.


2) Платная подписка


Платная подписка дает возможность убрать с экрана приветствия логотип фреймворка, а также доступ к некоторым плагинам. Также с платной подпиской вы сможете сами писать свои плагины и размещать их в corona marketplace. Но я Вам не советую опубликовывать там свои работы из-за большой комиссии, а также ограничении вывода средств(можно выводить начиная с 50$), а заработать их там будет не так уж и просто новичку. На это все, я Вас предупредил и моя совесть чиста.


3) Установка фреймворка


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


3.1) Сначала мы заходим на сайт и регистрируемся(есть подтверждение почты). И запоминаем логин и пароль (для пункта 3.4): https://developer.coronalabs.com/user/login


3.2) После регистрации на сайте, мы переходим по другой ссылке и скачиваем сам фреймворк: https://developer.coronalabs.com/downloads/coronasdk


3.3) Потом мы устанавливаем скаченный файл. И на этом все, мы установили Corona SDK.


3.4) Запускаем наше приложение через пуск или ярлык на рабочем столе. Нас сразу любезно попросят пройти авторизацию, чтоб мы смогли получить доступ к фреймворку. Вводите свой логин и пароль. Теперь вы можете пользоваться всеми встроенными функциями фреймоврка.


3.5) В короне нет встроенного IDE(интегрированной среды разработки), поэтому нам нужно установить собственный редактор кода. Вот маленькая доля хороших редакторов:


Sublime Text 3: https://www.sublimetext.com/3

Atom: https://atom.io/

Notepad++: https://notepad-plus-plus.org/download/v7.6.3.html

4) Теперь давайте создадим классическое приложение "Hello Word", но будет здороваться не с миром, а с фреймворком "Hello Corona SDK".


Первым делом заходим в установленный нами фреймворк.


4.1) Создаем пустой проект с именем Hello Corona SDK, как показано на gif. Вы увидите, что в короне есть несколько шаблонов для создания, но мы не будем их трогать на этом уроке.

https://i.ibb.co/nkS3t8q/create-project.gif

4.2) Нажимаем Ctrl + Shift + O или в открытом эмуляторе находим вкладку File->Open in Editor. Для того, чтоб ваш файл открылся в нужно Вам редакторе, нужно файлам с расширением lua установить открытие с помощью вашего редактора. Для этого находим файл в проекте с расширением lua или создаем такой файл, после чего кликаем по нему ПКМ и выбираем свойства-->Приложение-->Ваш редактор.


После того, как вы открыли main.lua в своем редакторе, удаляем все что в нем есть и пишем следующий код:


code:

print('Hello Corona SDK')

После чего сохраняем файл и в консоли приложения Вы увидите: Hello Corona SDK


Казалось бы, все, но нет. Хоть мы и вывели строку в консоль, но в приложении ничего не изменилось. А пользователю, который будет использовать Ваше приложение, консоль будет не доступа. Потому что это инструмент разработчика. Так давайте создадим "Hello Corona SDK" на экрана смартфона! Вот код, который выполнит эту задачу:


code:


-- create object text


local text = display.newText('Hello Corona SDK', display.contentCenterX, display.contentCenterY, native.systemFont)


Пояснения к коду:


display.newText - эта стандартный API, который используется для создания текстового объекта. Ссылка на doc(#)


'Hello Corona SDK' - это первый параметр, который указывет функции какой текст нужно отобразить


display.contentCenterX и display.contentCenterX - это две константы типа int которые указывают на середину экрана по Х и У


native.systemFont - это константа, которая указывает функции, что мы хотим использовать системный шрифт


сохраняем код и видим:

4.3) На этом первый урок окончен. Если есть вопросы, то комментарии открыты.


Скачать проект с исходным кодом можно здесь:

Показать полностью 4
Corona sdk Lua Akiosarkiz Tutuorial Длиннопост
14
15
demon91rf
6 лет назад
Arduino & Pi

Проблема с работой TCP сервера на ESP-12F⁠⁠

Уважаемые члены сообщества, уже не один день ломаю голову и не могу понять в чём дело и почему возникает такая ошибка при работе программы. Насколько я понимаю ошибка возникает в 7 строке программы. Момент возникновения ошибки всё время один и тот же - при переподключении к точке доступа.

Проблема с работой TCP сервера на ESP-12F

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

Прикладываю ссылку на gist: https://gist.github.com/demon91rf/84f9407485a573f60cb4df48f9...

Показать полностью 1
[моё] Esp8266 Lua Программирование
30
59
navarro
navarro
9 лет назад
Лига Разработчиков Видеоигр

Bubble Level. Небольшой подарок поклонникам Fallout⁠⁠

Тестировал тут один движок и набросал на скорую руку уровень в стиле Pip-Boy.

Bubble Level. Небольшой подарок поклонникам Fallout
Показать полностью 1
[моё] Android Fallout Lua
35
32
EpicMorg
EpicMorg
9 лет назад

Опыт установки нейросети на домашний пк⁠⁠

Привет всем, спасибо что подписались. После прочтения поста и комментария  - интерес взыграл вверх и было решено попробовать поднять у себя на домашнем ПК одну из нейросетей по просьбам нескольких пикабушников, и, заодно, сделать перевод инструкции по отдельной просьбе @kitmouse. Мною выбрана эта нейросеть, так как в комментариях речь шла в т.ч. про неё , да и есть в наличии видеокарта с поддержкой CUDA.


"Внимание! Данный мануал в текущий момент может быть частично неактуален, если использовать самые свежие версии Дистрибутивов Linux или программного обеспечения, версии которых отличаются от тех, что указаны в посте."


Скажу сразу, я не эксперт, а красноглаз-любитель (дисклеймер) и у меня стоит для некоторых домашних дел рядом с Win10 в режиме dualboot полюбившийся LinuxMint 18-й версии, которая основана на недавно вышедшей Ubuntu 16.04. Используя, по сути, 16.04, я столкнулся с рядом трудностей. Так что, данный пост, кроме перевода мануала, будет дополнен фиксами для 16.04 систем в хронологическом порядке.


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


Не спорю, могу где-то костылять. Если так - поправьте, только скажу спасибо.


Итак, из железа имеется:

* AMD FX-8350

* 32Gb DDR3

* Nvidia GTX 980

* Linux Mint 18 x64 (на основе Ubuntu 16.04)...

Чтобы не набирать пароль от учётки после использования команды sudo в терминале - внес своего пользователя в конфиг (/etc/sudoers) это:


epicmorg ALL=(ALL) NOPASSWD:ALL

Где epicmorg - имя моей учетной записи. У вас - ваше. Это далеко не самое безопасное решение, не уверены - не делайте это.


Теперь, открыв инструкцию на гитхабе следуем шагам, как установить neural-style на Ubuntu.


Шаг 1. Установка torch7

Полная инструкция на англ - тут.


Открываем терминал от своего пользователя и пишем:

cd ~/

(переход в свой домашний каталог)

curl -s https://raw.githubusercontent.com/torch/ezinstall/master/ins... | bash

(скачивание скрипта install-deps и выполнение его в терминале bash для установки зависимостей, которые необходимы при установке torch)


У меня при установке install-deps не нашелся libqt4-core и libqt4-gui и скрипт благополучно выплюнул ошибку. Погуглив, нашел ответ на as ubuntu, что на 16.04 они именуются libqtcore4 и libqtgui4, которые поставил отдельно.

sudo apt-get install libqtcore4 libqtgui4

После чего, install-deps скрипт поставился без ошибок.


Кстати, если у вас не стоит git - поставьте его командой, а заодно и cmake:

sudo apt-get install git cmake

Настраивать в данном случае не надо, пойдет "из коробки".


Дальше нас как раз просят склонировать репозиторий torch с гитхаба:

git clone https://github.com/torch/distro.git ~/torch --recursive

После чего переходим в склонированную папку с torch и начинаем компиляцию

cd ~/torch; ./install.sh

При компилияции (выполнение install.sh) у меня вываливалась ошибка, что не найден readline.h. Ответ нашел на stackoverflow - оказывается, не хватает пакета libreadline-dev.

sudo apt-get install  libreadline-dev

После запуска install.sh еще раз - компиляция прошла успешно.


Первый скрипт устанавливал все зависимости для torch и это может занять у вас некоторое время. Второй сценарий фактически устанавливает Lua и сам torch, а также редактирует файл .bashrc так, чтобы torch добавляется в переменную $PATH.


Дальше мы должны обновить переменные окружения командой:

source ~/.bashrc

Для проверки установился ли torch выполняю комману th в консоле.

Для выхода - пишу exit, жму enter и подтверждаю выход клавишей y.


Шаг 2. Установка loadcaffe

Loadcaffe - это модуль, загружающий модели Caffe в Torch. Зависит он от гугловского Protocol Buffer library. Поэтому,  сначала надо установить их:
sudo apt-get install libprotobuf-dev protobuf-compiler

После - можно спокойно установить loadcaffe:

luarocks install loadcaffe

Шаг 3. Установка самой neural-style.

Теперь нам надо скопировать репозиторий с гитхаба самой нейросети. Выполняем:

cd ~/

(переход в свой домашний каталог)

git clone clone https://github.com/jcjohnson/neural-style.git

(клонирование репозитория с neural-style)

cd neural-style

(переход в скачанную папку)


Далее нам необходимо загрузить модели предварительно обученной нейронной сети:

sh models/download_models.sh

Теперь у нас есть возможность запускать neural-style в режиме процессора с помощью команды:

th neural_style.lua -gpu -1 -print_iter 1

(В аргументе -gpu значение -1 означает, что gpu не используется. А значения от 0 и выше - нумерация установленных gpu, но про это позже).


Если все работает правильно, вы должны увидеть вывод вроде этого:

Шаг 4. Настройка CUDA.

Если у вас есть видеокарта от NVIDIA с поддержкой CUDA, то вы можете ускорить нейронную сеть.


Как верно заметил тов. @Landgraf132, можно было обойтись установкой пакета nvidia-cuda-toolkit:

sudo apt-get install nvidia-cuda-toolkit

Но я этого не знал, так что, пошел более сложным путем. А именно, с сайта nvidia скачаел run-файл для 15.04 (весит около гигабайта!) в домашнюю директорию.


Далее в терминале запускаем установку:

cd ~/

(переход в свой домашний каталог)

sudo sh cuda_7.5.18_linux.run

(запуск установщика в консольном режиме)

В файле содержатся драйверы для дисплея, CUDA toolkit и cuda samples (перимеры). На все вопросы касательно путей установки - ответил yes, кроме драйвера для дисплея (уже стоит) и CUDA sample, потому что они нам не пригодятся.

(Как показала практика,  нам нужен gcc версии 4.8 (который у меня уже стоял в системе), так как версия CUDA 7.5 совместима только с ним)


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

nvidia-smi

Шаг 5. Установка CUDA backend для torch

Все просто. В терминале выполняем:

luarocks install cutorch

потом

luarocks install cunn

Для проверки, правильно ли установилось выполняем:

th -e "require 'cutorch'; require 'cunn'; print(cutorch)"

Выпало в консоль что-то похожее как в инструкции:

Теперь можно запускать нейросеть в режиме GPU:

cd ~/neural-style

(перешли в каталог с сетью)

th neural_style.lua -gpu 0 -print_iter 1

Опять же - вывод в консоль как в инструкции.


Шаг 6. Дополнительная установка cuDNN.

Инструкция гласит:

cuDNN библиотека от NVIDIA, которая эффективно реализует многие из операций (например, свертка и объединения), которые обычно используются в глубоком обучении.

После регистрации в качестве разработчика NVIDIA, скачал необходимый архив cudnn-7.5-linux-x64-v5.1-rc.tgz в домашнюю директорию.


Распаковку и установку проводил так:

tar -xzvf cudnn-7.5-linux-x64-v5.1-rc.tgz

Копирование библиотек:

sudo cp cuda/lib64/libcudnn* /usr/local/cuda-7.*/lib64/
sudo cp cuda/include/cudnn.h /usr/local/cuda-7.*/include/

Так же мне понадобилось скопировать файлы libcudnn* в путь, который прописан у меня в переменную LD_LIBRARY_PATH. (Без этого не запускалось). Узнать путь можно сделав:

echo $LD_LIBRARY_PATH

У меня это было: /home/epicmorg/torch/install/lib

Скопировал:

sudo cp cuda/lib64/libcudnn* /home/epicmorg/torch/install/lib

После надо поставить плагин cuDNN для torch:

luarocks install cudnn

Теперь нейросеть можно использовать вместе с cuDNN:

cd ~/neural-style
th neural_style.lua -gpu 0 -backend cudnn

И да, cuDNN доступна только для режима GPU.


Теперь можно баловаться нейросетью.


Шаг 7.  Проверка на деле.

Скрипт для пробного запуска:

th neural_style.lua -gpu 0 -backend cudnn -style_image <image1.jpg> -content_image <image2.jpg>

Подставлять место image1 стиль, а image2 - фото. пути к фоткам можно указывать как полные, так и относительные.


Я взял из примера на гитхабе brad_pitt.jpg и golden_gate_starry.png.


Получилось так:

th neural_style.lua -gpu 0 -backend cudnn -style_image golden_gate_starry.png -content_image brad_pitt.jpg

Исходники:

golden_gate_starry.png

brad_pitt.jpg

Просчет шел около 3-4 минут. Результат:

Разбирать параметры запуска данной нейросети будем в следующий раз.

Показать полностью 11
Нейронные сети Linux Текст Nvidia Cuda Lua Длиннопост Ubuntu
100
Vapporo
10 лет назад

CodeCombat #2 Продолжаем изучать =)⁠⁠

[моё] Codecombat Программирование Lua Видео
3
939
Ubiquitous
Ubiquitous
10 лет назад

Через тернии к звездам, познаем искусство созидания из 0 и 1. Часть 0, введение.⁠⁠

Чем будем заниматься, с помощью чего сможем отстрелить себе ногу и немного воды о языках.
Через тернии к звездам, познаем искусство созидания из 0 и 1.  Часть 0, введение.
Показать полностью 1
[моё] Программирование Длиннопост C++ Lua Boost
249
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии