-
Постов
6 -
Зарегистрирован
-
Посещение
Достижения Ryancoolround
-
История ip-gamers.net — как я пытался развивать игровой проект
Ryancoolround прокомментировал Ryancoolround запись в Портфолио
Кстати, небольшой апдейт: Я включил сайт после написания этого поста. А чего, хлеба он не просит.- 1 комментарий
-
- counter-strike source
- ip-gamers.net
-
(и ещё 20 )
C тегом:
- counter-strike source
- ip-gamers.net
- ip-home
- left 4 dead 2
- администрирование серверов
- веб-архив
- веб-разработка
- игровое сообщество
- игровые серверы
- игровые события
- игровые турниры
- игровые форумы
- история проекта
- классические игры
- локальные серверы
- люберцы
- онлайн-игры
- ретро-гейминг
- российские геймеры
- системное администрирование
- управление сообществом
- цифровое выгорание
-
Хочу поделиться с вами реальной историей из мира фриланса. Это случай, когда ты делаешь свою работу идеально, с полной отдачей, а в ответ — бесконечное «умоляю» вместо нажатия одной честной кнопки "Подтвердить задание". 📌 Предыстория Ко мне обратился заказчик по имени Максим. На тот момент у него было 1142 завершённых задания на сумму почти 240 тысяч рублей, что на первый взгляд внушало доверие. Однако я сразу заметил тревожный сигнал: 205 положительных отзывов против 340 отрицательных. Это уже говорило о токсичности и нестабильности в его взаимодействии с исполнителями. Тем не менее, я решил дать шанс: задание казалось несложным — составить мировое соглашение по фото-образцу, с признанием долга, графиком платежей по 10 тыс. рублей в месяц и стандартным деловым оформлением. Цена — всего 400 рублей. Простой, понятный запрос — так я думал на старте. Я сразу выполнил задачу: Составил документ в Word. Учёл все юридические моменты и пожелания. Отправил на проверку — в день назначения. 🕓 А дальше началось… Сначала — полное молчание. Потом, спустя сутки, от него пришло первое и абсолютно бессодержательное сообщение: «Умоляю». На следующий день — снова: «Молю», потом «Ждём», потом опять «Умоляю». И так каждый день, буквально по одному слову в сутки. Это не фигура речи — реально одно слово, максимум два, как будто он проверял, насколько долго можно морочить человеку голову, ничего не делая. Документ у него был. Он открывал его. Он подтвердил, что всё отлично, и правок не требуется. Но при этом никаких действий: ни подтверждения, ни оплаты. Я вёл себя максимально профессионально. Ни капли агрессии — только вежливые напоминания, корректная переписка, соблюдение всех норм платформы. До последнего надеялся, что это просто человек занят, и скоро всё решится. Но нет. С каждым днём становилось очевиднее — он просто играет в затяжку и издевается. 😤 Но в какой-то момент это стало просто издевательством. Человек: не платил; не утверждал работу; не говорил о правках; просто сыпал эмоциональными репликами в стиле «🥺 молю», «ещё чуть-чуть», «во вторник точно», «давайте жить дружно»... Я уже начал чувствовать, что общаюсь не с заказчиком, а с троллем, который получает удовольствие от власти над временем других. ⚖️ Финал: Арбитраж Когда истекли положенные 14 дней, я подал в арбитраж. Вся переписка была налицо. Никаких споров. Платформа приняла единственно справедливое решение: 🟢 Исполнителю — 400 рублей. 🔴 Заказчику — 0. ❗ Мои выводы и совет коллегам: 🔹 Если заказчик не платит, но пишет «умоляю» — это не клиент, а манипулятор. 🔹 Если вы всё сделали по ТЗ, не позволяйте собой помыкать. 🔹 Не бойтесь идти в арбитраж — переписка всё покажет. 🔹 Даже за 400 рублей нельзя позволять себя унижать. 🔥 Фриланс — это работа, а не милостыня. Уважайте себя. Если у вас был похожий случай — расскажите в комментариях. Давайте сделаем фриланс безопаснее для нормальных специалистов
-
- арбитраж
- опыт фрилансера
-
(и ещё 2 )
C тегом:
-
Недавно я решил освежить старую идею — интеграцию данных из SourceBans в простой PHP-проект. Год назад я уже писал этот код и выложил его на GitHub, но репозиторий всё это время был в приватном доступе. Пока у меня нет активной базы SourceBans для полноценного демо, но код полностью готов к работе и легко подключается к боевой системе. 🔧 Задача Цель была простая: Подключиться к базе SourceBans. Вытащить список активных банов. Отобразить их в виде аккуратной таблицы, желательно в тёмной теме. Показать оставшееся время бана в формате "часы:минуты". Это может пригодиться владельцам игровых серверов, которые хотят встроить подобный виджет в сайт сообщества или панель управления. 💻 Исходный код Вот пример index.php, который подключается к БД, вытаскивает нужные данные и выводит их: <?php $servername_ban = "localhost"; $username_ban = "root"; $password_ban = ""; $dbname_ban = "demoban"; $conn_ban = new mysqli($servername_ban, $username_ban, $password_ban, $dbname_ban); $conn_ban->set_charset("utf8mb4"); if ($conn_ban->connect_error) { die("Connection to ban database failed: " . $conn_ban->connect_error); } function formatDateTimeFromTimestamp($timestamp) { return date("d.m.Y H:i", $timestamp); } function timeRemaining($endDate) { $now = time(); $diff = $endDate - $now; $hours = floor($diff / 3600); $minutes = floor(($diff % 3600) / 60); return "$hours:$minutes"; } $sql = "SELECT authid AS 'SteamID', name AS 'ник', created AS 'дата бана', ends AS 'дата окончания бана', length AS 'длительность', reason AS 'причина' FROM sb_bans WHERE ends > UNIX_TIMESTAMP() ORDER BY created DESC"; $result = $conn_ban->query($sql); if ($result && $result->num_rows > 0) { echo "<table><tr><th>SteamID</th><th>Ник</th><th>Дата бана</th><th>Дата окончания</th><th>Оставшееся время</th><th>Причина</th></tr>"; while($row = $result->fetch_assoc()) { echo "<tr><td>{$row["SteamID"]}</td><td>{$row["ник"]}</td><td>" . formatDateTimeFromTimestamp($row["дата бана"]) . "</td><td>" . formatDateTimeFromTimestamp($row["дата окончания бана"]) . "</td><td>" . timeRemaining($row["дата окончания бана"]) . "</td><td>{$row["причина"]}</td></tr>"; } echo "</table>"; } else { echo "Нет активных банов или ошибка запроса."; } $conn_ban->close(); ?> Фронтенд-часть тоже проста и понятна — подключаем CSS и определяем тёмную тему: <head> <link rel="stylesheet" href="css/style.css"> </head> И сам файл style.css: :root { --main-background-color: #44515e; --text-color: #ffffff; --link-color: #4aa0e6; } table { width: 100%; border-collapse: collapse; margin-top: 20px; color: var(--text-color); } th { background-color: var(--main-background-color); color: var(--text-color); font-weight: bold; padding: 10px; text-align: left; } tr:nth-child(odd) { background-color: #333333; } tr:nth-child(even) { background-color: #2d2d2d; } td { padding: 10px; border: 1px solid #444444; } 📌 Что важно учитывать Данный скрипт не требует авторизации, он показывает публично активные баны. Код рассчитан на работу с базой SourceBans Classic (sb_bans), но легко адаптируется под SourceBans++, если структура схожая. Можно улучшить: добавить пагинацию, сделать сортировку по столбцам через JavaScript, реализовать фильтрацию по SteamID или нику. Всё написано на чистом PHP + MySQLi, так что подойдёт даже для серверов с минимальной нагрузкой и ресурсами. ❌ Почему сейчас нет демо? Я бы с радостью выложил работающий пример с живыми данными, но на данный момент у меня нет установленной базы SourceBans — на домашнем сервере всё занято другими задачами (Astra/Ubuntu, мониторинг, веб-сайты и т.д.). Но как только появится окно — разверну тестовый сервер и покажу live-демо прямо на одном из своих доменов, например, z1z.org или ip-gamers.net. 🧩 Куда двигаться дальше? Если вам это интересно, то в принципе можно: Подключить Steam Web API, чтобы отображать аватарки и ссылки на профили игроков. Сортировать и фильтровать таблицу прямо в браузере. Перевести проект на AJAX, чтобы обновлять данные без перезагрузки страницы. Сделать полноценную панель администрирования с просмотром истории банов. ✅ Заключение Такой простой, но наглядный скрипт — это хороший способ интегрировать SourceBans в любой сайт. Он легко адаптируется под твои нужды и не требует установки фреймворков. Если ты админ игрового проекта — обязательно попробуй внедрить! Если тебе нужна помощь с установкой SourceBans или написанием дополнительных модулей — пиши, разберёмся вместе. Хочешь видеть демо на z1z.org, как только появится база SourceBans? Подпишись на обновления или просто загляни позже 😉 Да, я написал этот пост в стиле ChatGPT. С чёткой структурой, понятными абзацами, оформлением кода и даже с выводами. И кто меня осудит за это? 😎
-
- php
- sourcebans
-
(и ещё 2 )
C тегом:
-
Ryancoolround изменил фотографию своего профиля
-
Ryancoolround присоединился к сообществу
-
История ip-gamers.net — как я пытался развивать игровой проект
Ryancoolround опубликовал запись в Портфолио
Домен ip-gamers.net появился ещё в 2009 году и изначально был привязан к игровому сообществу провайдера IP-Home из города Люберцы. В те годы основная идея сайта заключалась в создании комфортного пространства для местных геймеров — клиентов провайдера, которые могли не только общаться, но и играть вместе на собственных игровых серверах. Проект представлял собой: Форум, где пользователи обменивались опытом, обсуждали игры, делились советами и новостями. Это был один из немногих специализированных русскоязычных игровых форумов в регионе;Набор игровых серверов для популярных на тот момент игр, которые обеспечивали низкий пинг и стабильную работу благодаря размещению серверов в инфраструктуре провайдера IP-Home. Основной упор делался на командные шутеры и кооперативные игры — чтобы игроки из Люберец и ближайших городов могли собираться вместе и наслаждаться игрой без лагов и разрывов соединения;Таким образом, ip-gamers.net стал локальной площадкой для организации игровых сессий и общения внутри комьюнити провайдера IP-Home — именно это делало ресурс востребованным и уникальным для своего времени и региона. В 2021 году я стал владельцем этого домена и решил не менять направление, а продолжить и развить его уже в современных условиях, сосредоточившись на игровом сообществе вокруг классических командных шутеров — Counter-Strike: Source и Left 4 Dead 2. Что было до меня и как я пытался развивать проект — история про «старую лопату в эпоху комбайнов»В 2021 году, когда я взял управление над доменом ip-gamers.net, честно скажу — я пришёл туда с классическим набором инструментов, которые отлично работали в нулевых и начале 2010-х: форум и собственные игровые серверы по Counter-Strike: Source и Left 4 Dead 2. Другими словами, я пришёл со старой лопатой в мир, где уже давно нужны были комбайны. Форумы уже почти вымерли, современные геймеры предпочитают живое общение в Discord, Telegram и других платформах, где всё более динамично, быстро и удобно. Сообщество стало меняться, и моя классическая идея — держать игроков на форуме и через серверы — выглядела, по сути, архаикой. Можно сказать, что я пытался выкопать ручной лопатой поле, где остальные уже ездили на мощных тракторах. Конечно, это усложняло задачу — нужно было не просто держать серверы, но и пытаться заинтересовать людей в условиях, когда тренды и технологии ушли далеко вперёд. Но я не сдавался — сохранил верность старой школе, поставил акцент на стабильности серверов и техническом качестве, надеясь, что где-то найдётся аудитория, которая оценит такой подход. Мои идеи и задачи после 2021 года — консервативный подход в мире новых технологийВзяв управление ip-gamers.net в 2021 году, я честно не переосмыслил свои методы и решил продолжать делать то, что знал и умел — создать и поддерживать игровые серверы для CS:S и L4D2, формировать комьюнити через классический форум, чат и социальные сети, устраивать регулярные ивенты и писать гайды для новичков. Можно сказать, что мой подход был довольно консервативным и даже маргинальным — я упорно играл по старым правилам в мире, где уже вовсю доминировали Discord-сообщества, стриминговые платформы и новые форматы взаимодействия. Я не пытался внедрять современные «комбайны» для привлечения массовой аудитории и адаптироваться под быстро меняющиеся тренды. Тем не менее, несмотря на всю консервативность моего подхода, мне удалось сформировать хоть и небольшую, но стабильную часть комьюнити — настоящих людей, которые ценили привычный и проверенный формат общения и игры на моих серверах. Это было не всегда просто — у меня бывали странные загоны и нервные срывы, когда казалось, что всё идёт наперекосяк, и проект вот-вот загнётся. Иногда я слишком остро воспринимал критику или падение активности, накручивал себя по пустякам и реагировал эмоционально. Интересно, что даже с такими перипетиями, а может быть и во многом благодаря им, комьюнити продолжало жить. В спорах, в скандалах, в обычном общении на форуме и в голосовых чатах рождалась особая атмосфера — искренность, неформальность и близость, которых редко встретишь в больших и отлаженных проектах. Можно сказать, что этот небольшой клуб по интересам стал чем-то вроде островка «старой школы» — с живыми эмоциями, резкими мнениями и настоящими людьми, которые не просто играли, а жили этим проектом, вместе проходили через взлёты и падения. Итог — завершение проекта и уроки на будущееip-gamers.net стал для меня не просто сайтом или игровым ресурсом, а важным личным проектом, в котором я смог соединить свои технические навыки с любовью к играм и общению. Это было пространство, где я учился создавать и поддерживать комьюнити, работать с игровыми серверами, развивать веб-инструменты и справляться с вызовами, которые всегда возникают при управлении живым проектом. Однако со временем я столкнулся с так называемым цифровым выгоранием — эмоциональным и энергетическим истощением от постоянного администрирования, поддержки и попыток удержать интерес аудитории. Проект перестал приносить радость и стал скорее рутиной, а финансово — абсолютно никак не окупался. В итоге я принял трудное решение — выключить сайт, прекратить оплачивать игровые серверы и дать проекту возможность естественно завершиться. Несмотря на это, ip-gamers.net навсегда останется моей основой, моим эталоном. Это именно тот проект, на котором я отточил навыки и получил ценный опыт, который сейчас помогает мне решать задачи. ip-gamers.net — это моя стартовая площадка, с которой началась более серьёзная и осознанная работа, и я благодарен ему за все уроки и моменты, которые он мне подарил. Сохранённое наследие — доступ к сайту через Веб-архивХотя сам проект ip-gamers.net сегодня уже не активен, его история и внешний вид сохранились благодаря сервису Веб-архив. По этой ссылке — https://web.archive.org/web/20230601151644/https://ip-gamers.net/ — можно увидеть, как выглядел сайт на одном из этапов его работы в 2023 году. Это позволяет не просто вспомнить дизайн и структуру ресурса, но и почувствовать атмосферу проекта, которая жила на страницах сайта, а также оценить масштаб и функциональность, которые я смог реализовать в рамках этого дела. Веб-архив — своего рода цифровая хроника, благодаря которой ip-gamers.net продолжает жить в памяти и доступен для просмотра даже спустя годы после завершения проекта.- 1 комментарий
-
- counter-strike source
- ip-gamers.net
-
(и ещё 20 )
C тегом:
- counter-strike source
- ip-gamers.net
- ip-home
- left 4 dead 2
- администрирование серверов
- веб-архив
- веб-разработка
- игровое сообщество
- игровые серверы
- игровые события
- игровые турниры
- игровые форумы
- история проекта
- классические игры
- локальные серверы
- люберцы
- онлайн-игры
- ретро-гейминг
- российские геймеры
- системное администрирование
- управление сообществом
- цифровое выгорание
-
Мой путь начался с фан-сайта о актере Когда еще жили динозавры, где-то в промежутке между 2009 и 2012 годами, я сделал то, что сегодня вспоминаю с удивительной теплотой и, пожалуй, гордостью. Я запустил свой первый «настоящий» сайт — hutcherson.ru, первый в Рунете полноценный фан-сайт, посвящённый актёру Джошу Хатчерсону. Почему именно Джош? Тогда его слава только начала набирать обороты. Кто-то знал его по «Мосту в Терабитию», кто-то — по «Путешествию к центру Земли», но по-настоящему массово он выстрелил после выхода «Голодных игр». Я не просто смотрел фильмы с ним — я читал интервью, искал факты, собирал фото и видео, переводил зарубежные статьи и строил вокруг всего этого полноценное фан-сообщество. Как всё выглядело Сайт был на uCoz, потому что на тот момент это был самый доступный и удобный способ создать нечто живое, без необходимости поднимать хостинг, писать бэкенд или возиться с БД. На деле, это был своеобразный конструктор со встроенным форумом, галереями, плеерами, гостевыми книгами и даже системой регистрации. Дизайн я рисовал под вдохновением с сайта lost-abc.ru. Тогда была мода на такие «темные», графически перегруженные шаблоны — с бликами, полосками, градиентами. Иногда я откровенно копировал, иногда дорабатывал, иногда прикручивал всякие безумные публичные скрипты — «перделки», свистопляски, чаты, опросники, анимации и музыку в фоне. Что было на сайте? Контент был богатый. Вот лишь малая часть: Новости о актере и съёмках; Его фильмография, биография, список наград; Категории по типам новостей: интервью, фото, видео, фан-арт, рейтинги фильмов, обсуждения; Встроенный форум, где шли живые обсуждения — от фильмов до событий Раздел «Фото дня» — наш аналог Pinterest; Фан-чаты, опросы, личные анкеты, конкурсы, баннерообмен и даже гостевая книга с отзывами. В какой-то момент нас было 251 зарегистрированных пользователей, и это казалось мне целым городом. Как всё закончилось? На самом деле — никак. Сайт просто затих. Не было ни пафосного закрытия, ни прощального поста. Я вырос, сменились интересы, сменился круг общения. Я начал уходить в администрирование серверов, сайты на PHP, CMS, open-source. Данная тематика для меня просто перестала быть актуальной. Но hutcherson.ru остался в моей голове как первый серьёзный проект, где я: научился работать с админкой; писать и форматировать тексты; управлять контентом и сообществом; разбираться в дизайне, HTML и даже немного JavaScript. Что осталось? Только архив на Web Archive: 🔗 https://web.archive.org/web/20120730085259/http://hutcherson.ru/ И воспоминания. О том, как это было — открыть свою первую фан-зону, жить контентом, ждать комментариев, видеть, как форум оживает от новых пользователей. Что дальше? А дальше начался новый путь — во владение доменами, в работу на полноценных CMS и администрирование серверов. Но где-то глубоко внутри всегда живёт тот самый пацан, который создавал сайты про актеров и вручную рисовал баннеры для кнопкообмена.
-
- ucoz
- архив сайтов
-
(и ещё 2 )
C тегом: