• Архитектура любительского стримингового сервиса DOS игр
    0
    Теперь появилась возможность скачивать бандлы с прогрессом.
  • Архитектура любительского стримингового сервиса DOS игр
    0
    1. Фактически доступ есть, можно скачать последнею весрию ФС по прямой ссылке. Пожалуй, это отличная идея и я сделаю соответствующею кнопку.
    2. По сети игра планируется, но вначале нужно доделать поддержку мышки)
  • Архитектура любительского стримингового сервиса DOS игр
    0
    Для каждого игрока используется своя песочницаю Все изменения сохраняются в файловой системе при закрытии сессии.
  • Архитектура любительского стримингового сервиса DOS игр
    0
    Мне кажется у меня случай попроще. Сетевой игры здесь нет, эмулятор один и он не может пойти вразнос.
    Нажатия могут пропадать в случае плохого соединения, но в этом случае скорее всего играть будет не возможно по очевидным причинам.
  • Архитектура любительского стримингового сервиса DOS игр
    0
    Резюмирую: если работает локальный режим — супер, его и следует использовать. Но, если по каким-то причинам нет, то можно попробовать стриминг.
  • Архитектура любительского стримингового сервиса DOS игр
    0
    Для VNC нет стандартизованного протокола стриминга через браузер. WebRTC это не только сам стриминг, но ещё куча всего (обход NAT, дата каналы, SSL). Турбо режим должен работать везде: Windows, *nix, Mac, Android, iPhone, т.е. без команды это сделать фактически невозможно.
    WebRTC стандартизован, но тем не менее даже он глючит на некоторых устройствах, что же говорить о самописной системе.

  • Архитектура любительского стримингового сервиса DOS игр
    0
    js-dos это и есть мой проект. На dos.zone работает его последняя вресия v7, различия в производительности на слабом ПК объясняются тем, что v7 стартует эмуляцию в worker, v6.22 (js-dos.com) стартует эмуляцию в основном потоке браузера (что быстрее). v7 тоже поддерживает этот режим, но на мощных ПК я рекомендую использовать worker режим.

  • Архитектура любительского стримингового сервиса DOS игр
    0
    Спасибо за большой отзыв.
    1. Вы правильно поняли, для стриминг игры нужно использовать Turbo.
    2. Ваши размышления насчет применимость стриминг платформы тоже верны. Но здесь есть один очень тонкий момент. dosbox имеет различные типы эмуляции, простой и динамический. Так вот с помощью WebAssembly можно запустить только простой режим. Динамический режим выполняет динамическую компиляцию игры в машинные команды современных процессоров и работает на порядки быстрее простого режима. Как я уже сказал, современные спецификации WebAssembly не позволяют реализовать его. Поэтому все что Вы сказали верно для игр которым хватает мощностей простого режима. Да таких игр очень много, но есть и другие игры, которые даже на самом мощном PC будет тормозить. Для таких игр и нужен Turbo режим, а DOOM я просто использую для тестирования. Например, поробуйте запустить в js-dos C&C или Deluxe Ski Jump 2 иди Dagerfall и Вы поймете о чём я.

  • Архитектура любительского стримингового сервиса DOS игр
    0
    Не понял, про что вы. Синхронизация памяти между чем и чем?
  • Архитектура любительского стримингового сервиса DOS игр
    0
    На самом деле используется не dosbox, а мой форк js-dos. В версии 7 я переделал dosbox, теперь он выводит кадры не на экран, а ввиде массива RGBA. Тоже самое со звуком, — массив сэмплов.
  • DOS Cloud Gaming
    0
    Нужно просто на кнопку «Сохранить» сделать вызов ci.persist(). Когда он завершится у тебя будет Uint8Array, ты его отправляй на сервер это обычный ZIP, на сервере же ты его распакуешь и определишь измененные файлы.

    У меня похожая схема реализована на DOS.Zone. Если ты зарегистрированный пользователь, тогда по кнопке «Сохранить» твои изменения падают на сервер (можешь проверить устраивает ли тебя такое решение).

    Полная схема работы такая:
    1. Есть эталонный чистый ZIP (файл jsdos)
    2. Пользователь первый раз запускает FoxPro — создается копия файла в личной папке пользователя и отправляется ссылка на него
    3. Пользователь жмет кнопку «Сохранить» — вызывается ci.persist() и новый файл отправляется на сервер. На сервере он просто перезаписывает прошлую версию
    4. Пользователь заходит ещё раз и получает последнею сохраненную версию

    Да это не много не очевидно, надо пользователю объяснить что каждый раз нужно нажимать на кнопку «Сохранить», зато просто и работает как часы.
  • DOS Cloud Gaming
    0
    Если ты хочешь сохранить возможность для клиента работать через браузер, то вариант только один. На клиенте нужно написать ФС которая работает через веб-сокеты и полностью синхронизирует свое состояние при каждой операции с сервером. Т.е. фактическ ФС будет на сервере, а клиент будет посылать операции чтения и записи. Это можно сделать, но не думаю что это будет просто, если ты не знаком с emscripten. На всякий случай вот доки. Я бы подумал надо каким-то более простым решением, вроде синхронизации по кнопке или типа-того.
  • DOS Cloud Gaming
    0
    Сохранение отдельных файлов будет сделано в будущем. Увидеть сетевые диски или диски компьютера не получится в принципе, по тому что браузер не позволяет этого делать. Для того что бы это сделать, нужно либо использовать не браузер а electoron какой-нибудь, либо писать сервер которые пробрасывает доступ к ФС компа в браузер.
  • DOS Cloud Gaming
    0
    На самом деле поддержка сохранения и загрузки реализована (документация). В процессе работы эмулятора все изменения сохраняются в виртуальной файловой системе. Используя функцию сохранения вы получаете обновленный бандл со всеми вашими изменениями, вы можете сохранить его на сервере и загрузить вместо оригинального при следующем запуске. Именно так работает сохранение/загрузка на DOS.Zone. В теории можно загружать отдельные файлы из виртуальной ФС, но API пока таких функций не предоставляет.
  • DOS Cloud Gaming
    0
    talks.dos.zone/t/foxpro-2-6-dos-portable
    Прекрасно работает даже в браузере.
  • DOS Cloud Gaming
    0
    Написал в личку.
  • DOS Cloud Gaming
    0
    Бесплатная. Я пока тестирую сервис, документацию на код и развертывание я опубликую после тесирования.
  • DOS Cloud Gaming
    0
    Если он работает в обычном dosbox, то значит будет работать и в браузере.
  • DOS Cloud Gaming
    0
    js-dos v7 пока не поддерживает интеграцию мышки. Это следующий пункт в моей дорожной карте. Обязательно сделаю.
  • Релиз CLion 2017.2: интеграция с Clang-Tidy, C++17 в мастере создания нового проекта, повышение производительности IDE
    0
    Все понятно, ждемс :) Моя структура проекта такая:

    * ~/ui-framework/**/**.cpp
    * ~/physics-framework/**/*.cpp
    * ~/game-1/CMakeLists.txt
    * ~/game-2/CMakeLists.txt
    * ~/game-3/CMakeLists.txt

    Всем кодом владею я. Т.е. «сторонние библиотеки» это тоже часть продукта. Скажем проект игры включает десятки исходных файлов, в то время как фреймворки — тысячи. И у меня пригорает от того что я постоянно вижу это сообщение. Я например, не понимаю почему файлы за директорией CMakeLists.txt считаются вне проекта, они явно указаны в CMakeLists.txt и должны принадлежать проекту как и файлы внутри директории с CMakeLists.txt. Мне кажется это какое-то политическое решение.

    Список ошибок — структурированный отчёт о результатах компиляции, как в VS или Esclipse или QtCreator, кажется он везде есть. А вот в CLion нет, или я слепой :) Сейчас я наблюдаю только лог компиляции, который я должен разбирать сам. А каждая ошибка в логе компилятора излишне многословная. Кроме того, ошибки компилятора не помечаются на скроллбаре файла %)
  • Релиз CLion 2017.2: интеграция с Clang-Tidy, C++17 в мастере создания нового проекта, повышение производительности IDE
    0
    В догонку (в конце я жму Enter).
    image
    CLion
    CLion 2017.2.2
    Build #CL-172.3968.17, built on August 22, 2017
    JRE: 1.8.0_152-release-915-b11 amd64
    JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
    Linux 4.10.0-35-generic
  • Релиз CLion 2017.2: интеграция с Clang-Tidy, C++17 в мастере создания нового проекта, повышение производительности IDE
    0
    Продукт интересный, но сам бы ни купил (использую рабочую лицензию). В основном пользуюсь QtCreator'ом, и вот почему:
    * Поддержка ninja
    * Интеграция с valgrind, мелочь а приятно
    * В больших проектах часто сторонние библиотеки (общий код нескольких проектов) подключены из директорий за пределами корня проекта. При их правке CLion назойливо кричит что редактируется файл за пределами проекта. Меня раздражает.
    * В продолжение последнего пукта, все эти фалы вываливаются в корень дерева проекта, из за этого что бы понять структуру, приходится пользоваться проводником :(
    * Нет общего списка ошибок, как вообще так?

    Кроме того, дебаггер в моих проектах даже std::string развернуть не может, причем интересно иногда QtCreator умеет разворачивать, иногда CLion.

    Жду фиксов указанных проблем, тогда можно будет полностью перейти на CLion :)
  • JS-DOS API: запускаем DOS в браузере
    0
    Хмм, мне понравилась твоя задумка, попробую обновить js-dos на последнюю версию em-dosbox.
  • JS-DOS API: запускаем DOS в браузере
    0
    Есть проблемы с infinite loop и с чтением stdin т.к. эти операции блокриующие, то мы никогда не получаем управление обратно в браузер. Эти проблемы были решены в последних версиях em-dosbox. Попробуйте напрямую запустить (https://github.com/dreamlayers/em-dosbox), у меня нет времени обновить js-dos до последней версии em-dosbox.
  • JS-DOS API: запускаем DOS в браузере
    0
    Действительно браузер не позволит отправлять данные куда попало. Но если запустить прокси на сервере, а браузеру который будет запущен в эмуляторе прописать этот прокси, тогда все взлетит. Давайте попробуем? Mosaic поддерживает прокси?
  • JS-DOS API: запускаем DOS в браузере
    0
    Простите, что такое мозаик?
  • JS-DOS API: запускаем DOS в браузере
    0
    В emscripten есть поддержка сокетов и они работают не плохо, например, в TTD работает игра по сети без особых глюков. Не очень понял что за песочница? Если вы про dosbox, то наверное его можно настроить соответствующим образом.
  • JS-DOS API: запускаем DOS в браузере
    0
    Политика безопасности браузеров не позволяет делать XHR запросы по протоколу file://. Если вы посмотрите логи то скорее всего там написано:

    XMLHttpRequest cannot load file
    XMLHttpRequest cannot load file:///home/caiiiycuk/tmp/dosbox/alley_cat.zip. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource

    Если же написано что-то другое, то отправте логи личным сообщением.

  • Нетрадиционный обзор AngularJS
    0
    Зависимости для внедрения можно определять прямо в классе сервера:

    class sys.Service
    
      @$inject: ['$log', '$http', '$q']
    
      constructor: (@log, @http, @q) -> 
        @log.debug("sys.Service - ok")
    
  • em-dosbox и 50 подарков на новый год
    0
    У них такие же проблемы со звуком, как и у меня, жаль (
  • em-dosbox и 50 подарков на новый год
    0
    Не-не-не, Дэвид Блэйн! xtc-play, так гораздо лучше (см. коммит).
  • em-dosbox и 50 подарков на новый год
    0
    Тут проблема скорее в emscripten, его реализация SDL_mixer не очень хорошая. Звук может прерываться по многим причинам. Из за того что javascript одно поточный звуковой буфер не успевает заполняться. worker`ы могут помочь, но пока это все очень экспериментально. Может быть поможет поиграться с настройками dosbox (dosbox.conf).
  • em-dosbox и 50 подарков на новый год
    0
    Там Sound Blaster AWE 16 по умолчанию и звук работает (IRQ 7, DMA 1), можете у меня на сайте проверить.
  • em-dosbox и 50 подарков на новый год
    0
    Упс… Файл появляется после компиляции (его генерирует emscripten). Вот, можете попробовать этот.
  • em-dosbox и 50 подарков на новый год
    0
    Нужен emscripten, а так же packager.py, dosbox.html из репозитория em-dosbox. Начните с чего-нибудь простого, например, с digger (используйте packager.py как написано в статье). Ссылка: dosbox.js
  • em-dosbox и 50 подарков на новый год
    0
    Производительность предсказать сложно. Некоторые игры работали слишком быстро, например в Fire And Forget II пришлось ограничить число эмулируемых циклов процессора, что бы можно было играть. А вот тот же казалось бы простой Scorch работает не так быстро как хочется. Единственное что могу посоветовать, — попробуйте хром.
  • em-dosbox и 50 подарков на новый год
    0
    Раньше chrome рулил. Но теперь они примерно на одном уровне благодаря asm.js. Для медленного ПК рекомендую все же chrome.
  • em-dosbox и 50 подарков на новый год
    0
    Флэш же %)
  • em-dosbox и 50 подарков на новый год
    0
    Всей ветке: Спасибо большое, очень приятно за то что цените мои труд!
  • em-dosbox и 50 подарков на новый год
    0
    Оригинальный