Комментарии проекта Блог DasBro
4

Оптимизация кода в Unity3d

» Блог DasBro
Немного об оптимизации кода в Unity3d

Читать далее...
Msey #1 - 2 years ago 0
Голосов: +0 / -0
Clamp, Любой код требует оптимизации, даже который учит этому)
Ky4ePoK #2 - 2 years ago 1
Голосов: +1 / -0
После истории с "оптимизацией" цикла рассматривал статью, как список вредных советов.
В блоках кода, которые требовательны к производительности для целочисленных рассчетов всегда, всегда применяйте тип int или dword. Это универсальные типы, для х86-64 платформ, ибо все команды оперируют именно ими или удвоенными аналогами в случае 64битных систем. В следствии чего не происходит ненужных преобразований.
Со строками ваще фейл, команда string.concat быстрее работает и не создает лишнего мусора в памяти.
Статья новичка для хз кого,, полезности ноль.
Скажу новичкам пару советов: кэшируйте ссылки на компонентыних, если используется кодом чаще раза в секунду, у скриптов удаляйте пустые "магические" методы start, update. Если объектов со скриптами более 1к и, в них используется метод update, то делайте менеджеры для этих объектов и ими обновляйте состояние обьектов, а функцию update удаляйте. Так вы выйграете в несколько раз в скорости, пожертвовав отказоустойчивостью.
Clamp #3 - 3 years ago 2
Голосов: +2 / -0
    private bool CheckObject(GameObject other)
    {
        if (other == null) return false;
        else return true;
    }
И тут я умер
return other != null для слабых
GeneralElConsul #4 - 3 years ago (изм. ) 2
Голосов: +2 / -0
Глаз зацепился за это и решил разобраться.
Автор категорически не прав - использование типов short или byte для индексов в цикле только ухудшит ситуацию.
  1. По сравнению со случаем использования int-индекса в данном случае в IL-коде инкремента будет еще функция преобразования <результата сложения индекса и единицы в стеке> в тип Int16(short). И в коде ассемблера, в который JIT-компилятор преобразует IL-код, эта лишняя работа никуда не исчезнет, а будет выглядеть как что-то вроде movsx eax, ax. То есть мы экономим 8 или 16 бит, но имеем гарантированно дополнительную работу в цикле. Это просто дичайше не целесообразно.
  1. Только-только у нас в names по каким-то причинам (не обязательно нежданно, просто на определенном этапе оказалось, что нужно вмещать больше данных) разрастется до длинны, выходящие за ограничения byte или short как сразу все летит к чертовой матери и садись меняй типы в коде.
В целом байтодрочерство почти всегда не оправдано. Процессоры привыкли работать с 32-битными числами. Да и, думаю, не нужно объяснять, что, учитывая вышеописанные издержки, стараться сохранить несколько бит просто глупо. Тем более когда выравнивание данных может внезапно нивелировать драгоценные ваши старания по сохранению памяти..
2

Документация для шаблона (Unity)

» Блог DasBro
Здравствуйте. Вот, закончил писать первую версию документации для моего шаблона.
Одна из страниц:
Поэтому, если кто-то захочет использовать его, вот ссылка на сам шаблон и на документацию по нему.
Посмотрю ещё, можно ли как-то связать её с репозиторием, а пока что всё!
DasBro #1 - 4 years ago 0
Голосов: +0 / -0
alexprey, Хех, это абстракция ))
alexprey #2 - 4 years ago 0
Голосов: +0 / -0
Откройте нужный файл и напишите нужный код
4

Барахолка. Собственные Input's для Unity.

» Блог DasBro
И сразу первый вопрос. За-а-а-чем? Я отвечу. При чём приводя очень показательные доказательства.

Читать далее...
DasBro #1 - 4 years ago (изм. ) 0
Голосов: +0 / -0
prog, Да, но я и не профессионал, чтобы делать обработку исключений и т.п.
а каждый такт искать в Update по отдельности каждую ось в непонятном контейнере
По другому сделать обработку нажатия клавиши с условием, что одна из переменных одна быть интерполирована в другое значение нельзя.
Функции, согласен, вышли почти одинаковы по названию, думаю исправить.
prog #2 - 4 years ago (изм. ) 0
Голосов: +0 / -0
DasBro, а каждый такт искать в Update по отдельности каждую ось в непонятном контейнере это тоже только заготовка или так и должно быть? При том, что эта ось вроде как уже найдена найдена и лежит в переменной. отбой, понял что разные функции. не заметил сразу отличие в два символа. Но это всеравно не ок, имхо.
Ну и отсутствие проверок на фейлы это такое, дело вкуса.
DasBro #3 - 4 years ago 0
Голосов: +0 / -0
prog, А проблема в том, что трекинг можно осуществить через костыль. Я думал об этом но, увы, если и использовать костыль, то дело ведь не в этом. Дело в полном отсутствии доступа к необходимым данным. Прямое использование - это ведь был грубый пример. В шаблоне же обработка идет с использованием "команды".
prog #4 - 4 years ago 0
Голосов: +0 / -0
Проблема выглядит как-то искуственно. Что мешает трекать ввод для геймпада отдельно от мышки с клавиатурой, а не в одной оси, если от этого возникают проблемы? Да и прямое использование значений с устройств ввода в качестве трансформа выглядит как-то "опасно".
Впрочем, я юнити не пользуюсь, а в анриле свои проблемы с вводом.
3

Шаблон для разработки приложений на Unity.

» Блог DasBro
Всех приветствую. В общем после того, как мне пришлось реализовывать некоторые стандартные игровые функции уже в какой раз,
то я подумал о создании некого шаблона, хранящегося в качестве репозитория. Но будет лучше всего, если этот шаблон будет доступен каждому.
Поэтому я сделал некоторые наброски, которые, как мне кажется, пока являются для каждой игры необходимой.

Читать далее...
DasBro #1 - 4 years ago (изм. ) 0
Голосов: +0 / -0
prog, Все классы этого шаблона как раз и хранятся в отведенных для них пространствах имён. Вы правы, на счёт чрезмерного использования шаблонов, однако пока я не наблюдал подобных случаев, но раз у вас возникают подобные случаи, приму к сведению.
BrEd Pitt, Вообще, когда-то я считал, что XGM не будет отделять Game Development в такой портал, как DevTrube, поэтому думал, что здесь собирается комьюнити не только людей, делающих моды для Warcraft, но и разработчики игр. Было даже неплохо, когда проводились разные конкурсы не только связанных с модмейкингом...
А на счёт шаблонов, то в целом, ещё одна незначительная причина подобного шаблона - читабельный код. Потому что новички, как я уже заметил,
особо и не заморачиваются на счёт имён полей/методов и т.п. не говоря уже о комментариях.
prog #2 - 4 years ago (изм. ) 1
Голосов: +1 / -0
Шаблоны это круто, но не стоит ими слишком увлекаться - возможно некоторые вещи лучше завернуть в "библиотеку" или что вы там для юнити в этих целях используете. Избыточное использование шаблонов ухудшает читабельность кода, может конфликтовать с синтакс-чекерами и статик-аналайзерами. Говорю как человек пользующийся UnrealEngine4, в C++ API которого шаблонов через край. Как дополнительный необязательный синтаксический сахар сверху библиотеки шаблоны смотрятся неплохо, но такое каждый и сам должен уметь реализовать под свой вкус и потребности, как по мне.
BrEd Pitt #3 - 4 years ago 0
Голосов: +0 / -0
Разумеется, шаблоны стоит использовать. Но в доработанном виде, в куда большем количестве. По крайней мере на хгм, куда многие пришли ради варкрафтостоительства, и откуда малая доля этих людей захочет работать по-настоящему. Не сидеть же большинству блогочитателей в jass-песочнице, пользуясь кодом близзард.
+
2

