Pull to refresh
-29
@OptimumOptionread⁠-⁠only

User

1
Subscribers
Send message

10 000 объектов за 0.083 мс: как распределить бюджет рендеринга без просадок FPS

Reading time7 min
Reach and readers6.2K

Каждый игровой инженер сталкивался с этим. У вас есть 16.67 мс на кадр (60 FPS). В сцене 10 000+ объектов: враги, частицы, тени, декали, постыффекты. Нужно решить: на что потратить бюджет, чтобы игрок видел самое важное в максимальном качестве, а FPS не проседал?

Типичные подходы и их недостатки

1. Дистанционный LOD (расстояние до камеры)

Читать далее

Один простой механизм управляет практически всем в игре Cities: Skylines

Reading time16 min
Reach and readers17K

Мне захотелось узнать, как игра Cities: Skylines обеспечивает постоянное движение, которое мы видим в растущем городе — жители ищут работу, туристы посещают достопримечательности, мусоровозы ездят по своим маршрутам, люди находят себе пары, но не смог найти почти никакой информации. Поэтому я декомпилировал игру и решил разобраться сам. Выяснилось, что почти все взаимодействия в игре выполняются через простую, изящную систему: торги, напоминающие фондовый рынок.

Читать далее

Слишком много открытых файлов: лимит Linux, который валит прод в 3 часа ночи

Level of difficultyMedium
Reading time9 min
Reach and readers12K

Когда сервис падает с too many open files, первое желание — проверить ulimit -n и поднять лимит повыше. Но в Linux эта ошибка редко сводится к одной настройке: в игру вступают файловые дескрипторы, сокеты, лимиты процесса, настройки контейнерного рантайма и поведение самого приложения.

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

Разобраться с лимитами

Прототип игры с помощью Flowith: личный опыт и ограничения AI-инструмента

Level of difficultyEasy
Reading time9 min
Reach and readers13K

Привет! На связи Антон Дятлов, инженер по защите информации в Selectel. В середине 2025 года я взялся за идею — создать простую браузерную игру к конференции Selectel Tech Day в стиле Hotline Miami, однако опыта разработки игр на JS или Java у меня не было. Тогда я начал искать онлайн-инструменты, способные на основе описания генерировать игру с музыкой и анимациями. 

На выбор было несколько кандидатов, которые высветились в поисковой строке. Sider AI оказался универсальным помощником в более простых повседневных задачах и не справился с запросом на создание игры, в Rosebud AI же, хоть он и выдал качественный результат, кредиты быстро закончились, а получить код можно было, лишь купив подписку. 

В итоге отбор прошел Flowith — ИИ, способный генерировать веб-страницы игр, графические элементы, музыку и код по текстовому описанию. Я провел серию экспериментов: сначала формулировал общие игровые концепции, а затем уточнял каждый элемент. Под катом подробно поделюсь процессом работы в Flowith, его особенностями и преимуществами, а также конечным результатом.

Под кат!

[Конспект админа] Как подружиться с DHCP и не бояться APIPA

Reading time10 min
Reach and readers137K


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


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


Немного теории и решения интересных и не очень практических задач — под катом.

Читать дальше →

MemForge2: загрузочная флешка, которая за минуту говорит — какую планку памяти менять

Level of difficultyMedium
Reading time16 min
Reach and readers25K

Сегодня собирал HP EliteDesk 8300, четыре планки DDR3 по 2 ГБ. При первой загрузке — синий экран Windows. Стандартный сценарий: сейчас полчаса вытаскивать планки по одной, перезагружаться, выяснять какая сбойная. «Танцы с бубнами», которые каждый сервисник делал тысячу раз.

Потом вспомнил, что у меня есть собственный инструмент ровно для этого. Воткнул флешку, прогон, минута — на экране большими буквами: REPLACE DIMM1, confidence HIGH. Чтобы убедиться что программа не «запоминает» слот а реально находит планку, переставил её в DIMM4. Прогон повторно — нашла её и в DIMM4, тот же серийник из SPD. Замена планки — BSOD больше нет.

Я работаю на сборке ПК — и новых, и б/у. На б/у это типичная ситуация: всё собрано, провода уложены, включаешь — синий экран на загрузке. Метод исключения работает, но это перезагрузка за перезагрузкой, глубокий вдох перед каждой, час твоего времени уходит на то, что должна была бы решить минута. Мне нужен был инструмент, который сразу показывает где проблема — без часовых прогонов и без танцев со свапами планок. Готового с такой комбинацией возможностей я не нашёл, поэтому собрал свой.

Сразу честно про авторство. Я не программист. Я сборщик. Код MemForge2 писал не я — его писал Claude (LLM от Anthropic) под мою постановку задачи. Я приходил с пониманием предметной области («нужно SPD через SMBus, серийник для гарантии, MCA‑снимок до/после, контекст в момент ошибки»), описывал что должна делать программа на конкретных кейсах со своей сборки, гонял каждую версию на реальном железе, ловил баги, возвращался с дампами и описаниями поведения. Claude писал C, разбирался с UEFI‑API, MSR‑ами, SMBus‑протоколом, SPD JEDEC‑стандартом.

Читать далее

3Sound: поиск бесплатных звуков для игр больше не боль?

Level of difficultyEasy
Reading time2 min
Reach and readers9.5K

Я — разработчик игр, и в какой-то момент заметил, что трачу на поиск звуков слишком много времени. Бесплатных звуков в интернете полно, но найти нормальные почти невозможно. Так появился 3Sound — библиотека, генератор и конвертер аудио, которых мне самому постоянно не хватало.

Читать далее

IBM PC/XT своими руками

Reading time33 min
Reach and readers30K

Отдельное спасибо Сергею Киселеву (https://www.malinov.com/) за огромную работу, которую он проделал, чтобы мы все могли найти ответы на свои вопросы про IBM PC/XT и не только.

Дальше будет очень много текста (черновик около 40 страниц). Не столько технического, сколько «научно-популярного».

Итак, IBM-PC (XT), он же IBM 5150/5160. Я здесь пишу так нестандартно через дробь, потому что принципиальной разницы между чистым PC и PC/XT нет. Это был по сути просто рестайлинг, как сказал бы автолюбитель. Добавили оперативки, обновили BIOS и OS, сделали поддержку HDD, убрали поддержку (разъем) магнитофона, заменили блок питания на более мощный. В общем, принципиальная разница только в том, какой BIOS установлен.

Сначала я хотел сделать 5150, который казался мне более простым, но когда погрузился в тему, понял, что если уж делать, то 5160. Дальше я буду для краткости называть его просто ХТ.

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

Итак, делаем ХТ. В сети не сложно найти подробное описание ХТ в виде pdf-фалов. Инженеры IBM оставили очень подробное описание, по которому можно просто собрать полностью оригинальную конструкцию. Там есть абсолютно все, включая полный листинг BIOS.

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

Читать далее

Хакинг прошивок жёстких дисков

Level of difficultyMedium
Reading time23 min
Reach and readers18K

В прошлом году я работал над эксплойтом для консоли Xbox 360 (который позже превратился в столь ожидавшийся программный мод), и мне оказалось нужно найти способ модификации прошивки HDD, чтобы обеспечить эксплойт состояние гонки. Для этого я начал пытаться модифицировать прошивки HDD и SSD разных брендов, которые у меня имелись. В этой серии постов я опишу всю проделанную мной работу, в том числе дампинг и анализ прошивки, интерактивную отладку HDD при помощи JTAG, модификацию прошивки накопителя, а также применение ИИ для анализа и идентификации неизвестной архитектуры микроконтроллеров.

В этом первом посте я расскажу о дампинге, анализе и модификации прошивок HDD. Вся работа выполнялась без помощи ИИ. В следующем посте я опишу, как использовал ИИ для выполнения похожей работы с другими HDD/SSD, а также для реверс-инжиниринга «чёрного ящика» неизвестной архитектуры набора команд, предоставив Claude доступ для отладки моего жёсткого диска.

Читать далее

«Дешевая» желтая ретро-консоль: как собрать почти полноценную игровую приставку своими руками

Level of difficultyEasy
Reading time13 min
Reach and readers20K

Возможно, вы слышали про дешёвый жёлтый дисплей, он же CYD (Cheap Yellow Display). Если нет, то это плата с ESP32, с дисплеем, жёлтая и, сюрприз, дешёвая. У платы достаточно активное сообщество, хотя готовых проектов не так уж много. Но на Instructables мне встретился один, который использует эту плату для создания ретро-консоли. При этом она получилась приятной на вид и рекомендуется самим сайтом (то есть имеет метку featured). Поэтому я сразу захотел собрать её.

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

Читать далее

htop и многое другое на пальцах

Reading time26 min
Reach and readers398K


На протяжении долгого времени я не до конца понимал htop. Я думал, что средняя загрузка [load average] в 1.0 означает, что процессор загружен на 50%, но это не совсем так. Да и потом, почему именно 1.0?

Затем я решил во всём разобраться и написать об этом. Говорят, что лучший способ научиться новому — попытаться это объяснить.
Читать дальше →

Как я сделал резервное управление дачей через Meshtastic

Level of difficultyEasy
Reading time4 min
Reach and readers21K

Обычно Meshtastic используют как мессенджер. Я применил его как резервный канал связи с удаленным объектом. 

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

И я сделал это. Как – читайте ниже.

Читать далее

Шайтан‑коробочка: Как карманная игра из 90-х научилась читать мысли людей

Level of difficultyMedium
Reading time7 min
Reach and readers15K

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

Читать далее

Локальные LLM в реальной работе: Gemma 4, Qwen 3.6 и Qwen Coder

Level of difficultyEasy
Reading time17 min
Reach and readers55K

Привет, меня зовут Вячеслав. Я интересуюсь локальными LLM и тем, как они ведут себя в реальных задачах — не на синтетических бенчмарках, а когда нужно написать работающий код, отрефакторить файл с багами или вытащить данные из HTML.

Вокруг локальных моделей сложилась странная ситуация. С одной стороны, их постоянно принижают: если это не последняя версия Opus с максимальным режимом размышления, то и пробовать не стоит. С другой — мало кто действительно разбирается, что стоит за запуском локальной модели. Поднять API через llama.cpp — это полдела. А вот как ты её запускаешь, в какой среде, с какими параметрами — эти вещи порой переворачивают результат с ног на голову. Получить плохой результат с локальной моделью на удивление легко. Получить хороший — надо попотеть.

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

Я посмотрел множество тестов на YouTube — ни один меня не устроил. Общая канва одинаковая: берут модель побольше, запускают без оглядки на оптимальность и дают задание уровня «напиши сортировку пузырьком». Серьёзно?

Я не разработчик и не кодер по профессии, но решил пойти другим путём. Тесты с подковыркой, реальная агентская среда, подбор параметров. И модели я выбрал не «чем больше, тем лучше», а те, которые реально влезают в 16 ГБ видеопамяти домашней видеокарты. Что из этого вышло — дальше по тексту.

Читать далее

Ollama 0.23: Claude Desktop теперь запускается из терминала. Без бубна

Level of difficultyEasy
Reading time3 min
Reach and readers9.8K

Заголовок звучит как что-то из разряда «хакерских трюков», но на деле это официальный релиз.

3 мая 2026 года (в мой день рождения) разработчики Ollama опубликовали версию 0.23 — и главным событием стала прямая интеграция с десктопным приложением Claude. 

Читать далее

Мобильная тумба для китайских станков. Или как разместить их в квартире

Reading time2 min
Reach and readers16K
Дамы и господа, здравствуйте!

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

И конечно же показать как это сделал я.

Речь пойдет о сварной тумбе, изюминкой которой является её мобильность — тумбу вместе со станками можно перемещать по квартире.



Данная тумба была моей первой сварной конструкцией, поэтому в некоторых местах заметны огрехи. Тумба была изготовлена в 2015г. и служит до сих пор.
Читать дальше →

Auto AI Router: высокопроизводительный прокси-роутер для LLM API на Go

Level of difficultyEasy
Reading time8 min
Reach and readers13K

Auto AI Router — лёгкий прокси-роутер на Go, который принимает запросы в формате OpenAI API и прозрачно распределяет их между несколькими провайдерами и ключами с балансировкой нагрузки, защитой от банов и контролем RPM-лимитов.

Читать далее (многобукав)

System Design: проектируем Tinder, сервис быстрых знакомств

Level of difficultyMedium
Reading time21 min
Reach and readers9.5K

Tinder — это хороший пример system design задачи, где нужно быстро формировать ленту кандидатов, учитывать геолокацию и пользовательские предпочтения, а также надёжно обрабатывать свайпы и совпадения. В статье разберём архитектуру такого сервиса и узкие места, которые появляются при росте нагрузки.

Читать далее

Как устроен Meshtastic, зачем он нужен и как я подключил его к локальной модели на ноутбуке

Level of difficultyMedium
Reading time20 min
Reach and readers31K

Практический эксперимент с Meshtastic: две Heltec ESP32 LoRa 32 V4, связь на 702 м в городской среде, разбор LoRa-настроек, ролей нод, MQTT и Python-мост к локальной LLM через Ollama.

Читать далее

Чтение на выходные: «Геймдизайн. Рецепты успеха лучших компьютерных игр» Тайнана Сильвестра

Level of difficultyEasy
Reading time4 min
Reach and readers8K

Если вы хоть раз залипали в игру до трёх ночи, а наутро не могли объяснить, почему — эта книга для вас. Если забрасывали разрекламированный блокбастер через час и не могли сформулировать, что бесит — тем более. Тайнан Сильвестр, дизайнер BioShock, написал инженерный трактат о том, как проектировать эмоции. В нём нет кода для игрового движка и советов в духе «сделайте героя быстрее». Есть система координат, в которой можно анализировать любой игровой опыт.

Первое, что он объясняет: события в игре не прописаны заранее. Они возникают сами, когда игрок взаимодействует с механикой. Сильвестр замешкался с прыжком в Super Mario Galaxy — Марио коснулся лавы, загорелся и взлетел как ракета, но игрок продолжал управлять им и вывел в безопасное место. Ничего из этого на диске нет. На диске только правила: гравитация, реакция на лаву, управление в воздухе. История родилась сама собой, когда игрок и механика встретились. Геймдизайнер, говорит Сильвестр, не пишет сценарии. Он собирает машину, которая их производит.

Эмоции в этой системе возникают, когда событие меняет человеческую ценность — переводит игрока из «невежества» в «знание», из «одиночества» в «вместе», из «опасности» в «безопасность». Это работает даже с информацией, которой у игрока нет. В хорроре вы идёте по коридору, зная, что за одной из дверей убийца. Вы ещё не умерли, не встретили его, но тревога уже есть. Потому что бессознательное просчитывает возможное будущее.

Отсюда — ключевое понятие информационного баланса. Игра не должна давать слишком мало информации, иначе игрок тыкается вслепую.

Читать далее
1
23 ...

Information

Rating
Does not participate
Registered
Activity