ПроектыФорумОцените

Bomber Kat - классический бомбер с котиками! (3 стр)

Страницы: 1 2 3 4 Следующая »
#30
(Правка: 5:25) 5:14, 4 июня 2026

ну вот я и попал.
полез вносить правки руками, а код, как оказалось по итогу, по структуре изначальному паскалевоскому не соотвествует.

я получил свои "стандартные" нейрослопоспагетти с глубокими if if if else, перенося и дублируя логику в разных местах. Ну что ж... я знал на что шёл.

#31
14:16, 4 июня 2026

мои поздравления!
Не проще было меня попросить модифицировать версию ZenGL под нынешний iOS?

#32
(Правка: 17:49) 14:55, 4 июня 2026

кого попросить?
я думаю, у тебя есть занятия по-интереснее, чем обеспечивать поддержку сторонним коммерческим продуктам

#33
23:00, 4 июня 2026

хм. походу дела, с пользой нужно агента для конвертации так использовать:
1) писать архитектурную основу руками. Классы, интерфейсы, прочее
2) давать команду на конвертацию конкретных частей
3) следить за тем, чтобы конвертация была максимально близкой от исходника (экономит время на сравнение)
иначе, фантазия ии-шку очень далеко от оригинала может увести

#34
0:16, 5 июня 2026

skalogryz
> я думаю, у тебя есть занятия по-интереснее
вообще-то это тоже интересно. Просто ни кто не спрашивал о таких возможностях, а сам я не заморачивался этим потому что ни кому не нужно. )))

#35
(Правка: 19:34) 19:05, 6 июня 2026

skalogryz
> Ну т.е. чтобы что-то получить толковое от китайской комнаты, китайский придётся таки выучить.
по-классам заставил переписать код, так чтобы его можно было сопоставить (и отладить), при сравнении с паскалем.

skalogryz
> я ожидал использование AnimatedSprite2d.
дальнейшее курение манула, показало. Что ИИ-шка так и не довела до ума перенос "своего формата" спрайтов в Годотный.
кроме анимации (чем занимается AnimatedSprite2d), нужно ещё использование ресурса SpriteFrames. (тогда и спрайты можно удобно редакторивать в годоте).

Склоняюсь, что после порта игры на Годот (для мобилки), таки сделаю порт на юньку (для tvOS)

upd
Нейро-эпилепсия!

Исходные данные. Есть две анимации в разных sprite-sheet-ах:

door_open/
  door_open
door_closed/
  door_closed

это два разных ресурсных файла. Их можно объединить в один

door/
  open
  closed

просто будет один файл.  (с потенциалом использовать разные двери)

даю команду, объедини в один. Выхлоп

door/
  open_0
  closed_0

а в коде ещё дописано - выкусывать всё то, что перед "_" и использовать его как имя. (ну т.е. "open_0" -> "open")

зачем?! это какой-то стандарт?! работа ради работы.

#36
(Правка: 7:34) 1:55, 7 июня 2026

интересная проблема.

в исходном варианте, кадры анимацию могут зеркалится в зависимости от направления юнита. (если идёшь на восток, возьми кадр хождения на запад и отзеркалься).
Базовый функционал для низкобюджетных 2д игр.

Но в паскаль версии, свойство "отзеркалься" это свойство отдельного кадра в анимации.
В Годот, "отзеркалься" это не свойств кадра, и не свойство последовательности кадров, это свойство уже непосредственно аниматора.

+ Показать

ИИ на это успешно забил (т.к. для ГГ отрисованы все 4 направления, что ИИ взял за истину, и скопипастил для всех остальных юнитов)

правлю руками, чо (код отвечающий за актуализацию аниматора). Мне так проще.

PS:  переправка с "творчества ИИ" на "ближе к паскалю" разрулила проблемы с кодом (н.р. ракеты противников летают как положено, а не только на 2 ближайшие клетки. Черепашек можно толкать). Подспудно разрулились проблемы с отрисовкой (одна из которых упомянута выше).
+ разобрался (???) как вносить правки в маппинг спрайтов.

Наверное ИИ чё-то там и ускоряет. Потому что, чистого, сравнения уже не получится. Т.к. не с нуля пишу. Но после бодрой разработки вайбкодингом, всё-равно приходится отлаживать и править руками.

#37
(Правка: 21:23) 19:55, 7 июня 2026

рассуждения ИИ-шички, на запрос "сделай мне хорошо, на unity":

+ 25 минут и 42% от 5 часового лимта Codex-а. Chat GPT 5-5. Medium reasoning

итоговый проект не запускается. Валится с ошибкой на старте:

ArgumentException: Could not create sprite (220, 20, 44, 44) from a 256x64 texture.


upd
я предложил ИИ отказаться от подхода: "всё делать в рантайм", на дизайн-тайм со сценами.
При конвертации первого экрана, модель подтащила пакет TextMeshPro, на что unity ругнулся предупреждением, о том, что пакет, вообще-то уже устарел.
Не успевают модели тренировать!

но первый экран сконвертирован. И уже можно подгонять его руками:
bomerkatunity | Bomber Kat - классический бомбер с котиками!
проект всё ещё падает при запуске

ArgumentException: Could not create sprite (450, 56, 150, 200) from a 512x256 texture.

очевидно, что сконвертировать спрайт-шиты как спрайт-шиты, у ИИ мозга не хватило, и все они легли как runtime создание спрайтов.

Но ничего, сейчас будем убедити!

#38
2:21, 8 июня 2026

нда... он калобласил изрядно.
0) он создал проект для юнити, коих я никогда не видал - без сцен!
игра пыталась запуститься за счёт AfterSceneLoad (при отсутствии последних).
1) ладно, я его заставил создать сцены (главное меню, экран игры).
2) но сама игра всё ещё инициализировалась в ран-тайме этого самого AfterSceneLoad.
3) анимации он пытается грузить из годот формата руками (вместо Animation Clip+Animation+Sprite)
полное отсутствие соображалки.

Сначала тратишь половину токенов не "конвертацию", а потом ещё лимита 4-6 до доведения до человекочитаемого состояния.

#39
(Правка: 6:25) 6:22, 20 июня 2026

Вернулся в проекту и решил забросить юнити.

Конвертация далась ему очень плохо. С полпинка не заиграло, с ещё больше пинков - не заиграло.
Но главные вилы, как ни странно идут от юньки. Т.к. юнити делает лок на проекте, и редактор второй раз на открытом проекте уже не запустить.
А ИИ постоянно пытается пересобрать проект, чтобы убедиться, что "ошибок нет". Это означает, что редактор нужно закрыть мне.
Подождать ИИ-шку, и потом открывать юньку снова, что само по себе процесс не скорый. Задолбало. (в Годот такой бюрократии нет)


По-этому решил оставить эту затею с юнькой и вернуться к годот.
С добавлением режима, которым паскаль так и не разжился - локальным мультиплеер.

Локально сейчас мало кто играет, и вообще это удел приставок. Но почему бы и нет?! Благо у меня два геймпада для iphone

Завёл в кодекс запрос: так мол и так, нужно бы добавить локальный мультиплеер на геймпадах.
И чтобы камера не центрировалась ни на каком игроке, а тупо на центре поля.

И таков код был изначальный:

  private void UpdateCamera()
  {
    if (_camera == null || _campaign == null)
      return;

    var core = _campaign.Current.Core;
    var viewportSize = GetViewportRect().Size / _camera.Zoom;
    var fieldSize = new Vector2(core.Width * TileSize, core.Height * TileSize)

Смысл его, что он получает размеры поля, чтобы знать ограничения и камера далеко не уезжала.


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

  private void UpdateCamera()
  {
    if (_camera == null || _campaign == null)
      return;

    var core = ActiveCore;
    var viewportSize = GetViewportRect().Size / _camera.Zoom;
    var fieldSize = new Vector2(core.Width * TileSize, core.Height * TileSize)

я ему говорю - чё-то не центрируется камера.
он мне отвечает: "мамой клянусь сейчас будет центрироваться", и вносит правки...

  private void UpdateCamera()
  {
    if (_camera == null || _campaign == null)
      return;

    var core = ActiveCore;
    var viewportSize = GetViewportRect().Size / _camera.Zoom;
    var fieldSize = new Vector2(core.Width * TileSize, core.Height * TileSize)
    if (IsLocalMultiplayer)
    {
      // вольная интерпретация от меня:         
      _camera.Position = иди в центр, дура; 
      return;
    }

камера естественно не центрируется.
а почему?!
> , и "кор" можно получать из других объектов
а лечится так:

  private void UpdateCamera()
  {
    if (_camera == null )
      return;

естественно, я ему не стал говорить, поправил сам.

Подождём очередной Ofigabel 100500 от очередной ИИ конторы. Это не единственная проблема оказалась, то это то, с чем я разобрался и вот отчитываюсь.
Но так или иначе, желаемый режим игры он добавил, два и более игроков, действительно играют.

#40
(Правка: 7:39) 7:21, 20 июня 2026

собственно не отходя от кассы (лимит же токенов не кончился... даже до половины не дошёл)

состребовал написать бота:
mutliplayer | Bomber Kat - классический бомбер с котиками!

туповат, но играет!
плохо пытается прятаться от собственного огня - застревает на полклетки, и получает повреждение.
Обычно умирает до того как я успеваю до него "докопаться"

Беги! Спасайся!
sample | Bomber Kat - классический бомбер с котиками!

И история повторяется: "не работает, так и так". "да, господин, не работает. Сейчас исправлю господин, мамой клянусь! Всё готово, господин!".

+ запускаю обновление
#41
11:16, 20 июня 2026

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

#42
18:49, 20 июня 2026

elcar
врят ли.
проблема в проверке достиг он цели, или нет.
но пока я это отлаживал, обнаружил, что галлюцинации нанесли ещё больший вред ранее. Более фундаментально.

Описать это можно так. В паскаль версии центр клетки это .5, .5.
ИИ при конвертации он поменял логику, что центр клетки .0, .0. В некоторых ответственным местах он начинает эту фигню компенсировать тем, что добавляет недостающие .5. (например при расстановке спрайтов)

В итоге, я руками, переношу движок. Поверх того, что уже есть (благо ооп, и я уже раньше потребовал структуризации по аналогии с паскалем), но так или иначе руками.

Вся интеграция с Годот остаётся, как есть - нейрослопом. (хотя я и там правки руками вносил, местами)

#43
(Правка: 10:08) 10:01, 21 июня 2026

сделал сборку и погонял на андройде.
что удивило, так это лютая чувствительность (не оптимизированность?) годота на андройде.

Изначально вся карта:

+ Показать

целиком рисовалась на отдельных спрайтах (Node)

при запуске на андройде FPS просел, где-то до 4-10fps в секунду. Замеров нет, но на глаз видно.

напряг ИИ чё-нить посоветовать, и первое, что он предложил: "а давай мы это будем на TileMapLayer делать?" (классика жанра ИИ: первый вайбкод всегда не идеален)
Оке, ИИ переписал, и о чудо FPS стал нормальным 30+ . (опять же без замеров, но на глаз тормозов не видно).

Но, так или иначе, 256 отдельных спрайтов дают такую просадку FPS, по сравнению с отрисовкой того же объёма через TileMapLayer?!
это ну очень странно. (один Node рисуется 70ms?! жесть же)

ЗЫ: ну и запуск приложения тож так себе. 15 секунд (10 секунд время между "стартовой иконкой" и "лого готод"... ещё 5 секунд "лого готод"). Как это оптимизировать вообще не понятно.

#44
9:17, 24 июня 2026

взрывы и разрывы тел как в оригинале. здорово получилось

Страницы: 1 2 3 4 Следующая »
ПроектыФорумОцените