Изучение Defold. (Снова Lua?)

» Блог DasBro
Итак всех приветствую на статье, которая посвящена Defold. Defold- это бесплатно-распространяемый игровой движок от ребят из King. Язык программирования в нём - Lua. Сегодня я хочу лишь немного рассказать о нём.

Читать далее...
DasBro #1 - 4 years ago 0
Голосов: +0 / -0
BrEd Pitt, Да, именно так. Спасибо за отзыв и не за что :)
BrEd Pitt #2 - 4 years ago 0
Голосов: +0 / -0
Т.е. эти 6 методов (init, update и т.д.) существуют в каждом новом "по умолчанию"? Не совсем понял
Спасибо за обзор.
14

Мои Заметки. Система внутриигровых достижений в Unity3d

» Блог DasBro
Всех приветствую! Сегодня я хочу немного рассказать о том, как я писал свою систему достижений. А гуру могли бы дать совет, хороший ли мой
способ или нет.

Читать далее...
BrEd Pitt #1 - 4 years ago 0
Голосов: +0 / -0
Неоднократно видел реализацию, где о достижениях изначально игроку неизвестно ничего, кроме того. что они существуют. Порой это подталкивает на совершение безумных вещей и, как следствие, получение особого опыта от игры, даже если не приведет к получению ачивки. И тем более это реалистично в играх с пермасмертью - в духе "ура, я покоритель высочайшей горы!" "а че, ачивку не дали?" "ладно, будет гора еще круче, я ж сюда добрался"
DasBro #2 - 4 years ago 0
Голосов: +0 / -0
Clamp, Да, но по факту я "беру" достижение из списка по идентификатору
prog,
у тебя в проекте не предусмотрены достижения, в которых шаг прогресса меньше 1 сотой максимума?
Разве что все достижения "секретные" и выдаются только по завершению
Да, именно. ИМХО, но мне кажется, что достижения должны быть без описания, так как описание требует от игрока что-то сделать, а так, ты ничего
не требуешь + игроку может стать любопытно, как получить то, или иное достижение.
prog #3 - 4 years ago (изм. ) 0
Голосов: +0 / -0
DasBro, у тебя в проекте не предусмотрены достижения, в которых шаг прогресса меньше 1 сотой максимума? Иначе точность в любом случае теряется, даже если данные временно хранятся где-то еще и пересчитываются в прогресс только в конце какого-то этапа, хотя так и меньше потерь, чем от пересчета при каждом инкременте.
Что касается локализации - это отдельная тема, название то тоже надо было бы локализовать, если бы была предусмотрена локализация. Меня удивило именно отсутствие описания как такового - как игроку понять что делать надо, если он только название достижения видит. Разве что все достижения "секретные" и выдаются только по завершению.
Clamp #4 - 4 years ago 0
Голосов: +0 / -0
то, что метод ничего не возвращает?
Это самое. "Get" переводится как "взять", а брать-то и нечего =)
Не сочти, что докапываюсь, место действительно вызвало недоумение.
DasBro #5 - 4 years ago 0
Голосов: +0 / -0
prog, На счёт локализации согласен, но т.к. я приводил пример со своего проекта, где локализация не предусмотрена, то я обошёлся только названием. На счёт сбоя, тут тоже верно подмечено, моя ошибка, что привёл пример со своего проекта т.к. у меня планируются достижения без постоянного подсчёта прогресса.
А так, ваша мысль любопытна для более серьезных проектов. Только вот как вы бы связывали прогресс с достижением?
Clamp, Смотря что вы подчеркиваете, модификатор доступа или префикс, или может то, что метод ничего не возвращает? Если дело в префиксе, то
не знаю, мне показалось это наиболее значимым для данного метода.
BrEd Pitt, Занятно, будет любопытно взглянуть, когда будет что посмотреть/почитать
prog #7 - 4 years ago (изм. ) 2
Голосов: +2 / -0
DasBro,
А как же локализуемый описательный текст достижения, неужели одного названия достаточно?
Ну и хранение прогресса в процентах в целочисленной переменной приведет к сбоям если инкремент будет больше одной сотой от максимума.
ИМХО, я бы вобще напроч разделил описательную часть и реализацию подсчета результатов - глобальная библиотека со всеми доступными достижениями отдельно, подсчет прогресса по каждому из них отдельно.
BrEd Pitt #8 - 4 years ago 0
Голосов: +0 / -0
пока что нет. Я только начал утверждаться с концепцией, да и учеба будет отнимать достаточно времени, поэтому разработка будет идти очень медленно. Как пример приведу лишь то, что саму идею оформлял около года, "работая напильником" и учитывая возможные недостатки.
я ж очень педантичный и дотошливый
DasBro #9 - 4 years ago 0
Голосов: +0 / -0
BrEd Pitt, А где нибудь можно узнать о твоём проекте?
BrEd Pitt #10 - 4 years ago 0
Голосов: +0 / -0
рогалик
DasBro #11 - 4 years ago 0
Голосов: +0 / -0
BrEd Pitt, Что за штукенция?)
BrEd Pitt #12 - 4 years ago 0
Голосов: +0 / -0
Как всегда полезно, делаю заметки для себя (пока оформляю диздок одной своей штукенции)
DasBro #13 - 4 years ago 0
Голосов: +0 / -0
Мышкоблудка, Исправил, спасибо за отзыв :)
Мышкоблудка #14 - 4 years ago 1
Голосов: +1 / -0
2-я картинка битая
А так вполне познавательно выглядит, даже я вполне поняла =D
1

