Многими это сколько? 100? 200? 1 000?
Население любого развитого города 1 млн, твои "разговоры" в рамках такой узкой выборки - это не анализ.
А он публикует этот материал в научном журнале и претендует на то чтобы это считали научным исследованием? Вроде нет.
Ты знаком со значением слова анализ?
Потружусь за тебя:
Анализ (др.-греч. «разложение, расчленение») — в философии, в противоположность синтезу, анализом называют логический приём определения понятия, когда данное понятие раскладывают по признакам на составные части, чтобы таким образом сделать познание его ясным в полном его объёме.
Вау, в таком случае то что он сделал это вроде как... анализ? Вот так поворот!
PrincePhoenix:
твои псевдо-выводы вообще хоть как-то коррелируют с явью.
А ты видишь у него статистику?
PrincePhoenix:
Ещё пунктик, чтобы делать выводы, на основе своих вопросов, нужно обладать соответствующей компетенцией, не факт, что твои псевдо-выводы вообще хоть как-то коррелируют с явью.
Я думаю чтобы делать выводы достаточно уметь думать. А чтобы быть доверенным авторитетным источником по теме - нужно обладать компетенцией. Эти вещи не одно и тоже.
В остальном я в принципе солидарен, но этому костру не хватает дров.
даже базовый тип ничего не сделает, т.к. под капотом 'i' будет находиться в экземпляре делегата, и это будет один и тот же экземпляр во всех элементах списка.
На выходе компилятора будет примерно вот такое:
public void Do()
{
List<Action> actionList = new List<Action>();
DisplayClass displayClass = new DisplayClass();
for (displayClass.i = 0; displayClass.i < 3; displayClass.i++)
{
actionList.Add(new Action((object) displayClass, __methodptr(<Do>b__0)));
}
}
[CompilerGenerated]
private sealed class DisplayClass
{
public int i;
internal void <Do>b__0()
{
Console.Write((object) this.i);
}
}
т.к. вся лямбда внутри контекста захваченных переменных будет формировать отдельный класс то по факту замыкания не будет, если вынести лямбду в отдельный от цикла метод.
Так же можно создать переменную со значением и записать туда i, и уже эту переменную прокинуть в лямбду, в этом случае будет создаваться отдельный экземпляр делегата каждый виток цикла (но в старых версиях компилятора это будет работать иначе, что вроде как баг, ибо для пользователя оно по факту должно выглядеть как "передача ссылки").
Бтв, тут всплывает тема с аллокацией, т.к. как ты можешь заметить создание экземпляра каждый виток цикла это дичь )
Имхо еще что можно сделать по теме, чуть посложнее чем для новичков, но интересно:
# объяснить подробнее про вычитание списка делегатов
Например, разъяснить почему:
Action a = () => Console.Write("A");
Action b = () => Console.Write("B");
Action c = () => Console.Write("C");
Action s = a + b + c;
(s - (b + c))(); //A
//но при этом
(s - (a + c))(); //ABC
Упомянуть про порядок вычитания, например
s = a + b + a;
(s - a)(); //AB, а не BA
рассказать про аллокации, связанные с лямбдами, когда они происходят и почему, а так же почему то что оно аллоцирует может быть проблемой
например, как тут:
string str = "str1";
Action d1 = () => Debug.Log(str); //аллоцирует при каждом вызове метода, который объявляет d1
Action d2 = () => Debug.Log("str1"); //аллоцирует лишь однажды
рассказать про неявный захват переменных
Например объяснить, почему если очистить 'd1', 'a' останется в памяти до очистки 'd2'
var a = new object();;
var b = new object();
Action d1 = () =>
{
Debug.Log(a);
Debug.Log(b);
};
Action d2 = () => Debug.Log(b);
ну и про замыкания само собой, т.е. почему вот это выведет 333
var actions = new List<Action>();
for (int i = 0; i < 3; i++)
actions.Add(() => Console.Write(i));
foreach (var action in actions)
action();
vasex, нет реальной разницы, возьмешь ты тот или другой инструмент. Они оба универсальны.
Оба позволят написать игру такую какую тебе нужно. Попробуй по очереди, а там уже сам посмотри какой юнити именно тебе заходит
Про геймдев я сказал, т.к. это широкая стенд-элон индустрия, в вебе и сетевых аппликухах xml уже давно пережиток прошлого, за исключением некоторых протоколов (хотя нет, привет андроиду и жаве с их вьюхами)
Файлы конфигурации в xml очень жестко навязывались в дотнетах. Например
app.config, который, как пример, мы создаем если хотим например зареплейсить какой-нибудь референс в зависимостях проекта
web.config
банально файлы sln и csproj
в ксамарине шаблоны форм (причем и под платформы и "свое" в таком виде)
вроде как MVC тоже что-то такое тянули, но не открывал давненько, боюсь ошибиться
файлы ресурсов всякие
WPF
WCF
если зайти на msdn и поглядеть там 90% вшитых файлов конфигураций xml
Видно, что сейчас от этого отходят, например .Net Core где солюшн уже в другом формате, или стандарт online темплейтов в json сделан, и на .Net Core можно переобъявлять старые app.config на другой лад
но как суть, более старые решения там навязывали xml, мб из-за вопросов совместимости.
Понятно что xml это синтаксически перегруженный кусок говна и юзать его намеренно на новых проектах то еще удовольствие, но момент относительно "всякого нативного" в дотнете еще актуален - то что постулируют писать в xml, пишется в xml.
не знаю что за yml, знаю yaml.
для сложных типов данных как раз не xml а yaml, т.к. это больше чем разметка, есть поддержка алиасов специально для сериализации ссылочных типов
Тут тоже довольно шаткий пункт, т.к. многие просто хейтят некоторые лаунчеры, хотя по большому счету от лаунчеров требуется только загрузить игру и запустить ее при нажатии на большую кнопку "Играть".
Я хейчу лаунчеры юбисофта:
потому что когда ты качаешь немаленькую игру в стиме около часа
потом при запуске выдает ошибку и не хочет запускать
потом лазая по обсуждениям внезапно узнаешь что это старый лаунчер и нужно скачать новый там-вот
но для этого нужно зарегистрироваться
активировать игру снова
потом снова скачать
потом при запуске игры встанет разрешение которое не поддерживается монитором
ты сначала ковыряешься в лаунчере в котором вообще таких настроек нет
потом ковыряешься в директории игры меняя что-то в файлах но это не спасает
берешь ноутбук и ставишь туда лаунчер
потом ставишь игру
и потом оказывается что разрешение не поддерживается и там
в результате по видосу на ютубе ты находишь как чувак заходит в настройки, составляешь список что нужно нажать на клаве
вслепую жмешь кнопки в надежде поменять разрешение
после этого наконец собираешься поиграть но сетка не ищет кооператив, а ты хотел кооператив
Вот где-то на этой стадии любой пердак порвет, потому что просто скачав пиратку внезапно все проблемы исчезают и все работает, не приходится тратить несколько часов просто чтобы сделать то, что должно сработать в 1 клик
по нормальному должно было быть так:
если при запуске лаунчер устарел или ошибка, предложить скачать новый, дав ссылку, а не писать launcher error: -1
прикреплять аккаунт, а не заставлять регаться
не заставлять перекачивать уже скачанную игру
позволить в лаунчере менять конфиг игры, как в нормальных лаунчерах
я с трудом представляю, что это так сложно для такого гиганта рынка.
"я встроил в твой дистрибутив игр свой дистрибутив игр", вот чем это на самом деле является. И покуда люди будут покупать игры в таком формате у издателя ничего не щелкнет.
Это первое.
А второй фактор банальный - я не хочу держать 20 лаунчеров разных контор на компе и помнить логины/пароли ко всем этим аккаунтам, чтобы поиграть в игру через стим.
Не удивлюсь если анрилы были вынуждены паблишить сурсы по причине того, что горячо любимый С++ не имеет того же уровня рефлексии и нормально не декомпилится с сохранением имен, что существенно усложняет работу с АПИ.
Мне в принципе глубоко толерантно на чем вы НЕ сделаете игру, но естественно топлю за юнити, потому что это православный движок, там все функции окрапленые святой водичкой, из-за этого бешеный прирост по всем параметрам.
Про хрюшу вообще бы советовал забыть ее перестают поддерживать все кому не лень, а к моменту не готовности твоего проекта вообще станет мамонтом в духе Windows 98. Проще поставить вин 7 и перестать страдать.
Холивары про графику/производительность/тулкит из коробки вообще перестают быть актуальными, на юнити можно уже добиться и рантайм графики топовой (в 2018.1 завезли более широкий доступ к рендеру и несколько заготовок, система освещения в юнити уже давно выдает результаты получше сами-знаете-чего по дефолту, можно на ютубе видео сравнений найти где рассматриваются артефакты освещения), по производительности там есть штуки в духе IL2CPP и JobSystem, IL2CPP это приближение по скорости к C++ с небольшим урезанием функционала, оно конечно не 1 к 1, но нужно понимать что и шарп сам по себе язык более дружелюбный, достаточно компромиссное решение, какие-то штуки для дизайнеров есть в духе машины состояний из стора выкупленной, хотя до блюпринта конечно оно не дотягивает по отзывам коллег, но терпимо, таймлайны там какие-то, PackageManager то ли уже вышел, то ли вот вот выйдет, ну в бетах уже есть. Короче на удивление много всякой работы кипит по улучшению движка, там фичи выходят мы их тупо осваивать уже не успеваем, тонны наработок вообще выбрасывать приходится ибо оно уже в движке появилось, обещают по 50 девственниц каждому разработчику, мы тут вообще уже от счастья плачем, спустилась мана небесная, и фреймворк обновили, и модульность есть, и контроль версий встроенный, и редактирование сцены одновременное по сетке, и ассеты скоро по репкам развезут, и еще что забавно что большая часть разработчиков это такое дно что они даже половиной всех фич ни разу в жизни не пользовались, но это уже другая история.
А игру советую делать на Unreal Engine, это очень модно советовать, чтобы показать себя проженным знатоком геймдева, топить за плюсы несмотря на их корявость, ведь это же производительность, а других параметров в разработке типа сроков, удобства как всем известно нет и быть не может. Короче чтобы пацаны уважали пиши игру на плюсах, зажмут в темном переулке скажешь что пишешь на анрыле, тебя может даже бить не будут, а лучше вообще сразу в бинарник херачь тогда тебя вообще любой пахан зауважает.
Если этот пост чем-то нарушает правила сайта, пожалуйста, можете объяснить, чем именно? Я пытался задать этот вопрос в разделе gamedev, там его почему-то сразу же забанили\скрыли. Что я нарушил?
В разделе геймдева есть баг, что все заданные вопросы автоматически скрываются, и их нужно сразу уводить в паблик чтобы они были заданы. Этот баг уже несколько лет, про него говорилось, но он все еще там. Так что ничего не нарушил, просто никому нет дела до этого бага.
Вести беседу с человеком, который мерит уровень своей компетентности мышления годами участия в проектах второго сорта. без обид, но блестар сёрфер не впечатлил
Если годы практики по профессии не показатель компетентности, то я уже не знаю.
PrincePhoenix, честно говоря, в последнем посте ты меня своей "демагогией" никому не нужной окончательно утомил. Лучше бы пошел статью написал на эту тему. А я как-нибудь сам разберусь. :)
PrincePhoenix, ты вообще понимаешь что ты просто начинаешь какую-то телегу про планирование, риски, рентабельность, дизайн доки просто на почве того что ТС решил начать изучать юнити? А в ответ на попытку тебе намекнуть что тебя заносит ты начал нести тему "в таком случае ты дальше не уедешь / у меня IQ самый большой / у меня образование в чехии / вы делаете клоны фу позор / вы просто любители без ААА-проектов". Насколько это идет умным людям?
Ну ок. Почитав тред я понял что учиться играючи не стоит. Нужно сразу включать в себе профессионала, работать на результат. Если вы делаете игру, начните с диздока, когда вы его раздуете до невообразимых размеров с невообразимой точностью, когда обзаведетесь заинтересованной аудиторией - садитесь писать игру. Поздравляем, теперь вы осознали, что ваша дотошная точность абсолютно не согласуется с реальными инструментами в движке, и там все делается совсем не так как вы себе представляли. Поздравляем, количество фич которые вы запланировали вы реализуете примерно через 20 лет, так как ваши амбиции оказались выше ваших реальных возможностей. Поздравляем, вы опозорились перед аудиторией, которой наобещали золотых гор. Поздравляем, вы потратили время зря.
То что я написал выше это именно то, что с вами случится, если вы умудритесь послушать товарища PrincePhoenix. Когда-то давно, лет в 15 я имел печальный опыт послушать таких экспертов и, увы, не было никакого клампа, который мог встрять в беседу и полить автора говном, а люди без опыта, знаете, достаточно доверчивы. В результате это, конечно, дало мне бесценный опыт, осознание огромной тонны ошибок, но было бы лучше, если бы это был кто-то другой, а потом он мне бы про это рассказал, понимаете?
Вы не начинаете с концептов, если вам нужно освоить 3д моделлирование. Вы берете туториалы, и пробуете отсечь один кубик от другого, делаете очень много такой мишуры пока вы не поймете что готовы. Когда собираетесь писать нейросети вы сначала узнаете про матрицы, про веса, про обратное распространение ошибки, дифференциальное исчисление. А когда садитесь учиться писать игры, подумать только - вы не делаете концепт супер гениальной игры, вы берете и начинаете ковыряться, пытаясь сделать так чтобы кубик поехал при нажатии на кнопочку. Без продумывания средневекового сеттинга для этого кубика, так немного полегче.
Дизайн доки, контроль версий, обмазывание абстракциями, планирование, модульность - это все придет со временем, но потом.
Вообще, я не перестаю удивляться, как каждое следующее поколение новичков раз за разом совершает одни и те же ошибки, слушая убедительное мнение профанов, наслушавшихся таких же профанов и игнорируя мнение специалистов, которые через это уже прошли. Причем первые пытаются маскироваться под вторых. У меня прямо жопу рвёт от такого. Но в этот раз, к счастью, все не так, но случай достаточно показательный в том, как именно это происходит.
Мне бы очень хотелось, чтобы кто-то желающий учиться прочитал то что написано мной выше и воспринял это как слова высеченные на камне. Через этот урок прошли очень многие.
А реально мне помогло, кстати, просто ковыряние в игровом движке. Так я освоил первый "взрослый" язык. Игровой движок - отличное место чтобы оседлать ООП! Это камень вот сюда: prog:
Я еще не видел ни одного человека, который бы успешно изучил язык одновременно ковыряясь в движке, особенно печальные результаты наблюдались когда это еще и первый "взрослый" язык программирования для человека
Почему то как сяду писать комментарий так распирает на тонну текста. Не умею выражаться лаконично. Простите уж.
» Fa_losophy / Wc3 Mobile?
» Блог sleep`a / GUI или jass?
» Дневник одного повара / Виды людей
продуктивно поговорили
» Дневник одного повара / Виды людей
» Дневник одного повара / Виды людей
» Дневник одного повара / Виды людей
Отредактирован Devion
» Дневник одного повара / Виды людей
Ты знаком со значением слова анализ?
Потружусь за тебя:
PrincePhoenix:
PrincePhoenix:
В остальном я в принципе солидарен, но этому костру не хватает дров.
Отредактирован Devion
» Программирование / C# Делегаты и события
На выходе компилятора будет примерно вот такое:
Так же можно создать переменную со значением и записать туда i, и уже эту переменную прокинуть в лямбду, в этом случае будет создаваться отдельный экземпляр делегата каждый виток цикла (но в старых версиях компилятора это будет работать иначе, что вроде как баг, ибо для пользователя оно по факту должно выглядеть как "передача ссылки").
Бтв, тут всплывает тема с аллокацией, т.к. как ты можешь заметить создание экземпляра каждый виток цикла это дичь )
» Программирование / C# Делегаты и события
# объяснить подробнее про вычитание списка делегатов
Например, разъяснить почему:
рассказать про аллокации, связанные с лямбдами, когда они происходят и почему, а так же почему то что оно аллоцирует может быть проблемой
рассказать про неявный захват переменных
ну и про замыкания само собой, т.е. почему вот это выведет 333
Отредактирован Devion
» Зона Агрена. / Выбор движка для создания игры. Прошу помощи.
Оба позволят написать игру такую какую тебе нужно. Попробуй по очереди, а там уже сам посмотри какой
юнитиименно тебе заходитОтредактирован Devion
» Программирование / Работа с файлами конфигурации приложения
но как суть, более старые решения там навязывали xml, мб из-за вопросов совместимости.
Понятно что xml это синтаксически перегруженный кусок говна и юзать его намеренно на новых проектах то еще удовольствие, но момент относительно "всякого нативного" в дотнете еще актуален - то что постулируют писать в xml, пишется в xml.
» Программирование / Работа с файлами конфигурации приложения
для сложных типов данных как раз не xml а yaml, т.к. это больше чем разметка, есть поддержка алиасов специально для сериализации ссылочных типов
Отредактирован Devion
» Шатер GenElCon'a / Когда нужно покупать / не покупать игры
А второй фактор банальный - я не хочу держать 20 лаунчеров разных контор на компе и помнить логины/пароли ко всем этим аккаунтам, чтобы поиграть в игру через стим.
Отредактирован Devion
» Зона Агрена. / Выбор движка для создания игры. Прошу помощи.
Мне в принципе глубоко толерантно на чем вы НЕ сделаете игру, но естественно топлю за юнити, потому что это православный движок, там все функции окрапленые святой водичкой, из-за этого бешеный прирост по всем параметрам.
Про хрюшу вообще бы советовал забыть ее перестают поддерживать все кому не лень, а к моменту не готовности твоего проекта вообще станет мамонтом в духе Windows 98. Проще поставить вин 7 и перестать страдать.
Холивары про графику/производительность/тулкит из коробки вообще перестают быть актуальными, на юнити можно уже добиться и рантайм графики топовой (в 2018.1 завезли более широкий доступ к рендеру и несколько заготовок, система освещения в юнити уже давно выдает результаты получше сами-знаете-чего по дефолту, можно на ютубе видео сравнений найти где рассматриваются артефакты освещения), по производительности там есть штуки в духе IL2CPP и JobSystem, IL2CPP это приближение по скорости к C++ с небольшим урезанием функционала, оно конечно не 1 к 1, но нужно понимать что и шарп сам по себе язык более дружелюбный, достаточно компромиссное решение, какие-то штуки для дизайнеров есть в духе машины состояний из стора выкупленной, хотя до блюпринта конечно оно не дотягивает по отзывам коллег, но терпимо, таймлайны там какие-то, PackageManager то ли уже вышел, то ли вот вот выйдет, ну в бетах уже есть. Короче на удивление много всякой работы кипит по улучшению движка, там фичи выходят мы их тупо осваивать уже не успеваем, тонны наработок вообще выбрасывать приходится ибо оно уже в движке появилось, обещают по 50 девственниц каждому разработчику, мы тут вообще уже от счастья плачем, спустилась мана небесная, и фреймворк обновили, и модульность есть, и контроль версий встроенный, и редактирование сцены одновременное по сетке, и ассеты скоро по репкам развезут, и еще что забавно что большая часть разработчиков это такое дно что они даже половиной всех фич ни разу в жизни не пользовались, но это уже другая история.
» Зона Агрена. / Выбор движка для создания игры. Прошу помощи.
» Огонёк Феникса / Усилия
» Блог им. Diabfall / vsИнди
» Блог им. Diabfall / vsИнди
» Блог им. Diabfall / vsИнди
» Блог им. Diabfall / vsИнди
» Блог им. Diabfall / vsИнди
» Блог им. Diabfall / vsИнди
» Блог им. Diabfall / vsИнди
» Блог им. Diabfall / vsИнди
prog: