34просмотров
20 февраля 2026 г.
story📷 ФотоScore: 37
Я случайно изобрёл новый язык программирования!😏 Не думайте, что случилось что-то невероятное. Этих языков программирования как говна за баней и каждый уважающий себя программист хоть раз в жизни, но создаёт один. Прикол именно в том, что я создал его случайно. Вот так сижу я годами, никого не трогаю, пилю свою диалоговую систему для визуальной новеллы, а потом вдруг оказывается, что по факту это не диалоговая система, а язык программирования. Тюринг-полный. На академическом языке та чупакабра, которую я создал, называется «типизируемый императивно-декларативный язык программирования интерпретируемого типа». Я же любовно назвал его RoidTwine (т.е. «Twine на стероидах»). Знаете, я бы и дальше игнорил голосок в голове, который говорил «Ну это же диалоговая система, а не язык!» хотя все признаки были на лицо (переменные, стек исполнения), пока… Пока не увидел своими глазами, что сложность автотестирования каждого последующего диалога в игре растет в геометрической прогрессии (7 секунд, 40 секунд, ~2.5 минуты и т.д.) и при попытке оптимизации этого я не дошёл до единственно верного решения — симуляции каждого разговора только с используемыми в разговоре переменными. Для непонимающих: это не просто признаки языка программирования, а буквально кричащие факты. Мне же, чтоб смириться с этим, пришлось поговорить с ЧатомГПТ. Попутно я узнал, почему в других диалоговых системах для игровых движков нет автотестирования и почему разрабы до сих пор прокликивают все диалоги ручками. Да, систему автотестирования дорого и долго делать! В чём я убедился на собственном опыте. Мда… В общем-то лучше понять это поздно, чем никогда. С другой стороны — даже если бы изначально я это понял, мне бы это не помогло. Написать автотестер, который бы проходил сам по всем выборам и выявлял ошибки не представляется возможным из-за… минимум 2³⁵ = 34 359 738 368 комбинаций переменных, которые компьютер должен обработать. Короче, тестирование в симуляторе каждого отдельного диалогового файла - возможно. Тестирование всей игры в симуляторе — нет. Потрачено: более трёх месяцев жизни.