Как динамично менять новые эффекты (Post Processing) в Unity

» Блог DasBro
Всем привет. Я очень кратко изложу свою мысль и как я к ней пришёл.

Читать далее...
DasBro #1 - 4 years ago 0
Голосов: +0 / -0
Просьба не брать мою фишку с Vignette для какой нибудь игры. Позязя ^_^
2

Хроники LibGDX

» Блог DasBro
Всем привет, сегодня я хочу начать рассказывать о такой библиотеке, как LibGDX. Это будет своего рода цикл записей о каких либо классах,
с моими комментариями, пояснениями, а также самое главное, с примерами использования каких-либо объектов.

Читать далее...
LeikyS #1 - 5 years ago 0
Голосов: +0 / -0
Так вот зачем тебе Android Studio требовался.. Ну а так как обычно, коротко и круто
BrEd Pitt #2 - 5 years ago 0
Голосов: +0 / -0
Жду следующего выпуска!
4

Текстовый редактор вроде.

» Блог DasBro
Привет! Эй, я сегодня решил выпустить, пока время есть, статейку небольшую, в которой расскажу о создании небольшого текстового редактора и текстового квеста соответственно.

Читать далее...
DasBro #1 - 6 years ago 0
Голосов: +0 / -0
BrEd Pitt #2 - 6 years ago 0
Голосов: +0 / -0
Отнюдь не сарказм.
DasBro #3 - 6 years ago 0
Голосов: +0 / -0
BrEd Pitt, Хм, надеюсь это не сарказм...)
BrEd Pitt #4 - 6 years ago 0
Голосов: +0 / -0
Два плюса этому программисту!
5

Излагайте мысли господа!

» Блог DasBro
Приветствую! Недавно я попал в ситуацию, которая, думаю, бывала с каждым. Это что-то вроде творческого кризиса. Но в моём случае всё немного иначе. В общем к делу, господа.

Читать далее...
Raised #1 - 6 years ago (изм. ) 0
Голосов: +0 / -0
DasBro, как вариант - вступи в проект и создай задание. Попытайся убедить участников что твоя идея не бред и пообещай что-то в случае успеха проекта. Это то, что я бы попробовал сделать в рамках сайта будучи на твоём месте. А так-то я без идей.

Я не художнег, но был очень рад когда однажды мне написал не программист и предложил сделать игру. Теперь оба ближе к программисту и художнегу / геймдизайну. Возможно в этом проекте найдутся желающие испытать свои силы. Алсо предлагаю не делать концепцию игры закрытой (не обсуждаемой) - желание сотрудничать уменьшается в 10 раз. Здоровая мысль - нормально пообщаться в Скайпе (сотрудничать чёрт знает с кем редко хочется). Здоровая мысль - не переоценивать свои способности и скорость работы. Также - плохо при обсуждении деталей проекта не аргументировать свои решения.

Ну и лично мне не нравится печатать сообщения тогда как можно поговорить - можно паралельно рисовать. Но повторюсь: я не художник. Думаю, что это как-то так работает.
Андреич #2 - 6 years ago 0
Голосов: +0 / -0
А какие вы знаете например? А то знаком только с тем же Behance и подобными..
ну первое что приходит в голову - deviantArt, есть ещё более трешовый сайи - демиарт..., на pixiv сидят в основном художники...
да в тех же соц. сетях по тегам можно искать паблики художников...
DasBro #3 - 6 years ago 0
Голосов: +0 / -0
Андреич, А какие вы знаете например? А то знаком только с тем же Behance и подобными..
SageOne, Да, но если например понадобится анимация, то её к примеру может и не быть.. Но вариант хороший
SageOne #4 - 6 years ago 0
Голосов: +0 / -0
royalty free ресурсы, платные арт-ассеты
Андреич #5 - 6 years ago 0
Голосов: +0 / -0
как вариант... поискать художников на тематических ресурсах... (не геймдев а именно художнические сайты)
там ребята разного уровня навыка... и возможно кому-то примнётся идея порисовать для игрули... думаю найти энтузиаста там будет попроще...
5

Инструментарий для LOVE.

» Блог DasBro
Приветствую. Сегодня я хотел бы поделится небольшой новостью. Прежде, хотел бы отметить что это связанно лёвой (LOVE), поэтому это может быть не интересно тем, кто не работает с данным инструментов для разработки.

Читать далее...
Андреич #1 - 6 years ago 0
Голосов: +0 / -0
И всё же некоторых инструментов ещё не хватает..
for example..?
DasBro #2 - 6 years ago 0
Голосов: +0 / -0
Doc, Ну, всё же меньше, но согласен, их достаточно. И всё же некоторых инструментов ещё не хватает..
Doc #3 - 6 years ago 0
Голосов: +0 / -0
Этих и подобных либ на Love wiki просто МИЛЛИОН.
DasBro #4 - 6 years ago 0
Голосов: +0 / -0
Андреич, Ух ты, это круто, что уже такие вещи реализованы
Андреич #5 - 6 years ago 0
Голосов: +0 / -0
ну выбор цветов еше может бbiть nолезен...
Ho,
>> Интерфейс (UI).
>> SceneManager
7

2016... Игр!

» Блог DasBro
Всех приветствую. Пришла интересная мысль в голову, перед предстоящим новым годом.
Что если сделать "challeng' в области геймдева. Но не просто так, а в честь наступления нового года.

Читать далее...
Editor #4 - 6 years ago 0
Голосов: +0 / -0
Вспоминаются карики на нес 99999 ин 1
DasBro #5 - 6 years ago 0
Голосов: +0 / -0
Clamp, Кто-то говорит про идентичность игр?)
BrEd Pitt, Согласен, но опять же, соревновательная разработка простых мелких игр всё же имеет различие с обычной рутинной разработкой более крупных проектов... Конечно, если есть желание сделать игру мечты, то пожалуйста, да и к тому же никто на сильно не будет заставлять участвовать в подобных соревнованиях
Clamp #6 - 6 years ago 0
Голосов: +0 / -0
2016 одинаковых игр с разным артом
2016 почти одинаковых игр с одинаковым артом

Мммм, мечта!
BrEd Pitt #7 - 6 years ago 0
Голосов: +0 / -0
Не знаю, не знаю... лучше качество, чем количество.