итоги такие шо сча побалансю чучуть начало, потестирую маленько еще и закину на итчево и господину из херокрафт, а то как-то заболел и не ответил ему уже неделю как(
пока тестил на сносность кусок из 10 раундов для демо/теста - решил проверить, как будет вести себя эта забава под нагрузкой. и получилось так, что при значительном увеличении числа юнитов начинались просадки по фпс.
при этом если раньше просадки были под нагрузкой на видеопамять из-за плохо организованных текстур, то сейчас лаги были даже с отключением всей тяжелой графики - просто при увеличении числа инстансов. стал чекать.
получилось, что работает это так, что есть fps и real_fps. fps это то, что видит игрок - та частота, с которой обновляются картиночки на экране. она у меня залочена на стандартные 60. то есть, каждые 1/60 секунды движок совершает кучу вычислений, которые в конечном итоге результируются в картинку на экране. и так 60 раз в секунду.
real_fpr - это сколько "кадров" обсчитывает проц за ту же секунду. если real_fps > fps - то всё ок. это говорит о том, что процессор может обработать большее количество кадров, чем нужно и значит картинка будет обновляться каждые 1/60. но если real_fps падает ниже, чем таргет по fps - то fps фактически идет вниз по капу real_fps. это значит, что вычисления каждого кадра занимают больше, чем 1/60 секунды, соответственно за это время игра не может обсчитаться как следует, просит на это больше времени и частота смены кадров дропается. как если бы я сказал, что могу есть по 60 сосисок в день, а по факту могу съесть 90. но меня просят съесть только 60. но если вдруг размер сосисок увеличится в два раза, то моя реальная сосисковместительность составит 45 штук в день, и вместо старых 60 на счетчике я буду показывать 45.
так вот. эти поганые лаги. с одной стороны были понятно, что лагает при большом числе инстансов потому шо я плохо все оптимизировал - часть объектов и партиклов жила своей жизнью даже если объект был вне экрана (т.е. их можно деактивировать), еще часть вычислений проводится каждый фрейм, хотя можно заменить эти вычисления на вызовы по требованию и т.д. но с другой стороны траблы с фпс наблюдались при низком уровне загурзки ЦПУ и РАМа. а это уже ни в какие ворота!!! т.е. сидишь на 14 ядрах в цпу с моднейшей видеоебучкой и огромным запасом по рам, нагрузка по игре тебе показывает 20% по цпу, 5% по рам и 15% по видеве, но при этом фпсы дропаются и из аналитичекой тулзы ты видишь, шо дроп происходит из-за большого времени на вычисления в каждом фрейме (т.е. не видева!)
пошел смотреть в чем обман. оказалось, шо в новой модной версии GameMaker компилятор модный, но крутит четотам однопотоковое и работает на верхнеуровневом языке (тупа на жава скрипте по сути). отсюда он хорош для отладки и повседневной разработки, но билдить на нем для господ не стоит, если в игре есть сложные вычисления (не мой случай) и их много (мой случай).
пошел смотреть че таместь по SDK. и оказывается есть православный компилятор, который будет собирать всю хурму по кучу-лет, но на выходе отдаст МАШИННЫЙ КОД из твоих колхозных скриптов.
накатил 16 гигабут этого счастья. выдает 2000 ошибок компиляции сволочь. туды сюды из реальных осталось 3-4 штуки, так и не понял че он хотел, просто перевисал код инциализирующий один из объектов - и он заткнулся. в итоге на живом машинном коде то, что имело real_fps около 60 под нагрузкой на виртуально-машинном компилятор стало летать с 400-500 real_fps на машинном. во как.
ну при этом оптимизация у меня все равно ущербная, просто теперь ее можны скрыть за кулисами ноликоединичек
при этом если раньше просадки были под нагрузкой на видеопамять из-за плохо организованных текстур, то сейчас лаги были даже с отключением всей тяжелой графики - просто при увеличении числа инстансов. стал чекать.
получилось, что работает это так, что есть fps и real_fps. fps это то, что видит игрок - та частота, с которой обновляются картиночки на экране. она у меня залочена на стандартные 60. то есть, каждые 1/60 секунды движок совершает кучу вычислений, которые в конечном итоге результируются в картинку на экране. и так 60 раз в секунду.
real_fpr - это сколько "кадров" обсчитывает проц за ту же секунду. если real_fps > fps - то всё ок. это говорит о том, что процессор может обработать большее количество кадров, чем нужно и значит картинка будет обновляться каждые 1/60. но если real_fps падает ниже, чем таргет по fps - то fps фактически идет вниз по капу real_fps. это значит, что вычисления каждого кадра занимают больше, чем 1/60 секунды, соответственно за это время игра не может обсчитаться как следует, просит на это больше времени и частота смены кадров дропается. как если бы я сказал, что могу есть по 60 сосисок в день, а по факту могу съесть 90. но меня просят съесть только 60. но если вдруг размер сосисок увеличится в два раза, то моя реальная сосисковместительность составит 45 штук в день, и вместо старых 60 на счетчике я буду показывать 45.
так вот. эти поганые лаги. с одной стороны были понятно, что лагает при большом числе инстансов потому шо я плохо все оптимизировал - часть объектов и партиклов жила своей жизнью даже если объект был вне экрана (т.е. их можно деактивировать), еще часть вычислений проводится каждый фрейм, хотя можно заменить эти вычисления на вызовы по требованию и т.д. но с другой стороны траблы с фпс наблюдались при низком уровне загурзки ЦПУ и РАМа. а это уже ни в какие ворота!!! т.е. сидишь на 14 ядрах в цпу с моднейшей видеоебучкой и огромным запасом по рам, нагрузка по игре тебе показывает 20% по цпу, 5% по рам и 15% по видеве, но при этом фпсы дропаются и из аналитичекой тулзы ты видишь, шо дроп происходит из-за большого времени на вычисления в каждом фрейме (т.е. не видева!)
пошел смотреть в чем обман. оказалось, шо в новой модной версии GameMaker компилятор модный, но крутит четотам однопотоковое и работает на верхнеуровневом языке (тупа на жава скрипте по сути). отсюда он хорош для отладки и повседневной разработки, но билдить на нем для господ не стоит, если в игре есть сложные вычисления (не мой случай) и их много (мой случай).
пошел смотреть че таместь по SDK. и оказывается есть православный компилятор, который будет собирать всю хурму по кучу-лет, но на выходе отдаст МАШИННЫЙ КОД из твоих колхозных скриптов.
накатил 16 гигабут этого счастья. выдает 2000 ошибок компиляции сволочь. туды сюды из реальных осталось 3-4 штуки, так и не понял че он хотел, просто перевисал код инциализирующий один из объектов - и он заткнулся. в итоге на живом машинном коде то, что имело real_fps около 60 под нагрузкой на виртуально-машинном компилятор стало летать с 400-500 real_fps на машинном. во как.
ну при этом оптимизация у меня все равно ущербная, просто теперь ее можны скрыть за кулисами ноликоединичек
🙏3✍2
В пятницу отправил приложение для плейтеста на проверку в стим. Проверяют 2-7 дней (были выходные). Ну и вчера думаю, открою регу на плейтест, пока висит проверка - может кто запишется. И, т.к. виши набираются по 0-1-2 в день, подумал, что будет неплохо, если как раз к завершению проверки приложения наберется штук 5 заявок на тест. А сегодня чекаю, а там 50 заявок, а проверка еще до 5 дней может идти... Обманул людей!
Нова хПресс
выложил тестово играбельное: https://busica.itch.io/abyssal-acres
а на итче никакой активности вообще. 4 скачивания: 2 или 3 из которых - мои, и 1 Дмитрия. Стим, конечно, в этом плане мощнейший аппарат по автопродвижению...
🗿1 1
таковые новости
ночу залаунчил плейтест в стиме. раздал 130 проходок (хз, сколько из них пришлись на ботов).
за неделю разобрал полностью код, обсуживающий все будки и все ресурсы. до этого каждый ресурс был в своем отдельном инстансе, и, например, если на складе возможно хранение всех 16 видов ресурсов - то изначально с будкой создавалось 16 инстансов-хранилок под ресы. и, соответственно, во всяких вычислениях нужно было обойти всех 16 хранилок, а в каждой хранилке были еще свои вычисляния и т.д. в итоге при большом количестве зданий этих хранилок старовилось оч много. они не много жрали, но объектов было много. в итоге сча сделал 1 здание - 1 хранилка на все ресы сразу. и много пофреймовых вычислений вынес в вычисления по запросу. например, раньше число доступных свободных ресов в хранилке вычислялось каждый кадр по примерно такой формуле: сколько ресов есть минус сколько ресов забронировано каким-нибудь демоном (он идет их забрать). или - возможность положить что-то в хранилку вычислялась по формуле: сколько емкость хранилки минус сколько ресов есть минус сколько ресов в нее несут минус сколько ресов производится и т.д. крч много запросов. вынес такие расчеты только на обращение к хранилке. т.е. никто не знает, скок там ресов доступно, пока не обратятся за этим расчетом. ну и соответсвенно число таких вычислений упало в тысячи раз, т.к. к какому-нибудь ресурсу юнит мог обратиться раз в минуту - и это одно вычисление в 3600 кадров, а не 3600 вычислений за это же время.
сделал это в целом просто для красоты, т.к. фризов из-за этих вычислений не было. просто почистил и сделал прозрачнее систему управления ресами в коде. осталась еще каша с юнитами, т.к. там для выбора спрайта и номера фрейма в нем у меня накостылено столько веток, что я сам не в курсе, че именно будет показываться. хоть и показывается корректно.
пока переписывал эту штуку поправил кучу багов. например, если у демона на руках было N единиц разных ресурсов, а емкость его личной хранилки тоже N - а он получается задание принести некоторый ресурс из А в Б - то он прыгал и скакал как сайгак!, если оказывалось, что у него нет места, чтобы собрать такой ресурс. и т.д.т.п.т.д.т.п... а ну и еще вычистил много созданий объектов чисто для красоты, если родительский объект находится вне экрана.
еще в пятницу созванивался с херо крафт. особо не было контекста у звонка изначально, поэтому я особо ниче и не готовил. после плейпорта господин оттуда попросил закинуть им билд. ну я месяц почти морозился, т.к. живой сборки не было. и закинул, как допинал. и оказалось, что им понравилось и вот позвали поболтать. в итоге они там все поиграли и оставили хороший фидбек...
такие дела.
если кто-то тут хочет поиграть - то это можно сделать прям в стиме прям бесплатно через запрос участия в тесте. можно забесплатно почувствовать себя тестировщиком!
ночу залаунчил плейтест в стиме. раздал 130 проходок (хз, сколько из них пришлись на ботов).
за неделю разобрал полностью код, обсуживающий все будки и все ресурсы. до этого каждый ресурс был в своем отдельном инстансе, и, например, если на складе возможно хранение всех 16 видов ресурсов - то изначально с будкой создавалось 16 инстансов-хранилок под ресы. и, соответственно, во всяких вычислениях нужно было обойти всех 16 хранилок, а в каждой хранилке были еще свои вычисляния и т.д. в итоге при большом количестве зданий этих хранилок старовилось оч много. они не много жрали, но объектов было много. в итоге сча сделал 1 здание - 1 хранилка на все ресы сразу. и много пофреймовых вычислений вынес в вычисления по запросу. например, раньше число доступных свободных ресов в хранилке вычислялось каждый кадр по примерно такой формуле: сколько ресов есть минус сколько ресов забронировано каким-нибудь демоном (он идет их забрать). или - возможность положить что-то в хранилку вычислялась по формуле: сколько емкость хранилки минус сколько ресов есть минус сколько ресов в нее несут минус сколько ресов производится и т.д. крч много запросов. вынес такие расчеты только на обращение к хранилке. т.е. никто не знает, скок там ресов доступно, пока не обратятся за этим расчетом. ну и соответсвенно число таких вычислений упало в тысячи раз, т.к. к какому-нибудь ресурсу юнит мог обратиться раз в минуту - и это одно вычисление в 3600 кадров, а не 3600 вычислений за это же время.
сделал это в целом просто для красоты, т.к. фризов из-за этих вычислений не было. просто почистил и сделал прозрачнее систему управления ресами в коде. осталась еще каша с юнитами, т.к. там для выбора спрайта и номера фрейма в нем у меня накостылено столько веток, что я сам не в курсе, че именно будет показываться. хоть и показывается корректно.
пока переписывал эту штуку поправил кучу багов. например, если у демона на руках было N единиц разных ресурсов, а емкость его личной хранилки тоже N - а он получается задание принести некоторый ресурс из А в Б - то он прыгал и скакал как сайгак!, если оказывалось, что у него нет места, чтобы собрать такой ресурс. и т.д.т.п.т.д.т.п... а ну и еще вычистил много созданий объектов чисто для красоты, если родительский объект находится вне экрана.
еще в пятницу созванивался с херо крафт. особо не было контекста у звонка изначально, поэтому я особо ниче и не готовил. после плейпорта господин оттуда попросил закинуть им билд. ну я месяц почти морозился, т.к. живой сборки не было. и закинул, как допинал. и оказалось, что им понравилось и вот позвали поболтать. в итоге они там все поиграли и оставили хороший фидбек...
такие дела.
если кто-то тут хочет поиграть - то это можно сделать прям в стиме прям бесплатно через запрос участия в тесте. можно забесплатно почувствовать себя тестировщиком!
НЕКИЙ АМЕРИКАНЕЦ СЫГРАЛ В АБУССАЛЬНЫЕ АКРЫ И ОСТАЛСЯ ДОВОЛЕН (WEIRD BUT INTERESTING (AND HARD) TOWER DEFENCE - ТАК ОН ЕЕ ОПИСАЛ!)
https://youtu.be/DEokGOo1eHo
https://youtu.be/DEokGOo1eHo
YouTube
Build HELL and Fight the LIGHT Forces in this NEW Indie Strategy Roguelite
Hi! We are playing: Abyssal Acres a rogue-lite strategy game with a side view, where you need to develop a demon settlement in Hell, process the souls of sinners, defend against the attack of the forces of light
Abyss Acress Free now on Steam: https://s…
Abyss Acress Free now on Steam: https://s…
так, ну шо, ребяты, я продал свою разработку подписался с издательствой. Теперь у меня есть продусэр и абусальной акрой будут заниматься серьезные ЛЮДИ из индустрии игроведения. из андерграунда на экран, так сказать. ради сего обременения даже пришлось оформиться в качестве ИП. так что я теперь бизнес_мен. и съездить на южный вокзал, чтобы поставить свой модный акцепт на документе, подтверждающем, шо я не балабол.
коммерческие условия разглашать не могу, скажу лишь только, что завтра лечу на вертолете заселять цыган назад в поселок дорожный......
вопросы шрифтов для баннеров отныне не актуальны, т.к. из гильдии авто-прокламаторов я исключен за отсутствием компетенций. т.е. картиночки теперь будут рисовать специально обученные ремеслу люди. последний раз взглянуть на моё поделие в исконном аутентичном виде можно на странице распродажи издателя в секции каминсун. там некий Petrov Aleksei все еще значится в качестве автономной издательской единицы. такие вести
коммерческие условия разглашать не могу, скажу лишь только, что завтра лечу на вертолете заселять цыган назад в поселок дорожный......
вопросы шрифтов для баннеров отныне не актуальны, т.к. из гильдии авто-прокламаторов я исключен за отсутствием компетенций. т.е. картиночки теперь будут рисовать специально обученные ремеслу люди. последний раз взглянуть на моё поделие в исконном аутентичном виде можно на странице распродажи издателя в секции каминсун. там некий Petrov Aleksei все еще значится в качестве автономной издательской единицы. такие вести
У нас покатился плейтест, в котором мешок апдейтов с осенних постов, в котором пачка наших усилий по облагораживанию абуссальных акров Sin & Siege в б-гоудодный вид! Плейтест открытый можно кликать и ловить баги за меня
Еще, разрешите похвастаться, вот тут анонс сего действия на игн. Там же можно посмотреть кино про игру
Еще, разрешите похвастаться, вот тут анонс сего действия на игн. Там же можно посмотреть кино про игру
IGN
Sin & Siege Is a Strategy Game Where You Fight for Hell Against the Forces of Heaven
Get your first look at Sin & Siege, a new strategy game sprinkled with tower defense and roguelite elements set in a half-destroyed Hell being attacked by heavenly forces. Harvest souls and the Seven Deadly Sins to increase your power, while spells and defense…
ну, шо, потузники, у синнсиг докрутился плейтест, и я сейчас слушаю группу корн песню фагет и думаю вот о чем. о том о том о том, что стоило ли учиться в школе, чтобы всю жизнь заниматься [данные запрещены] с конверсией? это как в анекдоте про водителя, который пришел с рейса и говорит ух чичас отдохну и идет играет в евротрук симулятор. литерали я, артист конверсийного толка. далее по сути
цифры получились нормальные. нормальные в том плане, что с точки зрения бизнеса они не оч, а с точки зрения провинциального приколиста - норм. в наше произведение компьютерного искусства поиграло что-то около 500-600 игроков. треть из них вошли и вышли. и так ловко провернули это действие, что даже логов не записалось. еще треть потыкались в тутор и осознали, что это не то. и оставшаяся треть поиграла таки в игру. медианное время такое маленькое, что обычно о таком говорят "я не измерял". но при этом есть горстка энтузиастов, которые наиграли приличное число часов. шестеро сыграли даже более 4 часов. психи.
то есть отвалами можно гордиться. сейчас отвалы условно выражаются в плохом ретеншне и плейтайме, а в проде превратятся в унылую конверсию. а это значит шо так называемый не очень удачный геймдизайн (мне простительно, я джун в этой хитрой науке) магическим образом превращается в дрочение конверсии. и хитрец [я], желающий забыться от мира корпоративного вращения вокруг воронки в уютном домике под названием GAMEMAKER STUDIO 2, попадает в мир не-корпоративного вращения вокруг воронки. вот уже где реально от судьбы не уйдешь и так и будешь до смерти снимать метрики с нерадивых пользователей, отказывающихся от сделки из-заплохо покрашенной кнопки плохо покрашенной игры.
пока выводы примерно такие, шо поделка позабавила какую-то часть пользователей, но основная масса ожидаемо не захотела разбираться с хитросплетением кнопок в монохромном аду. и в ближайшее время синнсиг будет перерабатываться и улучшаться в сторону чуть лучшего захвата внимания жертвы, все таки решившей ее запустить. вот такие дела
цифры получились нормальные. нормальные в том плане, что с точки зрения бизнеса они не оч, а с точки зрения провинциального приколиста - норм. в наше произведение компьютерного искусства поиграло что-то около 500-600 игроков. треть из них вошли и вышли. и так ловко провернули это действие, что даже логов не записалось. еще треть потыкались в тутор и осознали, что это не то. и оставшаяся треть поиграла таки в игру. медианное время такое маленькое, что обычно о таком говорят "я не измерял". но при этом есть горстка энтузиастов, которые наиграли приличное число часов. шестеро сыграли даже более 4 часов. психи.
то есть отвалами можно гордиться. сейчас отвалы условно выражаются в плохом ретеншне и плейтайме, а в проде превратятся в унылую конверсию. а это значит шо так называемый не очень удачный геймдизайн (мне простительно, я джун в этой хитрой науке) магическим образом превращается в дрочение конверсии. и хитрец [я], желающий забыться от мира корпоративного вращения вокруг воронки в уютном домике под названием GAMEMAKER STUDIO 2, попадает в мир не-корпоративного вращения вокруг воронки. вот уже где реально от судьбы не уйдешь и так и будешь до смерти снимать метрики с нерадивых пользователей, отказывающихся от сделки из-за
пока выводы примерно такие, шо поделка позабавила какую-то часть пользователей, но основная масса ожидаемо не захотела разбираться с хитросплетением кнопок в монохромном аду. и в ближайшее время синнсиг будет перерабатываться и улучшаться в сторону чуть лучшего захвата внимания жертвы, все таки решившей ее запустить. вот такие дела
✍2🕊2 2
судя по всему, основные претензии от поигравших - в сложности и непонятности того, шо вообще нужно делать в игре и как.
а от не поигравших (кто видел синосиг в видевах на утуре) - в монохроме.
на 10 комментариев под ними 9 приходится на "цветовая схема убила игру". зато тот 1 из 10 коммент (на картинке) радует пожилое эго.
так шо работа над ПИПО идет полным ходом. с т.з. ПИ наш монохром и летающие в пространстве пихели от кривой рисовки могут получить краски и блюр. а с т.з. ПО будет придумываться волшебная рука, которая будет водить игрока, чтобы он не отваливался. как-то так-то
а от не поигравших (кто видел синосиг в видевах на утуре) - в монохроме.
на 10 комментариев под ними 9 приходится на "цветовая схема убила игру". зато тот 1 из 10 коммент (на картинке) радует пожилое эго.
так шо работа над ПИПО идет полным ходом. с т.з. ПИ наш монохром и летающие в пространстве пихели от кривой рисовки могут получить краски и блюр. а с т.з. ПО будет придумываться волшебная рука, которая будет водить игрока, чтобы он не отваливался. как-то так-то
🙏1👾1
еще к нам хорошо отнеслись ЯПОНЦЫ и накатали ебейшую статью на своем японском сайте. там меня называют мистер лёша
AUTOMATON
悪魔量産ローグライト戦略ゲーム『Sin & Siege』発表。色欲で子孫繁栄、憤怒で戦闘など「七つの大罪」大活躍な地獄発展ゲーム - AUTOMATON
HeroCraft PCは3月27日、2Dローグライトタワーディフェンス『Sin & Siege』を発表した。
🙏4🕊3🗿3
а еще из прикольного,
поковыряв возможности GM2 высылать хттп запросы из игры в мир, я прикрутил нехитрую аналитику внутрь игры. штука заключалась в том, что игра слала мне логи прямо в телеграм чатик. потом эти логи удобно выгружаются в жсон как история чата и легко парсятся в экселе-дружелюбный формат и обсчитываются. логов насобиралось на 6 мегабайт, так шо все 10 дней плейтеста мне в телегу сыпало, т.к. в игру примерно все это время постоянно кто-то играл. иногда я грустил, когда видел лог о поражении игрока...
поковыряв возможности GM2 высылать хттп запросы из игры в мир, я прикрутил нехитрую аналитику внутрь игры. штука заключалась в том, что игра слала мне логи прямо в телеграм чатик. потом эти логи удобно выгружаются в жсон как история чата и легко парсятся в экселе-дружелюбный формат и обсчитываются. логов насобиралось на 6 мегабайт, так шо все 10 дней плейтеста мне в телегу сыпало, т.к. в игру примерно все это время постоянно кто-то играл. иногда я грустил, когда видел лог о поражении игрока...