Totoro 3 563 Опубликовано: 14 сентября, 2019 Для тех, кто спешит: Потестировать онлайн: https://ocelot.fomalhaut.me/ Скачать на комп и потестировать: Ocelot Desktop На форуме давно мелькают упоминания Ocelot. Это эмулятор OpenComputers, который находится в разработке примерно с 2015 года, был несколько раз переписан и наконец увидел свет в закрытом альфа-тесте зимой 2018. Я немного отвлекся на другие проекты (привет Stem), но теперь возвращаюсь к разработке Ocelot, и с гордостью предствляю вам тизер-анонс и, по совместительству, открытый альфа-тест Ocelot. Ещё один эмулятор? Да. Будем честны. Нормального эмулятора OpenComputers не существует. Те что есть - полны костылей, не совсем соответствуют реальному моду, сложны в установке, заброшены... и так далее. Ocelot - это решение всех этих проблем. Основная идея Ocelot - взять уже существующий код мода OpenComputers, тщательно отделить всё не нужное (Майнкрафт), затем осторожно переписать то что получилось с поправкой на реалии эмулятора. Благодаря этому, Ocelot эмулирует OpenComputers с ранее невиданной точностью. Вплоть до того, что в эмуляторе могут встречаться те же самые баги, что и в моде. Что он умеет? Практически всё. В перспективе. Ocelot позволяет воссоздать схему любой сложности из любого количества блоков - мониторов, компьютеров (любой конфигурации), проводов, модемов и прочих компонентов. Он позволяет управлять скоростью работы компьютеров, позволяет изменять "игровое" время, ставить его на паузу, сохранять состояние работы компьютеров и потом возобновлять работу с любого сохранения. Сейчас доступен базовый набор компонентов и блоков. Это кабель, корпус компьютера, APU/CPU, плашки памяти, видеокарты, дата-карты, EEPROM, дискеты, жесткие диски (managed и unmanaged режимов), интернет-карта, линкед-карта, сетевая карта (проводная и безпроводная), редстоун-карта / блок и монитор. Список будет расширяться. В перспективе будет эмуляция всех блоков и компонентов стандартного OC, роботов, дронов, микроконтроллеров, серверных стоек, плюс эмуляция адаптера и интеграции с ванильными блоками и блоками других модов. Что можно потрогать? Ocelot задуман как модульный проект. А именно: Ocelot Brain Основа эмулятора - это библиотека Ocelot Brain. Она написана на Scala и может быть подключена к любому другому проекта на Scala (и, может быть, Java). Ocelot Brain - это как раз переработанный код OpenComputers в компактной и удобной форме. Отвечает за всю эмуляцию кода и компонентов, а также сохранение / загрузку проектов. Вы можете использовать его для своих проектов, можете помочь с разработкой и патчами. Проект открыт и доступен по адресу: https://gitlab.com/cc-ru/ocelot/ocelot-brain На данный момент Ocelot Brain актуален версии OpenComputers 1.7.7. Ocelot Online На основе проекта Ocelot Brain, в качестве демонстрации его возможностей, создается проект Ocelot Online. Ocelot Online это эмулятор OpenComputers в виде сайта. Да. Всё что вам нужно для его запуска - это открыть сайт. Ссылка: https://ocelot.fomalhaut.me/ Исходный код тоже доступен: https://gitlab.com/cc-ru/ocelot/ocelot-online Поскольку проект пока находится в альфа-релизе, большая часть возможностей закрыта. Доступен только один монитор на всех, который позволяет взаимодействовать с уже настроенным демо-проектом. Конфигурация проекта: Креативный корпус, CPU T3, видеокарта T3, две планки памяти T3.5, managed жесткий диск T3, unmanaged жёсткий T3, интернет карта, редстоун карта T2, дисковод с дискетой Open OS, монитор T2, клавиатура и EEPROM с Advanced Loader от товарища Luca_S. Отличия от стандартного OpenComputers: * В OpenOS уже установлен HPM. Благодаря этому можно быстро ставить разные программы через hpm install. * Вставка текста заменена с Insert на Ctrl + V. Браузер не дает изменить этот хоткей. * В редакторе edit кнопка выхода заменена на Ctrl + E. Стандартная комбинация юзается браузером для закрытия вкладок - и переопределить её нельзя по соображениям безопасности. * Вместо OpenOS EEPROM используется Advanced Loader. Это сделано для удобства и наглядности. * Не работает лок на пользователя - по понятным причинам. Ocelot Online должен так же работать на смартфонах. Однако возможно придется отключить T9 - он портит эвенты клавиатуры. В разработке находится более сложная версия, где все получат возможность зарегистрировать аккаунт и создавать личные проекты любой конфигурации. Но это дело будущего. Ocelot Desktop Это классический вариант эмулятора Ocelot в виде программы, которую можно скачать и запустить на любой операционной системе, где есть Java. Построен на Ocelot Brain и библиотеке LWJGL (как и сам майнкрафт). Разработкой занимается товарищ @LeshaInc. Протестировать проект, сообщить о багах и поддержать разработчиков можно в топике Ocelot Desktop: Альфа-тест Итак, дорогие пользователи, пишите ваши хотелки, сообщайте о багах, обо всем что работает не так как должно, и как в оригинальном OC. Я, со своей стороны, постараюсь проект не забрасывать, развивать и своевременно (или не очень) обновлять. Благодарности Над проектом также работали: @LeshaInc, @Laine_prikol, @Fingercomp и @MeXaN1cK. За что им огромное спасибо и респект. Не забудем также всех, кто помогал с альфа-тестированием, Сангара - за чудесный мод, и мейнтейнеров OpenComputers за то что его не забросили. Enjoy! 19 3 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 16 сентября, 2019 В онлайн версии попытка выйти из редактора edit по Ctrl+W приводит к закрытию страницы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 16 сентября, 2019 35 минут назад, Zer0Galaxy сказал: В онлайн версии попытка выйти из редактора edit по Ctrl+W приводит к закрытию страницы В 14.09.2019 в 15:27, Totoro сказал: * В редакторе edit кнопка выхода заменена на Ctrl + E. Стандартная комбинация юзается браузером для закрытия вкладок - и переопределить её нельзя по соображениям безопасности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro Автор темы 3 563 Опубликовано: 16 сентября, 2019 2 часа назад, Zer0Galaxy сказал: В онлайн версии попытка выйти из редактора edit по Ctrl+W приводит к закрытию страницы Да, всё верно. Это ограничение не эмулятора Ocelot, а именно браузера. Хоткей Ctrl + W не переопределяется через JS код, он жестко закреплен для закрытия вкладки. Наверное беспокоятся о том, что можно будет создать веб-сайт, который переопределит кнопки закрытия чтобы пользователю было сложнее его покинуть. Поэтому пришлось поменять его в настройках OpenOS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 16 сентября, 2019 (изменено) Скрытый текст в активной разработке Изменено 25 сентября, 2019 пользователем Alex Установка спойлера 3 1 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg 197 Опубликовано: 16 сентября, 2019 Есть что-то вроде roadmap? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro Автор темы 3 563 Опубликовано: 16 сентября, 2019 А вот и WIP-видео Ocelot Desktop подъехало. Отлично =) Только что, hohserg сказал: Есть что-то вроде roadmap? Только в головах авторов, пока. Ядро эмулятора готово - к нему надо будет составить подробную документацию. Клиенты (онлайн и десктоп) пока имеют только базовую функциональность - одно окно и фиксированный сетап компа. В разработке (и там и там) система типа "графа" из блоков, соединенных "кабелями". Это позволит строить любые схемы. Далее скорее всего будет сериализация (сохранение) проекта и загрузка. Затем - развитие эмулятора путем добавления новых блоков и возможностей - типа робота, например. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 17 сентября, 2019 16 часов назад, Totoro сказал: А вот и WIP-видео Ocelot Desktop подъехало. Отлично =) Только в головах авторов, пока. Ядро эмулятора готово - к нему надо будет составить подробную документацию. Клиенты (онлайн и десктоп) пока имеют только базовую функциональность - одно окно и фиксированный сетап компа. В разработке (и там и там) система типа "графа" из блоков, соединенных "кабелями". Это позволит строить любые схемы. Далее скорее всего будет сериализация (сохранение) проекта и загрузка. Затем - развитие эмулятора путем добавления новых блоков и возможностей - типа робота, например. Выходит из эмулятора делается копия майна, имхо естественно проще запустить майн. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro Автор темы 3 563 Опубликовано: 17 сентября, 2019 45 минут назад, NEO сказал: Выходит из эмулятора делается копия майна, имхо естественно проще запустить майн. Не копия, а эмулятор. Есть разница. Но если проще запустить майн, чем открыть сайт, то конечно стоит запустить майн. Спору нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg 197 Опубликовано: 17 сентября, 2019 Если будут фичи, повышающие удобство разработки(например, выбор произвольной папки для содержимого жесткого диска или стак-трэйсы), то эмулятор будет лучше для разработки 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro Автор темы 3 563 Опубликовано: 17 сентября, 2019 4 минуты назад, hohserg сказал: Если будут фичи, повышающие удобство разработки(например, выбор произвольной папки для содержимого жесткого диска или стак-трэйсы), то эмулятор будет лучше для разработки Над выбором произвольной папки надо будет подумать. Я думаю сложностей не должно быть. Сейчас там сделано как в OC - есть папка save и в ней жесткие диски по адресам. С отключенной буферизацией можно работать прямо в этих папках, любым внешним редактором, как в OC. Насчет developer tools - хорошая мысль. Я тоже над этим думал. Эмулятор ведь дает возможность загляуть "под капот" комьютеру, потенциально. Как минимум - я могу динамически показывать загруженность проца, "бюджет вызовов", сколько занято оперативной памяти, лимит компонентов и т.п. Можно подумать над тем, какие именно инструменты могут понадобиться - какой-нибудь дебаггер-профайлер... хз. Короче да, спасибо за идеи - предлагайте ещё, не стесняйтесь. =) Все сделать не обещаем, но кое что обязательно попадет в релиз. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg 197 Опубликовано: 17 сентября, 2019 Предложение фичи: некая глобальная функция вроде print, но печатающая в отдельный дебажный лог, внешний по отношению к OcelotBrain, и который чистится только явным нажатием определенной кнопки. Чтобы никакой код не мог испортить лог и чтобы лог тоже ни на что не влиял 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 17 сентября, 2019 9 минут назад, Totoro сказал: Можно подумать над тем, какие именно инструменты могут понадобиться - какой-нибудь дебаггер-профайлер... хз. При программировании тяжёлых вычислений вроде шифрования RSA профайлер очень бы пригодился. Судя по описанию, тайминги в этом эмуляторе обещают очень точно соответствовать таймингам в игре. 1 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro Автор темы 3 563 Опубликовано: 17 сентября, 2019 17 минут назад, hohserg сказал: некая глобальная функция вроде print, но печатающая в отдельный дебажный лог, внешний по отношению к OcelotBrain, и который чистится только явным нажатием определенной кнопки. Чтобы никакой код не мог испортить лог и чтобы лог тоже ни на что не влиял Я могу встроить что-нибудь типа Ocelot API в эмулятор. Типа глобальный объект ocelot который будет доступен везде из Луа и будет нести всякие dev-функции типа логирования. Ну а лог сам выводить куда угодно - в файл, в отдельное окно. 7 минут назад, eu_tomat сказал: При программировании тяжёлых вычислений вроде шифрования RSA профайлер очень бы пригодился. Судя по описанию, тайминги в этом эмуляторе обещают очень точно соответствовать таймингам в игре. Я тебя услышал. Попробуем что-нибудь типа профайлера прикрутить. Это задача непростая, но интересная. Тайминги должны быть если не идеально точными, то близкими. 1 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 18 сентября, 2019 (изменено) Скрытый текст Изменено 25 сентября, 2019 пользователем Alex Установка спойлера 4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro Автор темы 3 563 Опубликовано: 20 сентября, 2019 (изменено) Скрытый текст Ocelot Online не отстает. Изменено 25 сентября, 2019 пользователем Alex Установка спойлера 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
whiskas 144 Опубликовано: 20 сентября, 2019 Ехх нам бы не эмулятор а сервер) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 20 сентября, 2019 6 часов назад, Totoro сказал: Ocelot Online не отстает. Вот не догадался, как в Ocelot Online добавлять компоненты. Или пока никак? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro Автор темы 3 563 Опубликовано: 20 сентября, 2019 1 час назад, whiskas сказал: Ехх нам бы не эмулятор а сервер) Ну эт надо уже к Алексу, наверное. =) Или какое-то сотрудничество замутить, с кем-то. 12 минуты назад, Zer0Galaxy сказал: Вот не догадался, как в Ocelot Online добавлять компоненты. Или пока никак? В тот который сейчас на сайте доступен - никак. А в тот который пишется - по ПКМ на блоке компьютера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 20 сентября, 2019 Логирование можно и в ванильном OC сделать, если в сэндбокс пропустить print из machine.lua. Но да, отдельный интерфейс был бы полезен. Дебаггер, профилятор и что там ещё на свете ни придумали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах