В целом пользоваться уже чем-то можно, на пути стабилизация этого всего дела, реализация черепашки (надо будет подумать, комуниздить ли с CC или свою идею заложить)
Мини оплот VM готов, заодно я сильно прокачал Copilot, добавив в нейронку всего один набор скиллов - superpowers, нейронка начала гораздо качественнее прорабатывать планы.
Думаю над тем, как ввести квоты в VM и сделать рантайм плоностью независимым от minecraft, сейчас VM довольно сильно зависит от тиков сервера, буквально без них ничего не может делать. + квота на CPU считается от тиков, что черевато пульсациями в работе компьютера. Я хочу сделать независимую VM, но разумеется запросы к minecraft аля подвинься будут идти через тики
Думаю над тем, как ввести квоты в VM и сделать рантайм плоностью независимым от minecraft, сейчас VM довольно сильно зависит от тиков сервера, буквально без них ничего не может делать. + квота на CPU считается от тиков, что черевато пульсациями в работе компьютера. Я хочу сделать независимую VM, но разумеется запросы к minecraft аля подвинься будут идти через тики
Compukter Kraft | Dev
Мини оплот VM готов, заодно я сильно прокачал Copilot, добавив в нейронку всего один набор скиллов - superpowers, нейронка начала гораздо качественнее прорабатывать планы. Думаю над тем, как ввести квоты в VM и сделать рантайм плоностью независимым от minecraft…
С нейронкой даже получился мини abuse, так как Copilot измеряет квоты по запросам а не по токенам.
У VSCode есть такой MCP-сервер как askQuestion - по сути нейронка с помощью него может удобно задавать вопросы пользователю, НЕ прерывая промпт и тем самым нейронка может меня бесконечно спрашивать, но будет это всё в рамках одного запроса!
У VSCode есть такой MCP-сервер как askQuestion - по сути нейронка с помощью него может удобно задавать вопросы пользователю, НЕ прерывая промпт и тем самым нейронка может меня бесконечно спрашивать, но будет это всё в рамках одного запроса!
Compukter Kraft | Dev
Мини оплот VM готов, заодно я сильно прокачал Copilot, добавив в нейронку всего один набор скиллов - superpowers, нейронка начала гораздо качественнее прорабатывать планы. Думаю над тем, как ввести квоты в VM и сделать рантайм плоностью независимым от minecraft…
Передумал насчёт полной независимости от майна, потому что это будет нереалистично и не будет вписыываться в мир майна, допустим если мир тормозит, то VM будет по прежнему шустро работать(не считая tick bound операций), что по моему мнению плохо
Forwarded from Compukter Kraft | Dev
К сожалению (или к счастью) разрабы Create перестали поддерживать версию майна 1.20.1
В связи с этим я подумал стоит перехать на 1.21.1
Так мод ещё в разработке и ещё не скоро релизнется, то мне нет смысла писать на текущие версии )
В связи с этим я подумал стоит перехать на 1.21.1
Так мод ещё в разработке и ещё не скоро релизнется, то мне нет смысла писать на текущие версии )
Compukter Kraft | Dev
К сожалению (или к счастью) разрабы Create перестали поддерживать версию майна 1.20.1 В связи с этим я подумал стоит перехать на 1.21.1 Так мод ещё в разработке и ещё не скоро релизнется, то мне нет смысла писать на текущие версии )
Решил попробовать сделать проект сразу под несколько версий minecraft(на будущее), а потом и под несколько модлоадеров, хотя сейчас уже их 2, потому что большинство модов для 1.21.1 уже чисто на NeoForge, а в 1.20.1 остался Forge
Compukter Kraft | Dev
Решил попробовать сделать проект сразу под несколько версий minecraft(на будущее), а потом и под несколько модлоадеров, хотя сейчас уже их 2, потому что большинство модов для 1.21.1 уже чисто на NeoForge, а в 1.20.1 остался Forge
Пока особо разработка фич в моде не продвигается, я всё ещё в процессе оптимизации архитектуры проекта, под minecraft-agnostic подход. Я не хочу завязываться на Api minecraft, так как оно жесть как дрейфует с каждым дропом, но и поддерживать несколько копий кодовых баз тоже не хочется. я вынес всю несвязную с майном логику и на мой взгляд ещё куча осталась в version модулях
Разработка продолжается, я выстроил структуру мода, чётко разделив код на 3 слоя - core, common и loader-leaf, что позволяет писать мод одновременно под разные версии и разные модлоадеры, что я считаю огромным преимуществом по сравнению с ветками или stonecutter.
В случае с ветками придётся их руками поддерживать, резолвить конфликты и как-то следить чтобы общий код(разбросанный по всем сурсам) не расходился между ветками, что я считаю большой запарой. Ну и тестировать разумеется сложнее будет так как надо будет постоянно между ветками переключаться
В случае со stonecutter у тебя попросту меньше гибкости и ровно такая же проблема тестируемости и консистентности между версиями. Придётся свапаться между версиями или лоадерами с такой же частотой. Как и в случае с многомодульной структурой с общим кодом придётся также заморачиваться над архитектурой и разделением ответственности, иначе код будет всё сложнее поддерживать из-за
дрейфов api майна.
Но и у моего подхода есть свои минусы:
1. Дублирование кода только из-за разных версий зависимостей, придётся поддерживать и обновлять копии.
2. Сложная архитектура - надо стараться по максимуму абстрагироваться от кода minecraft, чтобы испытывать как можно меньше боли при поддержке, копировании, портировании
Я принял эти минусы и считаю что мой поход лучше. Мне субьективно не нравится подход с препроцессингом.
В случае с ветками придётся их руками поддерживать, резолвить конфликты и как-то следить чтобы общий код(разбросанный по всем сурсам) не расходился между ветками, что я считаю большой запарой. Ну и тестировать разумеется сложнее будет так как надо будет постоянно между ветками переключаться
В случае со stonecutter у тебя попросту меньше гибкости и ровно такая же проблема тестируемости и консистентности между версиями. Придётся свапаться между версиями или лоадерами с такой же частотой. Как и в случае с многомодульной структурой с общим кодом придётся также заморачиваться над архитектурой и разделением ответственности, иначе код будет всё сложнее поддерживать из-за
дрейфов api майна.
Но и у моего подхода есть свои минусы:
1. Дублирование кода только из-за разных версий зависимостей, придётся поддерживать и обновлять копии.
2. Сложная архитектура - надо стараться по максимуму абстрагироваться от кода minecraft, чтобы испытывать как можно меньше боли при поддержке, копировании, портировании
Я принял эти минусы и считаю что мой поход лучше. Мне субьективно не нравится подход с препроцессингом.
Сейчас занят в основном ui/ux, продумываю систему периферии и занимаюсь выделением IDE в отдельную сущность, а из компьютеров я её удалю, она не вписывается в компах совсем. Я считаю IDE должна быть отделена от исполняющей сущности.
Compukter Kraft | Dev
Разработка продолжается, я выстроил структуру мода, чётко разделив код на 3 слоя - core, common и loader-leaf, что позволяет писать мод одновременно под разные версии и разные модлоадеры, что я считаю огромным преимуществом по сравнению с ветками или stonecutter.…
Хотя я и реализовал довольно сложную архитектуру, разрабатываю я сейчас только под одну версию и под один лоадер )))))))
Compukter Kraft | Dev
Сейчас занят в основном ui/ux, продумываю систему периферии и занимаюсь выделением IDE в отдельную сущность, а из компьютеров я её удалю, она не вписывается в компах совсем. Я считаю IDE должна быть отделена от исполняющей сущности.
Придумал ещё штуку: в компьютерном столе можно будет совместно разрабатывать код и наблюдать за разработкой другого, я считаю это очень крутая фича
Вот что поделать....
Это последствия дрейфа между дропами майна.
Я часа 4 потратил чтобы разобраться почему не дропается item.
Нейронка потратила полчаса рыская по jar-никам и исходникам NeoForge...
А всё почему, потому что blocks остались как blocks. Но loot_tables почему-то надо было переименовать в loot_table.
И самое главное я знал что такое изменение было, но подумал что это лут таблиц не коснулось, так как там blocks.
Это последствия дрейфа между дропами майна.
Я часа 4 потратил чтобы разобраться почему не дропается item.
Нейронка потратила полчаса рыская по jar-никам и исходникам NeoForge...
А всё почему, потому что blocks остались как blocks. Но loot_tables почему-то надо было переименовать в loot_table.
И самое главное я знал что такое изменение было, но подумал что это лут таблиц не коснулось, так как там blocks.
Разработка активно продолжается, но пока я всё ещё не могу выложить мод в открытый доступ, даже для тестов, потому что толком основной usecase не покрыт увы.
Коротко что было сделано:
1. Добавил runtime gametesting и подтянул тесты, чтобы дальше развивать систему без регрессий.
2. Я собрал новую screen-first/compiled UI-архитектуру: declarative DSL, layout-контейнеры, modifiers, цветовую модель, измерение текста и базовые примитивы рендера - В итоге получился Jetpack Compose like DSL, но без его жирного рантайма и магических преобразований. По сути я сделал минимальный рантайм, все статичные элементы просто складываются в список и потом уже при отрисевке просто рисуется весь список элементов сплошняком, без динамических перерасчётов каждый кадр. Разумеется динамика есть, например ветвления, тултипы, popups, это приходится пересобирать, но не каждый кадр, а только когда состояние меняется. Досиг минимум overhead и максимум читаемости кода, пушто я задолбался смотреть на рисование прямоугольников с магическими числами.
Сейчас в процессе переноса всех своих UI экранов на новый DSL.
3. Перевел terminal/runtime на stream I/O и VT-последовательности, добавил terminal session model, scrollback, shared-session broadcaster и portable terminal item с 3D-моделью и отдельными текстурами. Теперь клиентский терминал связывается с сервером только посредством STDOUT и STDIN, что существенно снижает кол-во передаваемых данных, по сути довольно близко к Unix философии и SSH подобному взаимодействию
Сейчас хочу стабилизировать эти фичи и наконецто выложить первую версию для 1.21.1
Коротко что было сделано:
1. Добавил runtime gametesting и подтянул тесты, чтобы дальше развивать систему без регрессий.
2. Я собрал новую screen-first/compiled UI-архитектуру: declarative DSL, layout-контейнеры, modifiers, цветовую модель, измерение текста и базовые примитивы рендера - В итоге получился Jetpack Compose like DSL, но без его жирного рантайма и магических преобразований. По сути я сделал минимальный рантайм, все статичные элементы просто складываются в список и потом уже при отрисевке просто рисуется весь список элементов сплошняком, без динамических перерасчётов каждый кадр. Разумеется динамика есть, например ветвления, тултипы, popups, это приходится пересобирать, но не каждый кадр, а только когда состояние меняется. Досиг минимум overhead и максимум читаемости кода, пушто я задолбался смотреть на рисование прямоугольников с магическими числами.
Сейчас в процессе переноса всех своих UI экранов на новый DSL.
3. Перевел terminal/runtime на stream I/O и VT-последовательности, добавил terminal session model, scrollback, shared-session broadcaster и portable terminal item с 3D-моделью и отдельными текстурами. Теперь клиентский терминал связывается с сервером только посредством STDOUT и STDIN, что существенно снижает кол-во передаваемых данных, по сути довольно близко к Unix философии и SSH подобному взаимодействию
Сейчас хочу стабилизировать эти фичи и наконецто выложить первую версию для 1.21.1
С начала порта на 1.21.1 кодовая база выросла более чем в 2 раза. Жесть.
Итого на сегодня:
27к строк кода
263 коммита
Ни одной публикации, прошлую на 1.20.1 я удалил, так как толку в ней 0
Итого на сегодня:
27к строк кода
263 коммита
Ни одной публикации, прошлую на 1.20.1 я удалил, так как толку в ней 0
Сделал и выложил первый релиз на 1.21.1, по сути своего рода Hello World!
Прошу любить и жаловать! Мод пока очень сырой, багов много, ну и в целом в моде особо пока ничего нет, 2 блока да предмет )
Плюс мод скорее всего не совместим с Kotlin For Forge, но это как я знаю решается.
Если кому интересно, то можете потестить, завести issues )
https://modrinth.com/mod/compukterkraft
Прошу любить и жаловать! Мод пока очень сырой, багов много, ну и в целом в моде особо пока ничего нет, 2 блока да предмет )
Плюс мод скорее всего не совместим с Kotlin For Forge, но это как я знаю решается.
Если кому интересно, то можете потестить, завести issues )
https://modrinth.com/mod/compukterkraft
compukterkraft-1.21.1-0.1.0.jar
4.5 MB
На Modrinth довольно долго апрувят, так что продублирую мод здесь
пока на neoforge, если нужно будет, сделаю на fabric или вообще quilt
пока на neoforge, если нужно будет, сделаю на fabric или вообще quilt