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

Скайдом

Три в ряд, Головоломки, Казуальные

Играть

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

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

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

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

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

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

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
18
batray
batray
29 дней назад
Юмор для всех и каждого

Ответ на пост «JavaScript»⁠⁠1

Ответ на пост «JavaScript» Юмор, Мемы, Странный юмор, Картинка с текстом, Javascript, Java, IT юмор, IT, Telegram (ссылка), Ответ на пост
Показать полностью 1
Юмор Мемы Странный юмор Картинка с текстом Javascript Java IT юмор IT Telegram (ссылка) Ответ на пост
4
20
KOPOBOPOTEHb
KOPOBOPOTEHb
29 дней назад
Противозачаточные шутки

Статистика никогда не врёт⁠⁠

Статистика никогда не врёт
Из сети Юмор Статистика Картинка с текстом Javascript
6
1102
archiguk
archiguk
29 дней назад
Юмор для всех и каждого
Серия M E M E L O S A U R U S

JavaScript⁠⁠1

JavaScript Юмор, Мемы, Странный юмор, Картинка с текстом, Javascript, Java, IT юмор, IT, Telegram (ссылка)

Ссылка: на источник

Юмор Мемы Странный юмор Картинка с текстом Javascript Java IT юмор IT Telegram (ссылка)
59
9
Olek.Olegovich
Olek.Olegovich
1 месяц назад
Лига Разработчиков Видеоигр
Серия RPG Maker

RPG Maker - Обновление плагина Phileas's Pointer Picture Trigger⁠⁠1

Плагин позволит вам легко сделать игровой интерфейс, паззлы, мини-игры и другое!

1/4

Команды плагина

Описание плагина

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

Плагин предоставляет команды:

  1. Назначить - назначает обработчик на один тип действия с картинкой.

  2. Удалить действие - удаляет обработчик одного действия с картинкой.

  3. Удалить все действия - удаляет все обработчики картинки.

  4. Все те же команды для глобальных триггеров (они назначаются сразу всем картинкам).

  5. Включение и выключение плагина (триггеры ставятся на паузу, но не удаляются).

    На каждый тип действия можно назначить свой обработчик, они будут работать независимо.
    Например, можно на одну картинку назначить два переключателя: на Enter и на Click.
    После удаления картинки все привязанные к её номеру триггеры тоже удаляются.

Обновление

Недавно обновил до версии 1.8.0. Теперь опционально можно задавать ID картинки через переменную.

Демо-проект

MV
MZ

Скачать

MV
MZ

Лицензия

Этот плагин распространяется по лицензии MIT.
Это означает, что вы можете свободно использовать плагин в некоммерческих и коммерческих играх и даже редактировать его.
Но обязательно укажите меня в титрах!

Совместимость

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

Каталог моих бесплатных плагинов для RPG Maker

Показать полностью 4
[моё] Плагин Разработка Программирование Javascript Gamedev Rpg maker mv RPG Maker Длиннопост
2
6
BossBoba
1 месяц назад
Лига Разработчиков Видеоигр

BobaVim — браузерная игра для изучения и тренировки движений в Vim (режимы соло и 1 на 1)⁠⁠

Всем привет,

Я только что запустил BobaVim — браузерную игру, которая помогает освоить и практиковать движения в Vim через увлекательные задания и соревнования.

Можно играть в одиночку для тренировки или соревноваться с другими игроками в режиме 1 на 1 в реальном времени. В игре есть:

  • Учебник и справочник

  • Таблица лидеров для отслеживания прогресса

  • Уровни, сфокусированные на реальных Vim-командах

Этот проект — моя небольшая дань уважения Браму Муленаару, создателю Vim. Его труд и философия вдохновили меня на создание этого инструмента для сообщества.

Я разработал игру на HTML, CSS, JavaScript и Go, и заодно многому научился — от клиентского предсказания до обработки конкуренции и многопользовательской синхронизации в реальном времени.

Ссылки:

  • Сайт игры: https://www.bobavim.com/

  • Демонстрация геймплея: https://www.youtube.com/watch?v=vrwJ3-c9ptE

Буду рад отзывам, вопросам или предложениям по улучшению!

Florent

Vim Игры Обучение Разработка Open source Браузерные игры Javascript Frontend Backend Real-time 3do Interactive Multiplayer Gamedev Инди Unity Стратегия Unreal Engine Видео YouTube Короткие видео YouTube (ссылка)
2
6
Вопрос из ленты «Эксперты»
Olek.Olegovich
Olek.Olegovich
1 месяц назад
Лига Разработчиков Видеоигр
Серия RPG Maker

RPG Maker - темы статей⁠⁠

Думаю, что вам рассказать о разработке игр на RPG Maker. В этом движке я наиболее компетентен. Что вам самим интересно? Я открыт к предложениям!

[моё] Rpg maker mv RPG Maker Gamedev Разработка Программирование Javascript Статья Обучение Образование Текст Вопрос Спроси Пикабу Короткопост
20
5
Olek.Olegovich
Olek.Olegovich
1 месяц назад
Лига Разработчиков Видеоигр
Серия RPG Maker

RPG Maker MV/MZ - Как можно в переменную взять игровое время (время, проведённое в игре) с последнего сохранения?⁠⁠

Это можно сделать с помощью команды Выполнить скрипт в событии. Ниже скрипт для MZ с комментариями.

// Для красоты вынес перевод строки времени в кол-во секунд в отдельную функцию.

function convertStringToSeconds(time) {

const array = time.split(":");

return (parseInt(array[0], 10) * 60 * 60) + (parseInt(array[1], 10) * 60) + parseInt(array[2], 10)

}

// Устанавливаем номер переменной, в которую хотим записать значение.

const varId = 1;

// Фиксируем текущее игровое время.

const currentSeconds = $gameSystem.playtime();

// Проверяем, есть ли сохранения.

if (!DataManager.isAnySavefileExists()) {

$gameVariables.setValue(varId, currentSeconds);

} else {

// Определяем индекс последнего сохранения.

const lastSaveFileId = DataManager.latestSavefileId();

// Получаем данные об этом сохранении (нам даже не нужно грузить всё сохранение).

const saveInfo = DataManager._globalInfo[lastSaveFileId];

// Вычисляем, сколько секунд игры было в последнем сохранении.

const lastSeconds = convertStringToSeconds(saveInfo.playtime);

// Вычисляем разницу.

const deltaSeconds = currentSeconds - lastSeconds;

// Записываем в переменную.

$gameVariables.setValue(varId, deltaSeconds);

}

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

Версия для MV:

function convertStringToSeconds(time) { const array = time.split(":"); return (parseInt(array[0], 10) * 60 * 60) + (parseInt(array[1], 10) * 60) + parseInt(array[2], 10) }

const varId = 1; const currentSeconds = $gameSystem.playtime();

if (!DataManager.isAnySavefileExists()) { $gameVariables.setValue(varId, currentSeconds); }

else {

const lastSaveFileId = DataManager.latestSavefileId();

const saveInfo = DataManager.loadGlobalInfo()[lastSaveFileId];

const lastSeconds = convertStringToSeconds(saveInfo.playtime);

const deltaSeconds = currentSeconds - lastSeconds;

$gameVariables.setValue(varId, deltaSeconds);

}

Если нужны какие-то данные, которых нет в информации о сохранении, придётся грузить файл сохранения. Это можно сделать так:

// Устанавливаем номер переменной, в которую хотим записать значение.

const varId = 1;

// Проверяем, есть ли сохранения.

if (!DataManager.isAnySavefileExists()) {

$gameVariables.setValue(varId, 0);

} else {

// Определяем индекс последнего сохранения.

const lastSaveFileId = DataManager.latestSavefileId();

// Получаем имя файла этого сохранения.

const saveName = DataManager.makeSavename(lastSaveFileId);

// Загружаем данные из файла.

StorageManager.loadObject(saveName).then(contents => {

// Данные в contents. Обрабатываем их, как нужно.

return 0;

});

}

На смежные и схожие вопросы могу ответить в этом треде.

Показать полностью
[моё] Разработка Gamedev Программирование Javascript RPG Maker Rpg maker mv Плагин Текст Урок Статья Обучение Гайд
0
3
Olek.Olegovich
Olek.Olegovich
1 месяц назад
Лига Разработчиков Видеоигр
Серия RPG Maker

RPG Maker MV/MZ - Добавление языковых локализаций в завершённый проект⁠⁠

Вступление

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

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

Тем не менее, иногда может потребоваться внедрить локализации в уже готовую игру.

Как-то раз я выполнил такой заказ для игры на RPG Maker MV. Вероятно, решение прокатит и на MZ. Если не сработает, напишите в этой теме.

Задача

  1. Экспортировать текст из игры в JSON.

  2. Сконвертировать JSON в XLSX и отправить получившуюся таблицу переводчику.

  3. Дождаться готового перевода в XLSX формате.

  4. Конвертировать новую таблицу в JSON и внедрить новый язык в проект.

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

Инструкция

  • Сначала нужно экспортировать текст из проекта. Я написал скрипт, который находит все диалоги (команда "Показать сообщение"), извлекает из них текст и сразу генерирует JSON-файл с нужной структурой. Вот он.

  • Этот скрипт написан на JS. Чтобы его исполнить, можно установить Node.js и запустить скрипт командой node export-localization.js

  • Можно также переписать скрипт на python, bash или другой язык и исполнить удобными вам инструментами. В принципе, скрипт несложный (даже примитивный).

  • В результате мы получим файл с таким содержимым:

{

"<тег>": "<реплика>"

}

  • Теперь забиваем в поисковик: "json to xlsx". Берём любой понравившийся сервис. Например, этот.

  • Скорее всего, мы получим таблицу с 2 строками и большим количеством столбцов. Переводчику будет неудобно работать с такой. Он ожидает 2 столбца: в одном теги, в другой - текст, который нужно перевести (переводчик либо будет редактировать этот столбец, либо добавит новый).

  • Если у вас получилось так, то просто транспонируйте получившуюся таблицу. Это можно сделать и в Esxcel, и в LibreOffice, и в Google Sheets. Не знаете, как? Поищите в интернете, это несложно (конкретная кнопка зависит от инструмента, поэтому тут не пишу, но она точно есть).

  • Отправляем таблицу переводчику, ждём перевода.

  • Теперь новый XLSX нужно конвертировать в JSON. Сначала транспонируем таблицу, чтобы у нас было 2 строки и множество столбцов.

  • Вбиваем в поисковик: "xlsx to json". Опять берём любой подходящий сервис, вроде этого. Конвертируем, получаем новый json-файл.

  • Переименовываем новый JSON-файл, как нам нужно ("en.json", "ru.json" и т.д.).

  • Вставляем в проект, добавляем язык в параметры плагина локализации (здесь конкретные действия зависят от используемого плагина).

Заключение

Возможно, это не лучший способ: придумывал его в спешке на коленке. Если у вас есть альтернативные идеи, прошу написать в этом треде.

Самое ценное в этой статье - скрипт на экспорт текста, обратите на него внимание. У DK есть инструмент, который извлекает весь текст из игры, но он не генерирует JSON-файл с нужной структурой и уникальными тегами (очень важно, чтобы теги были уникальными).

Надеюсь, мне удалось достаточно раскрыть тему, остались ли вопросы?

Показать полностью
[моё] Разработка Gamedev Программирование Javascript RPG Maker Плагин Текст Урок Статья Обучение Гайд Rpg maker mv
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии