TGViewer
Технологии Чайника Технологии Чайника @teatechnology · 41 subscribers
Post #819 104
Технологии Чайника Кстати, возвращаясь к изначальной идеи канала, я хочу вспомнить Mindustry, так как недавно опять вернулся в эту игру, после чего вспомнил, что я же не новичок, а продвинутый игрок... Знаю почему пластановый конвейер можно использовать вместо маршрутизатора…
Буферизация, мысли о стеке, ассемблер и GUI...

Я выгорел от программирования всё это лето, не программирую уже третью неделю, не считая совсем уж мелочи какие-то... Но тут неожиданно меня именно mlog в Mindustry вернул в желание программировать...

Команды в mlog идут последовательно:
print "Числа 1-5: "
set i 1
print i
op add i i 1
jump 2 lessThanEq i 5
printflush message1

В графической оболочке внутри самого Mindustry более понятно, но тут суть в том, что я добавляю в буфер сообщений "Числа 1-5: ", потом задаю переменную i как 1, потом добавляю к i 1, потом прыгаю на вторую строку - это добавление i в буфер текста и команды ниже, учитывая, что идём сверху вниз, но прыгаем только если i <= 5, а иначе прыжка не будет и выполнится команда ниже, а она сбрасывает текстовый буфер, выводя его в message1 - это блок сообщения стоящий рядом, к которому привязал процессор...
По итогу выводится: "Числа 1-5: 12345"

И вот такое это подобие ассемблера, где надо думать над оптимизацией... у каждого процессора своя скорость, у маленького три тика в секунду, если я не путаю... У большого уже значительно больше... И тут как раз и раскрывается оптимизация, в том, что я могу менять color для следующий команды каждый тик, но тогда будет медленно работать команда, поэтому выгоднее не менять color каждый тик, а отрисовывать многоугольники одинаковых цветов сразу, ну и прочие такие мелочи...

А самое интересное, что я вчера делал радар... Он работал так, что у меня есть туррель, она ищет ближайшего игрока в области видимости привязанной туррели и через сенсоры и внутреннюю арифметику я высчитывал где находится игрок относительно радара... Но суть в том, что это работало медленно: я сначала рисовал весь фон, необходимый для корректного отображения, чтобы понимать что происходит, а только потом логику радара после отрисовки фона... Ну и конечно всё работало медленно, ведь отрисовка забирала все тики и логика обновлялась редко...

Потом я поставил большой процессор - он уже работал быстрее, а так же я провёл явную оптимизацию, как раз до минимума убрав лишнее переключение команду туда и обратно и смог сделать возможным отображать двух игроков сразу на радаре, при этом увеличив скорость (суть в том, что я ставлю блок туррели, привязываю к процессору, потом туррель через свои функции ищет находящихся в своём радиусе игрока, только одного, потом долгой арифметикой я превращаю абстрактного "Игрока" в координаты, где он находится, его имя и прочее)

Но потом пришла в голову гениальная идея...

Сначала думал сделать 4 маленьких процессора - первый отрисовывает фон, а другие отрисовывают найденных игроков, по итогу игроки как и на радаре имеют эффект "Мигания", ведь перерисовка фона каждый раз накладывается сверху на дисплей, как и отрисовка игрока, но потом я понял, что их можно подружить... и тут уже вопрос в реализации, но ясно одно: должен быть один большой процессор и несколько маленьких

Можно сделать либо так, что большой процессор отрисовывает фон и просчитывает логику, общаясь через ячейку памяти с четырьмя процессорами (ячейка памяти - хранилище только чисел в 8 ячейках, то есть подобие стека, а только 4 процессора, потому что один процессор хранил бы X и Y игрока - пара значений, словно специальная аналогия с парами байтов во взрослом программировании), а маленькие процессоры бы просто отрисовывали игроков, ещё и получая информацию об их нахождении
Либо можно сделать так, чтобы большой процессор регулировал прерывания, то есть динамически проверял на какой сейчас строке находятся маленькие процессоры (реализация через #links для удобства и да, можно проверить на какой сейчас строке процессор), а потом большой процессор просто "Усыплял" процессоры маленькие, пока он сам не отрисует фон, в итоге фон опять перекрывает старые отрисовки, чтобы не было как в старой Windows с отрисовкой окна бесконечно прыгающим эффектом, но при этом и будут поверх уже отрисовываться игроки с помощью маленьких процессоров, в итоге получится обычная синхронизация, которая будет быстро работать из-за скорости большого процессора
  • ❤ 1
More from @teatechnology
  1. Oct 15, 2026Мне интересно как так вышло, что я противник кукодинга и замены людей в IT нейросетями, но…
  2. Oct 15, 2026Я всегда против консерватизма в любом его проявлении (кроме Debian), однако появился ИИ...…
  3. Oct 15, 2026Post #886
  4. Oct 14, 2026Ну чтооож..... Надо бы выходить из состояния трупа...
  5. Oct 13, 2026Давно в голове крутится идея ИИ-тамагочи Идея на поверхности, потому думаю уже реализована…
  6. Oct 13, 2026Post #883
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →