Сообщество - ИТ-проекты пикабушников

ИТ-проекты пикабушников

741 пост 3 460 подписчиков

Популярные теги в сообществе:

Сделайте пожалуйста стирателя рекламы

Ребята, я технарь, но понимаю, что можно выключить эту долбанную рекламу где-то там в программах (настройках и тп.). Сделайте пожалуйста такую программу, весь мир вам будет платить за это деньги. В технике просто выключаешь датчик- и всё!!! У вас сложнее , но разберитесь с этим, ради бога(в бога не верю). Мне в 60 лет учить программирование уже как-то не с руки, а если выучу, то годам к 70-80 сделаю программу (если доживу). А вам весь мир будет рукоплескать (если доживёте).

0

Продолжение поста «Предлагаю проект: "Собери миллион ответов на вопросы школьников"»3

Как вы относитесь к тому, чтобы различные физ. и юр. лица создавали сайты, на каждом из которых не меньше 1000 HTML страниц (и они скачиваются в ZIP-файлах), на которых для школьников написано про людей, города и события, и они содержат разные секции, например: фильмы, игры, проекты, законы, профессии, языки и т. д.

12

Пишу сервис для общения: ускорил загрузку сообщений

Привет всем!
Ранее поделился видео, где была видна скорость загрузки истории переписки. Задержка загрузки составляла примерно пол секунды. Достаточно много 😒
Также проблемные моменты в видео были видны (передерги поля ввода при открытии чата). Можете посмотреть еще раз:

На выходных поработал над этим. Было немного интересно это исправить. У меня есть понимание как можно "ускорить" подгрузку данных, но как оно будет работать на самом деле - это нужно звать блогера-Конора или провести свой эксперимент.

В первую очередь добавил возможность отображения миниатюр медиа в истории переписки:

Пишу сервис для общения: ускорил загрузку сообщений

Да, не божественно, не круто, но как заглушка эта часть готова. Наличие медиа отображается в окне чатов 😀

А вот и улучшенный интерфейс:

  1. Убрал артефакты в поле ввода: оно меняет размер, опускает текст вниз и расширяется при открытии чата

  2. Немного доработал анимацию кнопок в правом нижнем углу окна переписки

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

Как работает быстрая подгрузка черновиков?

В первое время я полагал, что из SQLite данные будут прилетать моментально. По этой причине перенес логику получения готовых данных из базы данных. То есть SQLite возвращает все отсортировано и как надо, мне только нужно вывести на экран.
Как результат - заметные задержки. Как ни пытался ускорить, задержки есть. Похоже просто так брать и подгружать данные из БД - это неправильный путь.

Как реализовал у себя: при открытии списка чатов происходит подгрузка историй переписки. Делается это в фоне и в то время, когда пользователь видит окно чатов. По сути, при открытии чатов происходит визуализация предзагруженных данных. Для пользователя это выглядит как моментальное открытие чата. Все довольны :)

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

Показать полностью 1 1
6

Делал браузерную игру c AI и чуть не сошел с ума

Привет, Пикабу.

Меня зовут Никита. Я один, без команды и без бюджета, делаю браузерную онлайн-RPG в тёмном фэнтези — Everhall.

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

---

Кратко: это текстовая MMORPG прямо в браузере. Заходишь с или ПК, ничего качать не обязательно. Но есть лаунчер для игры с ПК .
Локации, бои, квесты, NPC, питомцы, рынок, кланы, чат — всё в одном мире с другими игроками.

Основное окно игры

Основное окно игры

Инвентарь

Инвентарь

Свой дом, да я запарился в игре можно получить свой дом, к сожалению за него тоже нужно платить)

Свой дом, да я запарился в игре можно получить свой дом, к сожалению за него тоже нужно платить)

Краткая карта для передвижения,

Краткая карта для передвижения,

Добавил рыбалочку

Добавил рыбалочку

Ну и окно боя.

Ну и окно боя.

Вообщем в игре еще куча всего проще зайти и посмотреть лично)

everhall.ru — если хотите сразу глянуть, но лучше дочитайте пару абзацев :)

---

Как всё началось

Опыта в геймдеве почти не было — энтузиазм и «а что если». Хотелось мира, который ощущается живым: ты не прыгаешь меню - подземелье - меню, а реально ходишь по карте — деревни, дороги, леса, крепости.

Со временем подключил AI как помощника в коде. Сразу честно: это не кнопка (сделай игру). Сгенерированное потом переписывается, ломается, ломается ещё раз и только потом начинает жить. Отдельные системы переделывал по 3–4 раза — на бумаге красиво, в игре — ноль.

Зато сейчас проект уже рабочий, идёт открытый бета-тест. Мне нужны не лайки, а люди, которые зайдут, поиграют и скажут, где больно.

---

Что внутри:

Персонаж — регистрация, класс, статы, прокачка. Хотел, чтобы рост ощущался постепенно, а не скачком за вечер.

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

-Питомцы — помогают в бою, есть гены, скрещивание (да, у лис тоже «яйца», не спрашивайте). Тут особенно нужен взгляд со стороны: не ломают ли они баланс и не становятся ли must-have.

-Квесты и NPC — диалоги, задания, цепочки. С момента первых постов их стало намного больше (главная линия, побочки), но тексты и логику всё ещё допиливаю.

-Мир - связанная сеть локаций, перемещение по карте, встречи с мобами.

-Лут и экип- предметы влияют на статы. Картинки на всё не натянул — ищу художника, если кто-то из вас рисует или знает кого.

Онлайн - игроки в одних локациях, чат, кланы, осады локаций (часть лута уходит в банк клана).

- Плюс рыбалка, крафт, дома, регионы — не всё успел красиво показать в одном посте.

---

**Инфраструктура для тех, кто любит копать**

-Wiki в игре — механики без простыней в постах

-Форум — обсуждения и идеи

-Баг-трекер — чтобы баги не терялись в личке

Админку для квестов/диалогов пилил сам — ~30 часов только на редактор связей, условий и наград. Скрин приложу.

---

Зачем мне вы

Сейчас нужен честный разбор, особенно от тех, кто наиграл в RPG или шарит за баланс.

Мне нормально, если напишете, что не зашло. На этом этапе

Показать полностью 7
10

Пишу сервис для общения: мои ошибки

Вернулся к работе над списком чатов:

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

Черновики - это неотправленные сообщения. Они не сохраняются на сервере (только локально), отображаются в списке чатов красным цветом с иконкой карандашика.

Кнопку возврата назад разместил в левом нижнем углу (в видео видно). Обычно пишу сообщения одной рукой, да и вообще одной рукой все делаю. Когда нужно переключаться между вкладками, то это вызывает неудобство, приходится звать на помощь вторую руку так как нопка "назад" находится в верхней части экрана. Ну или можно рисковать, тянуться все той же рукой и выронить телефон.

Мои ошибки

Ошибка №1: сюрпризы платформ.

Работа идет сразу в нескольких направлениях, забегая наперед скажу, что работал над системой подгрузки изображений и медиа. Для оптимизации сетевого трафика, все файлы дико сжимаются и за это отвыечают отдельные библиотеки.
Тут я немного сел в лужу из-за неосведомленности относительно требований, которые предьявляются к мобильным платформам. Когда разрабатывал головоломку Total Reload, то очень многие части системы выносил в отдельные библиотеки. В общем-то это обычная практика, когда разработчики не копилируют весь код в один большой кусок исполняемого файла, а бьют на разные заменяемые модули:

Total Reload

Total Reload

В разных операционных системах динамические библиотеки собираются немного по-разному, но суть примерно одна: они нормально работают и их можно использовать и я их собирал для видеоигры для Windows, Linux, OSX. Претензий к ним не было.

А вот для мобильных платформ, здравствуйте, дело обстоит иначе. Поправьте если не прав. На многих форумах пишут, что из-за проблем с безопасностью (даже для IOS, где разработчик предоставляет вообще все данные чтобы исключить угрозу вредоносного кода), использование динамических библиотек нежелательно или запрещено. Тем не менее собирать их можно, что я и делал пока не обнаружил информацию о том, что из-за этого приложение может не пройти проверку. Однозначного запрета я не нашел, но вот что говорит Google:

Услуги ВПН продавать разрешено, но рекламировать - нельзя. Собственно тут, на мой взгляд, +/- лапоть ситуация, когда можно нарваться на сюрприз. Потому пришлось прилинковать все файлы статически.

Ошибка №2: UTC0 и точность времени

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

Но это еще не все. В перове время не утвердил точность времени на сервер и клиенте. В итоге из-за этого начались проблемы связанные с получением последних обновлений с сервера. Этот момент был поправлен достаточно быстро.
Надо заметить, на клиенте время хранится в INTEGER а на сервере в Timestamp-формате базы данных. Нужно учесть этот важный момент, иначе сюрпризов не избежать.

Ошибка №3: context на сервере

Ну, тут все просто, сервер работает и без контекста хорошо. Зачем разбираться что это такое, сделаем сервер без него, а там посмотрим нужен он вообще или нет. Вроде все работает:

А потом прилетает куча проблем с висячими процессами, невозможностью отменить задачу и непонимание почему вообще этот контекст пытаются прикрутить чуть ли не к 99% операций на сервере. Контекст - важная штука, если сюрпризы не нужны, то лучше вникнуть 😂 Иначе все будет очень плохо.

Пожалуй это самые серьезные мои промахи. Ну, кроме криво спроектированной серверной системы рассылки сообщений (уже переделал).

Сейчас дорабатываю окно чатов. Выводится последнее сообщение или черновик. Помимо сообщений отправлять можно будет еще и файлы. Нужно бы научить визуализировать отправленные файлы. Этим займусь в ближайшее время.

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

Показать полностью 3
8

Сервис для общения: доработал шапку окна чатов

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

Хорошо когда есть режим отладки, можно проинспектировать поведение виджетов:

Плохо только то, что приходится перезапускать приложение для переключения визуализации режима отладки. Смена состояния визуализации отладки задается так:

debugPaintSizeEnabled = Config.debugUI_Debug;

Flutter перестраивает виджеты быстро, на лету. Но так как мне приходится работать не только над виджетами, то иногда приходится перезапускать Flutter полностью. А это долго. Кстати, еще константы, кажется, он не умеет обновлять если поменять их значения. Приходится перезапускать приложение или менять имена переменных констант (то, что сейчас называют "лайф-хак").

Тут видно размытие и плашку с названием чата:

А тут плашка с эмодзи и профилем собеседника (персональный чат):

Еще добавил интерактивную анимашку в окно пустого чата (в качестве заглушки, потом нужно будет подобрать нужную анимацию). Анимашка скачана из сети, не моя. Пока показывать не буду. Неплохо получается, даже замечательно, вроде, не тормозит 😂.

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

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

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

Показать полностью 2
6

Сервис для общения: делюсь новостями

Вчера немного "причесал" профили собеседников и механизм их синхронизации/отображения. На самом деле не все продумал, но "как-то оно уже работает" и оображается в групповом чате:

Создал "шапку/header" для окна с чатами. Туда добавил информацию/статус о собеседнике или чате. Также добавил иконки-кнопки аудио и видео-звонков. Звонки пока не работают, просто метсо для иконок выделил чтобы оценить как оно смотрится, оценить функциональность этих элементов. У пользователей также имеется статус состояния в сети и иконка эмоджи. В планах добавить возможность видеть:
1) заряд аккумулятора собеседника (полезно для понимания состояния собеседника)
2) Через что пользователь вышел в интернет: Wi-Fi или мобильная сеть

У групп тоже есть аватарка и название:

Также добавлено отображение измененных/отредактированных сообщений :

Дату редактирования поставил случайную

Дату редактирования поставил случайную

Из текущих недочетов (помимо красивого внешнего вида):
- пока не оптимизировано переключение на окно переписки, из-за этого имеются задержки в начале отображения окна и элементы появляются как в старых браузерах: сперва одни элементы, потом другие. Не сразу все вместе отрисовывается.
- не добавлено поле ввода.

Над отображением и порядком загрузки элементов будем работать позже, это некритично. А вот поле ввода нужно бы сделать как можно быстрее и научить приложение обмениваться сообщениями.

Также прокинул "Fingerprint" с клиентов на сервер. Сервер их получает и сейчас технически можно начать работать над разпознаванием разных устройств. Это необходимо для синхронизации данных между устройствами, которые подключены к одному аккаунту. То есть чтобы на телефоне и планшете у пользователя, условно, история переписки была всегда синхронизирована.

Текущая ближайшая задача - организовать обмен сообщениями.

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

Показать полностью 4

Однажды, я устал отвечать на вопрос "Что тебе подарить?"

В конце мая был у меня ДР. И так получилось, что я пригласил разных товарищей на шашлыки. Но не со всеми был хорошо знаком, там были ребята со спорта и коллеги с работы.

За неделю до выезда началось - "Что тебе подарить?". От одних, от других...
Решил составить список подарков - пришлось посидеть и повыдумывать. В какой-то момент даже спросить ИИ, что нынче есть нового в областях, которые интересны, но которыми занимаешься не профессионально, а просто для удовольствия. Мне, например, нравится вино пить и хочется чтобы это было грасиво, но о всяких пневматических штопорах и декантерах я как-то раньше не задумывался.

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

Главная фишка должна была быть - Легкость. Без регистрации, без смс - зашел, накидал своих хотелок и отправил в чат с друзьями приглашенными. Можно сразу кидать ссылки из магазинов - они должны распарситься и подтянуться картинки и наименование.
Если людей ожидается много, и подарков нужно придумать много, но свои идеи кончились, можно попросить ИИ предложить варианты по вашим увлечениям / хобби.
Ссылку можно кинуть в чат. Друзья зашли, посмотрели, отметили, что будут дарить - у других подарок закрывается как уже выбранный. Автор списка не видит кто и что отметил.

Короче, к своему ДР не успел, прикручивал ИИ и парсер ссылок, но сейчас готов показать.
Реферальные программы тоже прикрутил (чего уж скрывать) - чтобы хостинг и токены окупались хотя бы.

Вот оно, мое детище - https://podaristo.ru
Прошу потыкать уважаемое сообщество!
Многого не жду, но хотелось бы получить честную обратную связь и поддержку!
Что хорошо получилось и интересно, а что ломается (за парсер данных по ссылкам и подсказки AI переживаю), может что-то тормозит или просто отстойно выглядит.
Пишите в комменты, буду править.

Пример публичной страницы списка можно посмотреть здесь:
https://podaristo.ru/share/ka-w3l4aoow

Интерфейс редактирования списка

Интерфейс редактирования списка

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

Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества