11 Commits

Author SHA1 Message Date
shiva404
b1548ea182 Сделал ещё одну очевидную оптимизацию - кэширование матриц препятствий, результат превзошёл всё ожидания. 300 объектов - плавные 60 фпс, 500 объектов - 60 фпс с микрофризами. Для масштабов игры этого уже более чем достаточно. Теперь следует добиться такого же для более слабых машин, надо выбрать минимальные системные требования. 2026-03-06 04:00:43 +03:00
shiva404
fa189a4c3b Попробовал самую очевидную оптимизацию рендера, теперь отрисовываются только те клетки, которые в камере. Карта корраптится при движении камеры, надо исправить, зато масштаб работает и прирост производительности очень хороший, теперь до 200 объектов обрабатывается при стабильных 60 ФПС. Промежуточный коммит, хочу посмотреть сколько можно ещё выжать кадров на 500 объектах, потом нужно починить движение камеры. Также написал простую функцию спавна эльфов в главном цикле для создания нагрузки. Эльфы создаются в углах карты и по центру каждые сто тактов цикла. Они начинают перемещаться по карте в случайные точки, создавая относительно равномерную нагрузку поиска пути. 2026-03-05 22:00:32 +03:00
shiva404
45f2c71cb8 Добавил систему задач для юнитов, она реализована в методе update класса Creature. Подчистил код, пофиксил по мелочам баги. Остался ещё техдолг Егору и задачи из main. 2026-03-05 16:35:08 +03:00
shiva404
6b6ca341dc Добавил ускоренный A* из библиотеки pathfinding - произволительность выросла, но несильно. Пока этот вариант закомментил, сейчас реализация BFS + walkable матрица, работает гораздо лучше, с неоптимальным рендером 100 объектов держит, без рендера 300. 2026-02-24 02:03:22 +03:00
shiva404
171eff1434 pre commit, make CAPS tasks from main 2026-02-20 02:09:43 +03:00
shiva404
b34aaa1664 shameslop, but gui still works. 2026-02-16 17:20:37 +03:00
shiva404
f89e0a86c4 Profiling functions were added. 2026-02-16 01:31:16 +03:00
shiva404
f679dde81f P.S. to previous commit: instead of Sprite flow load_sprites function was changed: gathering the number of sprites with the same names before second _ and hold it at sprites dict. also now sprites must be named as objectname_action_number. Main commit - full sprites support, with caching, transparency and smooth scaling. drawing function moved to Object methods 2026-02-15 21:23:02 +03:00
shiva404
ab58803373 initial sprite animation support 2026-02-15 18:17:31 +03:00
shiva404
d6a106301e initial sprites support, only terrain for now 2026-02-14 03:09:52 +03:00
shiva404
d7184ddab1 hlwrld1 2026-02-13 23:34:24 +03:00