Ребята я это долго ждал! вот для озвучки подкаста книг и тп рекомендую:
https://microsoft.github.io/VibeVoice/
https://microsoft.github.io/VibeVoice/
D00M4ACE блог ИИ и GAMEDEV pinned «Ребята я это долго ждал! вот для озвучки подкаста книг и тп рекомендую: https://microsoft.github.io/VibeVoice/»
This media is not supported in your browser
VIEW IN TELEGRAM
🎮 Battle City Tank Game
Классические танковые сражения с видом сверху теперь доступны в браузере!
⚡️ Что внутри:
• Динамичные бои с вражескими танками под управлением ИИ
• Режим для двух игроков (кооператив против врагов)
• Система прогрессии - улучшай танк, уничтожая противников
• Разнообразные карты с уникальными препятствиями
🗺 Интерактивное окружение:
• Стальные стены, вода, лес, лед, зыбучие пески
• Конвейерные ленты, телепорты, периодические ворота
• Минные поля и отражатели снарядов
• Бонусы: щит, ускоренная перезарядка, лечение
💥 Визуальные эффекты:
Взрывы, урон числами, следы попаданий, эффекты телепортации
🛠 Разработка:
Создана в свободное время на языке C + raylib с помощью ИИ модели "claude-3-7-sonnet-20250219"
🎮 Играть онлайн: https://d00m4ace.com/games/battle_tanks/
💻 Исходный код: https://github.com/d00m4ace/mini_games
#gamedev #indiegame #battletanks #raylib #programming
Классические танковые сражения с видом сверху теперь доступны в браузере!
⚡️ Что внутри:
• Динамичные бои с вражескими танками под управлением ИИ
• Режим для двух игроков (кооператив против врагов)
• Система прогрессии - улучшай танк, уничтожая противников
• Разнообразные карты с уникальными препятствиями
🗺 Интерактивное окружение:
• Стальные стены, вода, лес, лед, зыбучие пески
• Конвейерные ленты, телепорты, периодические ворота
• Минные поля и отражатели снарядов
• Бонусы: щит, ускоренная перезарядка, лечение
💥 Визуальные эффекты:
Взрывы, урон числами, следы попаданий, эффекты телепортации
🛠 Разработка:
Создана в свободное время на языке C + raylib с помощью ИИ модели "claude-3-7-sonnet-20250219"
🎮 Играть онлайн: https://d00m4ace.com/games/battle_tanks/
💻 Исходный код: https://github.com/d00m4ace/mini_games
#gamedev #indiegame #battletanks #raylib #programming
Media is too big
VIEW IN TELEGRAM
🚀 Обновление ИИ «Спутник»!
Теперь в системе — новый агент @nethack 🤖
Он умеет:
✅ Обрабатывать документы по ссылкам из сети
✅ Работать в простом режиме «вопрос/ответ»
✅ Управлять доступом к документам
✅ Автоматически синхронизировать данные с базой (от 10 минут, настраивается)
Умнее, быстрее, удобнее! 💡
#ИИ #Спутник #Новости #Автоматизация
Теперь в системе — новый агент @nethack 🤖
Он умеет:
✅ Обрабатывать документы по ссылкам из сети
✅ Работать в простом режиме «вопрос/ответ»
✅ Управлять доступом к документам
✅ Автоматически синхронизировать данные с базой (от 10 минут, настраивается)
Умнее, быстрее, удобнее! 💡
#ИИ #Спутник #Новости #Автоматизация
Коллеги, я хотел бы лично представить проект AI Sputnik — корпоративного AI-помощника в Telegram, который создает единую базу знаний из ваших документов и онлайн-источников. Главная особенность — агент @nethack, который работает с вашими существующими документами в Google Docs/Sheets, Yandex.Wiki, порталах Confluence Cloud и других онлайн-источниках. Данные автоматически становятся доступными для поиска и запросов через ИИ, и это не система RAG; агент сам ищет подходящий документ и обрабатывает его целиком, тем самым обеспечивая получение полного ответа по всему документу. Платформа также включает в себя мощные инструменты ИИ для работы с кодом, текстом, аудио и пакетной обработкой файлов. Бот дает мгновенные ответы без обучения моделей — просто загрузите документ или подключите источник, и он готов к работе. Более подробную информацию обо всех функциях и вариантах использования вы найдете в приложенной презентации проекта. Если вам нравится идея живого доступа к корпоративным знаниям через Telegram, отправьте мне личное сообщение @d00m4ace. Мы можем организовать демо-версию, и, если вы пожелаете, я могу помочь внедрить ее в вашей компании.
D00M4ACE блог ИИ и GAMEDEV pinned «Коллеги, я хотел бы лично представить проект AI Sputnik — корпоративного AI-помощника в Telegram, который создает единую базу знаний из ваших документов и онлайн-источников. Главная особенность — агент @nethack, который работает с вашими существующими документами…»
📥 Агент @upload - Загрузчик файлов
Использование:
Примеры:
Поддерживаемые типы:
• PDF, Word, Excel, PowerPoint
• Аудио файлы (транскрипция)
• Изображения (OCR)
• Текстовые файлы и код
• HTML, JSON и XML документы
• Архивы (zip, 7z) — обрабатываются автоматически
Особенности:
• Автоматическое определение типа файла
• Поддержка загрузки по публичным ссылкам (Google Drive, Яндекс.Диск, Dropbox, GitHub)
• Конвертация документов в Markdown
• Транскрипция аудио в текст
• OCR распознавание текста на изображениях
• Распаковка архивов и сохранение содержимого
• Сохранение файлов в активную кодовую базу
• Автоматическая индексация для RAG
Ограничения:
• Максимальный размер: 100 МБ
• Протоколы: HTTP, HTTPS
• Таймаут: 60 секунд
Использование:
@upload URL - скачать и обработать файл по публичной ссылкеПримеры:
@upload https://example.com/document.pdf@upload https://site.com/audio.mp3@upload https://raw.githubusercontent.com/user/repo/main/file.py@upload https://drive.google.com/file/d/FILE_ID/view@upload https://disk.yandex.ru/d/XXXXXXПоддерживаемые типы:
• PDF, Word, Excel, PowerPoint
• Аудио файлы (транскрипция)
• Изображения (OCR)
• Текстовые файлы и код
• HTML, JSON и XML документы
• Архивы (zip, 7z) — обрабатываются автоматически
Особенности:
• Автоматическое определение типа файла
• Поддержка загрузки по публичным ссылкам (Google Drive, Яндекс.Диск, Dropbox, GitHub)
• Конвертация документов в Markdown
• Транскрипция аудио в текст
• OCR распознавание текста на изображениях
• Распаковка архивов и сохранение содержимого
• Сохранение файлов в активную кодовую базу
• Автоматическая индексация для RAG
Ограничения:
• Максимальный размер: 100 МБ
• Протоколы: HTTP, HTTPS
• Таймаут: 60 секунд
Привет всем! Я записал ряд видео того, как работает ИИ Спутник Telegram бот. Это универсальный ИИ-помощник для компаний и их сотрудников, доступный прямо в Telegram.
Агент @nethack
YT видео: https://www.youtube.com/watch?v=kz1s13YF-hA
VK видео: https://vkvideo.ru/video-233018674_456239021
@nethack - ИИ онлайн база знаний компании.
Он умеет:
✅ Обрабатывать документы по ссылкам из сети
✅ Работать в простом режиме «вопрос/ответ»
✅ Управлять доступом к документам
✅ Автоматически синхронизировать данные для ИИ
Агент @chat
YT видео: https://www.youtube.com/watch?v=jGzTqk06EU8
VK видео: https://vkvideo.ru/video-233018674_456239025
Возможности:
💬 Отправляйте текстовые сообщения для диалога
📎 Отправьте текстовый файл для добавления в контекст
📚 Управление историей чата:
• save [ID] - сохранить текущую историю
• load [ID] - загрузить сохраненную историю
• delete [ID] - удалить сохраненную историю
• rename [старый] [новый] - переименовать историю
• list - показать список сохраненных историй (до 50 чатов)
Основа работы с кодовыми базами (пример работы двух агентов @rag и @filejob)
YT видео: https://www.youtube.com/watch?v=NcJ6E4JCzmk
VK видео: https://vkvideo.ru/video-233018674_456239022
Хорошая ассоциация с обычной папкой в Windows.
Все файлы при отправки в папку автоматически конвертируются в текстовые с разметкой MarkDown.
Публичная кодовая база
YT видео: https://www.youtube.com/watch?v=qIV0ZcBxC6s
VK видео: https://vkvideo.ru/video-233018674_456239023
Доступна для работы агентов других пользователей, например @rag
Автоматическое преобразование различных типов файлов в текст и сохранение в кодовой базе
VK видео: https://www.youtube.com/watch?v=2ENHPF1mEmo
YT видео: https://vkvideo.ru/video-233018674_456239024
Поддерживаются:
• Текстовые файлы (.txt, .md, .c, .py, .js, .json, .xml и др.)
• Документы (.docx, .rtf, .odt)
• Таблицы (.xlsx, .xls, .csv)
• Презентации (.pptx, .ppt)
• PDF файлы
• HTML файлы
• Изображения (.jpg, .png, .gif и др.)
• Аудио файлы (.mp3, .wav, .ogg, .m4a и др.)
Краткое введение в AI Sputnik Телеграм-бот .pdf файл:
https://d00m4ace.com/files/ai_sputnik_telegram_bot.pdf
Агент @nethack
YT видео: https://www.youtube.com/watch?v=kz1s13YF-hA
VK видео: https://vkvideo.ru/video-233018674_456239021
@nethack - ИИ онлайн база знаний компании.
Он умеет:
✅ Обрабатывать документы по ссылкам из сети
✅ Работать в простом режиме «вопрос/ответ»
✅ Управлять доступом к документам
✅ Автоматически синхронизировать данные для ИИ
Агент @chat
YT видео: https://www.youtube.com/watch?v=jGzTqk06EU8
VK видео: https://vkvideo.ru/video-233018674_456239025
Возможности:
💬 Отправляйте текстовые сообщения для диалога
📎 Отправьте текстовый файл для добавления в контекст
📚 Управление историей чата:
• save [ID] - сохранить текущую историю
• load [ID] - загрузить сохраненную историю
• delete [ID] - удалить сохраненную историю
• rename [старый] [новый] - переименовать историю
• list - показать список сохраненных историй (до 50 чатов)
Основа работы с кодовыми базами (пример работы двух агентов @rag и @filejob)
YT видео: https://www.youtube.com/watch?v=NcJ6E4JCzmk
VK видео: https://vkvideo.ru/video-233018674_456239022
Хорошая ассоциация с обычной папкой в Windows.
Все файлы при отправки в папку автоматически конвертируются в текстовые с разметкой MarkDown.
Публичная кодовая база
YT видео: https://www.youtube.com/watch?v=qIV0ZcBxC6s
VK видео: https://vkvideo.ru/video-233018674_456239023
Доступна для работы агентов других пользователей, например @rag
Автоматическое преобразование различных типов файлов в текст и сохранение в кодовой базе
VK видео: https://www.youtube.com/watch?v=2ENHPF1mEmo
YT видео: https://vkvideo.ru/video-233018674_456239024
Поддерживаются:
• Текстовые файлы (.txt, .md, .c, .py, .js, .json, .xml и др.)
• Документы (.docx, .rtf, .odt)
• Таблицы (.xlsx, .xls, .csv)
• Презентации (.pptx, .ppt)
• PDF файлы
• HTML файлы
• Изображения (.jpg, .png, .gif и др.)
• Аудио файлы (.mp3, .wav, .ogg, .m4a и др.)
Краткое введение в AI Sputnik Телеграм-бот .pdf файл:
https://d00m4ace.com/files/ai_sputnik_telegram_bot.pdf
Полный код ИИ Спутник выкладываю как есть для ознакомления и пробного запуска самостоятельно. Обновления и доводка под организации тут отсутствуют, но базовый функционал доступен и работает.
Краткое введение в AI Sputnik Телеграм-бот .pdf файл: https://d00m4ace.com/files/ai_sputnik_telegram_bot.pdf
https://github.com/d00m4ace/AISPUTNICK?tab=readme-ov-file
Краткое введение в AI Sputnik Телеграм-бот .pdf файл: https://d00m4ace.com/files/ai_sputnik_telegram_bot.pdf
https://github.com/d00m4ace/AISPUTNICK?tab=readme-ov-file
Установка ИИ СПУТНИК С 0 на Windows 10
Видео:
- YouTube: https://www.youtube.com/watch?v=pSopZpmAJRk
- VK Видео: https://vkvideo.ru/video-233018674_456239026
полный код бота:
https://github.com/d00m4ace/AISPUTNICK
Видео:
- YouTube: https://www.youtube.com/watch?v=pSopZpmAJRk
- VK Видео: https://vkvideo.ru/video-233018674_456239026
полный код бота:
https://github.com/d00m4ace/AISPUTNICK
YouTube
Установка ИИ СПУТНИК С 0 на Windows 10
https://github.com/d00m4ace/AISPUTNICK
art_to_text.py
5 KB
🎥 Видеоинструкции по обучению LoRA моделей на базе FLUX.1-dev для игровых ассетов
📺 YouTube видео
📺 VK видео
🧠 Описание видео
Видео посвящено личному опыту обучения моделей на базе FLUX.1-dev для генерации изображений — в частности, LoRA моделей, применяемых при создании игровых ассетов.
Рассказано, как правильно подготовить датасет:
* Использовать изображения размером 1024×1024.
* Собирать наборы с разными позами персонажей или вариациями экипировки на одной картинке — это упрощает использование ассетов в играх.
⚙️ Основные рекомендации по обучению
* Использовать триггерное слово, уникальное для каждого датасета.
* Повторять обучение каждой картинки 20 раз каждые 9 эпох, чтобы избежать переобучения.
* Оптимальный размер сети — 128: хороший баланс между детализацией и размером файла.
* Сохранять модель после каждой эпохи и применять лору средней эпохи (5–6) для баланса точности и вариативности.
🧩 Практические примеры
Показаны разные типы датасетов:
* фэнтезийные персонажи;
* образы с бронёй и экипировкой;
* комикс с котиками 🐱.
Обучение датасета из 25 изображений на 9 эпох занимает примерно 5 часов на RTX 4090.
Используется скрипт для автоматической генерации описаний изображений с помощью GPT-4 Vision, что улучшает качество промптов и итоговой модели.
🎮 Кому будет полезно
Видео будет особенно интересно разработчикам игр и всем, кто хочет обучать собственные LoRA-модели под разные задачи: от игровых ассетов до стилизованных генераций.
⚡️ Дополнительно:
сборка ComfyUI портативная для FLUX.1-dev + AI Upascaling:
https://disk.360.yandex.ru/d/jU-d1BDvot1iwg
архив с Fluxgym -для обучения FLUX.1-dev LoRa:
https://disk.360.yandex.ru/d/s2P5s2TXgV2Z6w
UPDATE: Вот полная статья где разобраны все тонкости подготовки дата сета и самого обучения.
https://d00m4ace.com/posts/opyt-obuchenija-lora-modelej-na-baze-fluxdot1-dev-dlja-igrovyh-assetov-podgotovka-dataseta-i-luchshie-nastrojki/
📺 YouTube видео
📺 VK видео
🧠 Описание видео
Видео посвящено личному опыту обучения моделей на базе FLUX.1-dev для генерации изображений — в частности, LoRA моделей, применяемых при создании игровых ассетов.
Рассказано, как правильно подготовить датасет:
* Использовать изображения размером 1024×1024.
* Собирать наборы с разными позами персонажей или вариациями экипировки на одной картинке — это упрощает использование ассетов в играх.
⚙️ Основные рекомендации по обучению
* Использовать триггерное слово, уникальное для каждого датасета.
* Повторять обучение каждой картинки 20 раз каждые 9 эпох, чтобы избежать переобучения.
* Оптимальный размер сети — 128: хороший баланс между детализацией и размером файла.
* Сохранять модель после каждой эпохи и применять лору средней эпохи (5–6) для баланса точности и вариативности.
🧩 Практические примеры
Показаны разные типы датасетов:
* фэнтезийные персонажи;
* образы с бронёй и экипировкой;
* комикс с котиками 🐱.
Обучение датасета из 25 изображений на 9 эпох занимает примерно 5 часов на RTX 4090.
Используется скрипт для автоматической генерации описаний изображений с помощью GPT-4 Vision, что улучшает качество промптов и итоговой модели.
🎮 Кому будет полезно
Видео будет особенно интересно разработчикам игр и всем, кто хочет обучать собственные LoRA-модели под разные задачи: от игровых ассетов до стилизованных генераций.
⚡️ Дополнительно:
сборка ComfyUI портативная для FLUX.1-dev + AI Upascaling:
https://disk.360.yandex.ru/d/jU-d1BDvot1iwg
архив с Fluxgym -для обучения FLUX.1-dev LoRa:
https://disk.360.yandex.ru/d/s2P5s2TXgV2Z6w
UPDATE: Вот полная статья где разобраны все тонкости подготовки дата сета и самого обучения.
https://d00m4ace.com/posts/opyt-obuchenija-lora-modelej-na-baze-fluxdot1-dev-dlja-igrovyh-assetov-podgotovka-dataseta-i-luchshie-nastrojki/
Решил обнулить свои все подписки на ютуб, попробовал сделать через API но там лимиты и возиться с их добавлением слать гуглу свои сканы доков...
Короче вот простой js скрипт для автоматизации отписки от YouTube каналов:
Оставайтесь на странице https://www.youtube.com/feed/channels
Нажмите F12 (откроется консоль разработчика)
Перейдите на вкладку Console
В консоли напечатайте: allow pasting
Нажмите Enter
Теперь можете вставлять код:
Короче вот простой js скрипт для автоматизации отписки от YouTube каналов:
Оставайтесь на странице https://www.youtube.com/feed/channels
Нажмите F12 (откроется консоль разработчика)
Перейдите на вкладку Console
В консоли напечатайте: allow pasting
Нажмите Enter
Теперь можете вставлять код:
// Автоматическая отписка от всех каналов
(async function() {
let count = 0;
while (true) {
// Прокручиваем вниз для загрузки всех каналов
window.scrollTo(0, document.documentElement.scrollHeight);
await new Promise(r => setTimeout(r, 2000));
// Ищем все ytd-subscribe-button-renderer с атрибутом subscribed
const subscribeRenderers = [...document.querySelectorAll('ytd-subscribe-button-renderer[subscribed]')];
if (subscribeRenderers.length === 0) {
console.log('✅ Готово! Всего отписок: ' + count);
break;
}
console.log('📋 Найдено каналов: ' + subscribeRenderers.length);
// Берем первый элемент
const renderer = subscribeRenderers[0];
// Ищем кнопку с выпадающим меню
const dropdownBtn = renderer.querySelector('ytd-subnoscription-notification-toggle-button-renderer-next button');
if (dropdownBtn) {
dropdownBtn.click();
await new Promise(r => setTimeout(r, 1500));
// Ищем пункт "Unsubscribe" в меню
const menuItems = [...document.querySelectorAll('tp-yt-paper-item, ytd-menu-service-item-renderer')];
const unsubItem = menuItems.find(item =>
item.textContent.includes('Unsubscribe')
);
if (unsubItem) {
unsubItem.click();
await new Promise(r => setTimeout(r, 1500));
// Подтверждаем в диалоге - ищем кнопку "Unsubscribe"
const confirmBtns = [...document.querySelectorAll('yt-button-renderer button, tp-yt-paper-dialog button')];
const confirmBtn = confirmBtns.find(btn =>
btn.textContent.trim() === 'Unsubscribe'
);
if (confirmBtn) {
confirmBtn.click();
count++;
console.log('✓ Отписка #' + count);
await new Promise(r => setTimeout(r, 2000));
} else {
console.log('⚠️ Не найдена кнопка подтверждения');
}
} else {
console.log('⚠️ Меню не открылось');
}
}
}
})();
This media is not supported in your browser
VIEW IN TELEGRAM
Всем привет, вот пока мини отчет, начал с 0 пишу движок на Си для пошаговых игр, пока план сделать базовый функционал для карты. Так же основная идея все функции независимые от самой игры, есть например поиск пути который по массиву проходимости ищет все тайлы, логика игры сама формирует массив для поиска пути и тд...
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый апдейт, добавлено тестовые тайлы и просмотр всей карты. На следующей неделе план обучить Flux1dev Lora для арта игры и расширить базовый функционал. Код пишу пока по старинке с авто ИИ через копилот в VS2022. Кстати уже доступна VS2026!
Forwarded from Уютный телеграмчик
This media is not supported in your browser
VIEW IN TELEGRAM
DOOM запустили на квантовом компьютере!
Quandoom — это порт DOOM для квантовых компьютеров, использующий 70 000 кубитов и 80 миллионов квантовых вентилей. Работает на классическом оборудовании со скоростью 10–20 FPS благодаря лёгкому C++ симулятору QASM.
Quandoom — это порт DOOM для квантовых компьютеров, использующий 70 000 кубитов и 80 миллионов квантовых вентилей. Работает на классическом оборудовании со скоростью 10–20 FPS благодаря лёгкому C++ симулятору QASM.
Всем привет!
Давно хотел снять видео про эмуляцию сервера WOW:WotLK AzerothCore. И вот пока первое небольшое видео AzerothCore WOW:WotLK lvl 61 рейд 40 с ботами на Рагнарос Повелитель Огня.
📺 YouTube видео
📺 VK видео
Полное видео рейда:
📺 VK видео
GitHub: AzerothCore + Playerbots Module:
https://github.com/mod-playerbots/azerothcore-wotlk/tree/Playerbot
https://github.com/mod-playerbots/mod-playerbots
Давно хотел снять видео про эмуляцию сервера WOW:WotLK AzerothCore. И вот пока первое небольшое видео AzerothCore WOW:WotLK lvl 61 рейд 40 с ботами на Рагнарос Повелитель Огня.
📺 YouTube видео
📺 VK видео
Полное видео рейда:
📺 VK видео
GitHub: AzerothCore + Playerbots Module:
https://github.com/mod-playerbots/azerothcore-wotlk/tree/Playerbot
https://github.com/mod-playerbots/mod-playerbots
GitHub
GitHub - mod-playerbots/azerothcore-wotlk: Complete Open Source and Modular solution for MMO
Complete Open Source and Modular solution for MMO. Contribute to mod-playerbots/azerothcore-wotlk development by creating an account on GitHub.
Forwarded from ADF plays - DOS-игры
Свершилось!
Вышла ретро-сборка eXoWin9x Vol. 1 (1994–1996)
Проект eXo выпустил первую часть масштабной коллекции игр для Windows 95/98. В релиз вошло 662 игры, полностью подготовленных для запуска «из коробки» через DOSBox X и 86Box. Сборка работает автономно в виртуальной машине и не вносит изменений в систему пользователя.
Среди ключевых особенностей - встроенная поддержка IPX-мультиплеера, стандартизированная база данных игр, удобная навигация по жанрам и сериям, а также дополнительные материалы: руководства, саундтреки, видеоролики и редкие версии Win9x. В пакет включены и зарубежные издания игр с возможностью фильтрации по языкам.
Полный релиз распространяется через торрент, объём — около 262 ГБ.
https://www.retro-exo.com/win9x.html
https://www.youtube.com/watch?v=OJrC5YdB6hk
Вышла ретро-сборка eXoWin9x Vol. 1 (1994–1996)
Проект eXo выпустил первую часть масштабной коллекции игр для Windows 95/98. В релиз вошло 662 игры, полностью подготовленных для запуска «из коробки» через DOSBox X и 86Box. Сборка работает автономно в виртуальной машине и не вносит изменений в систему пользователя.
Среди ключевых особенностей - встроенная поддержка IPX-мультиплеера, стандартизированная база данных игр, удобная навигация по жанрам и сериям, а также дополнительные материалы: руководства, саундтреки, видеоролики и редкие версии Win9x. В пакет включены и зарубежные издания игр с возможностью фильтрации по языкам.
Полный релиз распространяется через торрент, объём — около 262 ГБ.
https://www.retro-exo.com/win9x.html
https://www.youtube.com/watch?v=OJrC5YdB6hk
YouTube
eXoWin9x - The Impossible is Real
It's really really real. eXoWin9x is out, and you can download it now at www.retro-exo.com.
0:00 Introduction
00:20 Announcing eXoWin9x
00:43 How Did We Do It?
06:20 A First Look at the Project
09:00 Game Extras
10:30 Launching a Game
12:21 Saving…
0:00 Introduction
00:20 Announcing eXoWin9x
00:43 How Did We Do It?
06:20 A First Look at the Project
09:00 Game Extras
10:30 Launching a Game
12:21 Saving…
Forwarded from ADF plays - DOS-игры
Как ExoWin9x работает внутри
Самая большая проблема с играми для Windows 95/98 была в том, что почти каждая из них что-то меняет в системе. Одни кладут
Обычные виртуальные диски тоже не помогали: форматы вроде
Решение пришло с неожиданной стороны: вместо того чтобы хранить изменения внутри виртуального диска, команда начала отслеживать их вручную, на уровне файлов и реестра, и хранить в отдельной папке. А затем, и это ключевой момент, накатывать эти изменения автоматически внутри самой эмулируемой Windows 98.
В Windows используется два диска:
Когда пользователь запускает игру, стартует DOSBox-X с чистым эталонным образом Windows 98. И вот здесь включается магия. Внутри этой эмулированной Windows в автозагрузку встроен VBScript. Он запускается автоматически при старте системы и делает следующее:
- берёт папку “изменений” конкретной игры,
- копирует нужные файлы в C:\Windows и другие системные каталоги,
- импортирует .reg-файлы с нужными ветками реестра,
- создаёт или обновляет каталоги, которые игра ожидает увидеть.
В результате для самой Windows это выглядит как будто игра установлена полностью, со всеми файлами и настройками. Но на самом деле система остаётся неизменяемой: это всё тот же базовый образ, поверх которого временно накладываются нужные файлы.
Когда игрок выходит из игры, Windows 98 закрывается, и все эти временные изменения исчезают. При следующем запуске она снова загрузится в базовом состоянии, а VBScript снова применит только то, что нужно конкретной игре.
Такой подход даёт два мощных эффекта. Во-первых, каждая игра занимает минимальный объём - всего несколько десятков мегабайт фактических изменений. Во-вторых, Windows 98 невозможно сломать: она каждый раз стартует с нуля и живёт ровно столько, сколько длится игровой сеанс.
Но это порождает и свои проблемы. Всё, что игра записывает на диск
Разработчики говорят, что они не успели проверить все 664 игры, и какие-то из них могут сбрасывать прогресс или настройки. Они просят сообщать им о таких играх, они будут пытаться их починить в будущих релизах.
Самая большая проблема с играми для Windows 95/98 была в том, что почти каждая из них что-то меняет в системе. Одни кладут
DLL в папку Windows, другие записывают настройки в реестр, третьи требуют свои файлы в корне диска C:. Если бы под каждую игру нужно было хранить отдельную копию Windows 98, проект превратился бы в огромную кучу дублирующихся данных, размером в десятки терабайт.Обычные виртуальные диски тоже не помогали: форматы вроде
QCOW2 должны сохранять только изменения, но на практике даже маленькая правка создаёт десятки мегабайт “мусорных” блоков. Казалось, что сделать компактную коллекцию Win9x-игр просто невозможно.Решение пришло с неожиданной стороны: вместо того чтобы хранить изменения внутри виртуального диска, команда начала отслеживать их вручную, на уровне файлов и реестра, и хранить в отдельной папке. А затем, и это ключевой момент, накатывать эти изменения автоматически внутри самой эмулируемой Windows 98.
В Windows используется два диска:
C: и D:. Диск C: - это чистый, неизменяемый образ Windows 98. Он никогда не сохраняет своё состояние. Каждый запуск - это новая, свежая Windows, будто только что установленная. Диск D: служит рабочим пространством. Игра устанавливается туда, и именно там хранятся её файлы, сейвы, дополнительные данные. Всё, что игре нужно сохранить между запусками, должно оказаться именно на D:.Когда пользователь запускает игру, стартует DOSBox-X с чистым эталонным образом Windows 98. И вот здесь включается магия. Внутри этой эмулированной Windows в автозагрузку встроен VBScript. Он запускается автоматически при старте системы и делает следующее:
- берёт папку “изменений” конкретной игры,
- копирует нужные файлы в C:\Windows и другие системные каталоги,
- импортирует .reg-файлы с нужными ветками реестра,
- создаёт или обновляет каталоги, которые игра ожидает увидеть.
В результате для самой Windows это выглядит как будто игра установлена полностью, со всеми файлами и настройками. Но на самом деле система остаётся неизменяемой: это всё тот же базовый образ, поверх которого временно накладываются нужные файлы.
Когда игрок выходит из игры, Windows 98 закрывается, и все эти временные изменения исчезают. При следующем запуске она снова загрузится в базовом состоянии, а VBScript снова применит только то, что нужно конкретной игре.
Такой подход даёт два мощных эффекта. Во-первых, каждая игра занимает минимальный объём - всего несколько десятков мегабайт фактических изменений. Во-вторых, Windows 98 невозможно сломать: она каждый раз стартует с нуля и живёт ровно столько, сколько длится игровой сеанс.
Но это порождает и свои проблемы. Всё, что игра записывает на диск
C:, после выхода исчезает, потому что C: всегда сбрасывается при перезапуске. Это касается и игровых сохранений. Поэтому если игра позволяет выбирать место для сохранения, нужно выбирать диск D:. Только данные на D: сохраняются между запусками. Есть игры, которые сами решают, куда писать данные, и некоторые из них вообще сохраняют прогресс не в файлы, а в реестр Windows, например: Beavis & Butt-Head Virtual Stupidity. Такие игры после выхода теряют сохранения, потому что реестр живёт на C:, а он очищается при каждом новом запуске.Разработчики говорят, что они не успели проверить все 664 игры, и какие-то из них могут сбрасывать прогресс или настройки. Они просят сообщать им о таких играх, они будут пытаться их починить в будущих релизах.