Totoro
-
Публикации
1 950 -
Зарегистрирован
-
Посещение
-
Победитель дней
289
Сообщения, опубликованные пользователем Totoro
-
-
1 час назад, ArtHacker сказал:Я в Lua не силён, но если нужен сайт, сервер обращайтесь.
К сожалению, как раз нужен Луа. И желание реально что-то делать.
-
1 час назад, whiskas сказал:Ехх нам бы не эмулятор а сервер)
Ну эт надо уже к Алексу, наверное. =) Или какое-то сотрудничество замутить, с кем-то.
12 минуты назад, Zer0Galaxy сказал:Вот не догадался, как в Ocelot Online добавлять компоненты. Или пока никак?
В тот который сейчас на сайте доступен - никак. А в тот который пишется - по ПКМ на блоке компьютера.
-
Скрытый текст
Ocelot Online не отстает.
-
1
-
-
Идея точно так же как и предыдущая.
Если есть желание лично заниматься этим, и есть ресурсы - занимайся. Если получится - с меня лайк.
А больше ни для чего кроме личного саморазвития не годится.
-
Всем привет.
Мы тут пишем эмулятор OpenComputers, и в процессе его нужно тестировать.
Поэтому будет очень здорово, если кто-нибудь напишет утилиту-бенчмарк.
Утилита должна выглядеть как программка для OpenOS, на Lua.
В идеале её надо загрузить в Hel, чтобы было быстрее устанавливать.
Для чего именно она нужна?
Делать бенчмарк компьютера в Minecraft смысла особо нет - там и так понятно насколько будет производительной твоя "сборка".
Но это имеет смысл делать в эмуляторе - потому что эмулятор может глючить, лагать, багать, и жрать оперативную память.
(Например, сегодня мы запустили в Ocelot Online демку, которая очень быстро рендерила текст на экране, и в результате, у @Fingercomp браузер сожрал 5 гигабайт оперативной памяти, засвопился и вырубил на час весь компьютер.)
Что именно она должна тестировать?
- Утечки оперативной памяти, производительность рендера и лаги эмулятора. Для этого можно например запустить интенсивный рендер на экране какого-нибудь цветастого мусора. Или любой другой вариант. Засечь время и потом сверить "внутриигровые" часы с настоящими, чтобы определить, не лагало ли оно. (Параллельно тесту можно будет уже вручную смотреть диспетчер задач - не жрет ли браузер или десктопный эмулятор ресурсы больше положенного.)
- Правильную работу компонентов. То есть проверить, соединяет ли интернет карта с интернетом, посылает ли сетевые сообщения модем, и так далее.
Всю инфу надо потом красиво вывести на экран.
Можно в графическом виде, можно в командной строке.
Награда?
Большое спасибо от всей души.
Короче, если кто-то будет искать идею "что бы написать" - бенчмарк для эмулятора это вариант.
Он нам пригодится.
-
2
-
17 минут назад, hohserg сказал:некая глобальная функция вроде print, но печатающая в отдельный дебажный лог, внешний по отношению к OcelotBrain, и который чистится только явным нажатием определенной кнопки. Чтобы никакой код не мог испортить лог и чтобы лог тоже ни на что не влиял
Я могу встроить что-нибудь типа Ocelot API в эмулятор. Типа глобальный объект ocelot который будет доступен везде из Луа и будет нести всякие dev-функции типа логирования.
Ну а лог сам выводить куда угодно - в файл, в отдельное окно.
7 минут назад, eu_tomat сказал:При программировании тяжёлых вычислений вроде шифрования RSA профайлер очень бы пригодился. Судя по описанию, тайминги в этом эмуляторе обещают очень точно соответствовать таймингам в игре.
Я тебя услышал. Попробуем что-нибудь типа профайлера прикрутить. Это задача непростая, но интересная.
Тайминги должны быть если не идеально точными, то близкими.
-
1
-
2
-
-
4 минуты назад, hohserg сказал:Если будут фичи, повышающие удобство разработки(например, выбор произвольной папки для содержимого жесткого диска или стак-трэйсы), то эмулятор будет лучше для разработки
Над выбором произвольной папки надо будет подумать. Я думаю сложностей не должно быть.
Сейчас там сделано как в OC - есть папка save и в ней жесткие диски по адресам. С отключенной буферизацией можно работать прямо в этих папках, любым внешним редактором, как в OC.
Насчет developer tools - хорошая мысль. Я тоже над этим думал. Эмулятор ведь дает возможность загляуть "под капот" комьютеру, потенциально.
Как минимум - я могу динамически показывать загруженность проца, "бюджет вызовов", сколько занято оперативной памяти, лимит компонентов и т.п.
Можно подумать над тем, какие именно инструменты могут понадобиться - какой-нибудь дебаггер-профайлер... хз.
Короче да, спасибо за идеи - предлагайте ещё, не стесняйтесь. =)
Все сделать не обещаем, но кое что обязательно попадет в релиз.
-
1
-
-
45 минут назад, NEO сказал:Выходит из эмулятора делается копия майна, имхо естественно проще запустить майн.
Не копия, а эмулятор. Есть разница.
Но если проще запустить майн, чем открыть сайт, то конечно стоит запустить майн. Спору нет.
-
А вот и WIP-видео Ocelot Desktop подъехало. Отлично =)
Только что, hohserg сказал:Есть что-то вроде roadmap?
Только в головах авторов, пока.
Ядро эмулятора готово - к нему надо будет составить подробную документацию.
Клиенты (онлайн и десктоп) пока имеют только базовую функциональность - одно окно и фиксированный сетап компа.
В разработке (и там и там) система типа "графа" из блоков, соединенных "кабелями". Это позволит строить любые схемы.
Далее скорее всего будет сериализация (сохранение) проекта и загрузка. Затем - развитие эмулятора путем добавления новых блоков и возможностей - типа робота, например.
-
2 часа назад, Zer0Galaxy сказал:В онлайн версии попытка выйти из редактора edit по Ctrl+W приводит к закрытию страницы
Да, всё верно.
Это ограничение не эмулятора Ocelot, а именно браузера.
Хоткей Ctrl + W не переопределяется через JS код, он жестко закреплен для закрытия вкладки.
Наверное беспокоятся о том, что можно будет создать веб-сайт, который переопределит кнопки закрытия чтобы пользователю было сложнее его покинуть.
Поэтому пришлось поменять его в настройках OpenOS.
-
-
Для тех, кто спешит:
Потестировать онлайн: 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
-
-
Чувствую про Ocelot надо уже сделать анонс, лол. А то щас без меня зарелизите.
-
1
-
-
Респект таким парням, которые поддерживают и совершенствуют отечественные разработки.
-
Да, чтобы упрощать такие вещи, тебе потребуется построить абстрактное синтаксическое дерево для исходника.
Вряд ли минификатор таким занимается. Скорее просто заменяет все неключевые слова на более короткие и убирает лишние пробелы и переносы.
-
У каждого эмулятора просто свои заскоки. Стандартов эмуляции-то нет. =)
Придется под каждый эмулятор совместимость вручную делать.
-
Наполеоновские планы.
Уже что-то начато?
Только что, ArtHacker сказал:Ты же это имел в виду, да?
Это вариант. И он сильно зависит от того, какой именно эмулятор планируется использовать.
-
-
Так можно же сразу открыть скрипты в сейве эмулятора (с выключенной буферизацией).
Редактируй себе и тут же тестируй.
Автокомплит можно, да. Чтобы там сразу справка была, и все такое.
-
А что должен будет делать этот плагин?
-
В качестве личного развлекательно-образовательно-норкоманского проекта покатит.
А практической пользы ноль.
Если нужен "OpenOS в кармане" - куда перспективнее сделать эмулятор для Android.
-
2
-
1
-
-
Я твою идею понял, да.
Но ведь так можно и всё остальное сделать, как Doob описал.
Редактор лучше чем Атом ты не сделаешь всё равно.
-
Угарная тема.
Автор, если бы ты выбрал Java / Scala - я бы тебе помог с интеграцией эмулятора )
-
1
-
-
Шейпы принта не могут иметь нулевую толщину.

Ocelot - продвинутый эмулятор OpenComputers
в Эмуляторы
Опубликовано:
Ядро эмулятора - это Scala библиотека.
Она использует нативные Lua бинарники для эмуляции в обычном режиме. Запустить их на Андроид наверное не получится.
Но можно использовать Ocelot Brain в режиме LuaJ. Сохранения и ограничение ресурсов не будет доступно, но в остальном будет работать.
Изучать надо скорее всего не Java, а Scala.
Есть и второй вариант - это Ocelot Online, который можно и сейчас открывать с любого смартфона, где есть браузер.