Для себя · с 7 октября 2026 · в работе AI-Created
Thaumcraft 4
Порт большого магического мода на современный Minecraft — с поведением оригинала 1:1
Цель — точная копия Thaumcraft 4 для своей сборки All the Mods 11.
- 859файлов .java в оригинале, 142 579 строк
- 21 392строки Java в порте, 179 файлов
- 52коммита за 16 дней
- 67 / 226блоков и предметов оригинала
- 819 / 111текстур и звуков — без изменений
- 22языка переводов
- 39автотестов GameTest, все проходят
- 3 из ~10подсистем перенесено и слито
За двенадцать лет между версиями игры изменилось почти всё API. Поэтому это переписывание систем, а не перекомпиляция: каждая подсистема собирается заново поверх нового движка и сверяется с оригиналом.
Моя роль
Автор и руководитель проекта. Цель — точная копия для ATM11; ограничения — версии строго под сборку, только локально, без публикации. Ключевые решения: Curios вместо Baubles, перенос подсистем параллельно в отдельных ветках git со слиянием в основную. Проверка результата — в игре.
Глава IСправочник оригинала
- jar 4.2.3.5 декомпилирован Vineflower с читаемыми именами MCP — только для сверки, в мод не входит
- пакеты и имена классов как в оригинале: каждый класс порта сопоставляется с исходным
- каждое отступление от оригинала записано в документ своей подсистемы
Глава IIАрхитектура
- общие отложенные реестры для всех подсистем
- загрузка данных по фазам, как в оригинале: предметы → рецепты → аспекты
- свои сетевые пакеты: таблица аспектов и знания игрока
- генераторы на Python: 1 973 файла моделей, состояний, переводов, добычи и тегов — из таблицы «старый id → новый id»
- подсистемы — в отдельных ветках git (worktree), затем слияние в основную
Глава IIIЧто уже работает
- 67 блоков и 226 предметов, своя вкладка творческого режима с порядком как в оригинале
- аспекты: у предметов и мобов, расчёт по рецептам на сервере, иконки в подсказке
- знания игрока: изученные аспекты, сканы, варп
- броня (таумиевая, пустотная, робы, крепость, сапоги путешественника, ховер-пояс) и инструменты, включая стихийные и багровый клинок
- аксессуары через Curios, рунический щит, 5 зачарований
- мир: руды, кристаллы, великое и серебряное дерево, мана-стручки, курганы, постройки в деревнях и 4 биома
Глава IVКачество
- 39 автотестов GameTest на выделенном тестовом сервере игры, все проходят на основной ветке
- проверяют добычу всех блоков, руды и янтарь, расчёт аспектов по рецептам, броню, инструменты и зачарования, слоты Curios
- и мир: растения, кристаллы, мана-стручки, шансы биомов, жилы руд, курганы, деревенские постройки
Глава VТрудности перевода
С Minecraft 1.21.2 рецепты не приходят на клиент, а оригинал считал аспекты по рецептам прямо там.
Расчёт перенесён на сервер, готовая таблица аспектов уходит клиенту своим пакетом при входе и при перезагрузке данных.
В 1.7.10 один блок или предмет хранил до 16 вариантов в числе meta — в современной игре такого нет.
Каждый вариант стал отдельным блоком или предметом с понятным id; по таблице соответствий генерируются модели, переводы, теги и добыча.
Нет OreDictionary и ISpecialArmor из Forge 1.7.10.
OreDictionary заменён прослойкой с теми же именами поверх общих тегов c:. Для пустотной робы и брони крепости воспроизведён расчёт брони Forge 1.7.10 — защита и износ как в оригинале.
У генератора мира 1.7.10 нет прямого аналога, а современная feature может трогать только свой чанк и соседние.
Генератор разбит на три feature с исходными шансами и высотами, биомы встроены через Mixin в многошумовой источник биомов — без TerraBlender.
Версии NeoForge, Curios, JEI и Java должны совпадать со сборкой ATM11.
Версии сверены со списком модов сборки и зафиксированы; Baubles заменён на Curios, который в сборке уже есть.
Глава VIНайденные баги
Магические растения не сажались на траву
Проверка почвы шла через ванильный тег minecraft:dirt, а в 26.1 трава в него больше не входит — в том числе при генерации мира.
Исправлено: Явная проверка травы и подзола, как в Forge 1.7.10; автотесты генерации мира доведены до прохождения.
Сапоги путешественника и шаг на блок
В 1.7.10 высота шага ставилась только на клиенте, а в 26.1 сервер сверяет движение со своей высотой шага.
Исправлено: Эффект применяется на обеих сторонах; заодно «тик брони» на клиенте больше не срабатывает для чужих игроков.
Генерация мира выходила за допустимую область
Код 1.7.10 свободно трогал блоки соседних чанков, а в 26.1 feature может трогать только свой чанк и 8 соседних.
Исправлено: Чтение и запись генератора ограничены этой областью.
Глава VIIДрево исследований
Изучено и слито в основную ветку
- Основарегистрация, ресурсы, переводы
- Аспектымагические свойства предметов
- Снаряжениеброня, инструменты, аксессуары, рунический щит
- Генерация мираруды, деревья, растения, биомы, постройки
Впереди
- Исследования и Таумономикон
- Жезлы, вис и узлы ауры
- Алхимия и инфузия
- Существа и големы
- Порча и варп
- Визуальные эффекты
- Интеграция с JEI
ИллюстрацииИз игры





Текстуры, модели и звуки на скриншотах — оригинальные ресурсы Thaumcraft 4 (автор Azanor).
ПриложениеСтек и навыки
Стек
Java 25 · Minecraft 26.1.2 · NeoForge 26.1.2.109 · Gradle + ModDevGradle · Curios API · Mixin · GameTest · Python 3 · Vineflower + MCP · Git: worktree, ветки, слияния
Что показывает проект
перенос legacy-кода · архитектура крупного проекта · декомпозиция задач · организация параллельной разработки · автоматизация · тестирование · работа с ограничениями платформы
Оригинальный Thaumcraft — мод Azanor под лицензией All Rights Reserved. Порт личный и не публикуется, поэтому здесь только описание: без кода, сборок и ссылок на репозиторий.