Pull to refresh
60
0.1
Vladislav Khorev @Mephi1984

Developer

Send message

Туториал по Unreal Engine: C++

Reading time12 min
Views180K
image

Blueprints — очень популярный способ создания геймплея в Unreal Engine 4. Однако если вы уже давно программируете и предпочитаете код, то вам идеально подойдёт C++. С помощью C++ можно даже вносить изменения в движок и создавать собственные плагины.

В этом туториале вы научитесь следующему:

  • Создавать классы C++
  • Добавлять компоненты и делать их видимыми для Blueprints
  • Создавать класс Blueprint на основе класса C++
  • Добавлять переменные и делать их изменяемыми из Blueprints
  • Связывать привязки осей и действий с функциями
  • Переопределять функции C++ в Blueprints
  • Связывать событие коллизии с функцией
Читать дальше →

Равномерное распределение точек на сфере

Reading time8 min
Views23K
Как можно более равномерное распределение точек на сфере — невероятно важная задача в математике, науке и компьютерных системах, а наложение сетки Фибоначчи на поверхность сферы при помощи равновеликой проекции — чрезвычайно быстрый и эффективный метод аппроксимации для её решения. Я покажу, как благодаря незначительным изменениям его можно сделать ещё лучше.


Какое-то время назад этот пост появился на главной странице Hacker News. Его обсуждение можно прочитать здесь.

Введение


Задача равномерного распределения точек на сфере имеет очень долгую историю. Это одна из самых хорошо исследованных задач в математической литературе по сферической геометрии. Она имеет критическую важность во многих областях математики, физики, химии, в том числе в вычислительных методах, теории приближений, теории кодирования, кристаллографии, электростатике, компьютерной графике, морфологии вирусов и многих других.

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

  • Упаковка и покрытие
  • Выпуклые оболочки, ячейки Вороного и треугольники Делоне
  • Ядра $s$-энергии Риса
  • Кубатура и определители

Очень важно уяснить этот аспект: обычно не существует единственного оптимального решения этой задачи, потому что оптимальное решение, основанное на одном критерии, часто не является оптимальным распределением точек для других. Например, мы также выясним, что оптимизация упаковки необязательно создаёт оптимальную выпуклую оболочку и наоборот.

Ради краткости в этом посте мы рассмотрим только два критерия: минимальное расстояние упаковки и выпуклую оболочку/сетку Делоне (объём и площадь).
Читать дальше →

Повышаем эффективность распределения точек на сфере

Reading time9 min
Views8.3K
Наложение решётки Фибоначчи (она же золотая спираль или сфера Фибоначчи) на поверхность сферы — чрезвычайно быстрый и эффективный приближенный метод равномерного распределения точек на сфере. Я продемонстрирую, как небольшие изменения, внесённые в каноническую реализацию, могут привести к значительным улучшениям показателей ближайших соседей.


Рисунок 1. Небольшая модификация канонической решётки Фибоначчи может привести к улучшению расстояния упаковки (максимального расстояния между ближайшими соседями) на 8,3%.
Читать дальше →

Почему я не хочу продолжать работу в биотехе

Reading time9 min
Views40K

Немного бекграунда: я никогда не мечтала стать биологом. Я родилась в семье медиков, с детства меня интересовало как устроены мы, люди или другие живые организмы. Мои родители подогревали мой интерес довольно подробными описаниями устройства организмов, ответами на вопросы “почему так, а не иначе”, а отец проводил семинары на популярные медицинские темы для спортсменов. Биология меня интересовала скорее как хобби, мне нравилось читать научпоп, но я никогда не задумывалась о том, чтобы связать свою жизнь с этой сферой. Интересным, с моей точки зрения, фактом является то, что ни отец, ни моя мать не связали свою жизнь с медициной в классическом понимании того, чем должны заниматься выпускники мед. института. Отец и вовсе бросил учебу на последнем курсе. Оба стали предпринимателями.

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

Читать далее

Реверс-хантинг

Reading time5 min
Views63K

Случился тут конфуз. Обычно я не провожу собеседования с кандидатами в свой отдел – есть специально обученный человек. Но всяко бывает – человек приболел. И я, по старинке, попёрся сам.

Кандидат оказался знакомым – очень давно работали вместе, были почти друзьями, но несколько лет особо не общались. Увидев меня, парень, почему-то, сильно сконфузился. Даже побледнел. Я не старая страшная обезьяна, и такую реакцию на свой фейс увидел впервые. Что особенно удивительно – это ведь опытный программист, не впервой собес проходить.

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

Расспросил. Рассказал. Удивился.

Читать далее

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

Reading time11 min
Views33K

Помните одного парня? Нарисовался тут опять. Выглядел усталым и довольным. Сказал, что сделал реальное добро реальным людям. Причём, всем сразу, не исключая и себя любимого.

Если помните (или по диагонали перечитаете приведённую выше ссылку), парень этот был программистом на заводе, потом уполз в сторону решения бизнес-задач, и в итоге пришёл к выводу: работа программиста и «улучшителя бизнес-процессов» - очень похожи. Как я понял, с тех самых пор он таскается по разным бизнесам и чего-то там улучшает.

Он много чего наплёл, но одна тема меня прям сильно заинтересовала – обучение программистов, которое парень превратил в какой-то бешеный бурлящий поток. Я выпытал всё, что смог, и спешу рассказать вам.

Да, всё как всегда у того парня – не на десятки процентов, а в разы.

Читать далее

Отношения с IT. Часть двадцать вторая. Как из 1+1 получается: «Ой, да у нас убыток!»

Reading time7 min
Views3.6K

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

 

- Сашуля, ты мне нужна. Значит у нас есть контракт и по нему мы второй год несем убытки. Я в пятницу еду на переговоры к одной стерве и нужно найти весомые аргументы, чтобы мы могли переподписать договор на выгодных для нас условиях. Ну и не потерять заказчика. 

- Так, поняла. А у кого есть все вводные?

- Финансовые данные можешь взять у директора по денюжкам, а по стратегии переговоров можешь обратиться к развивающему директору по продукту.

- Сделаю. 

 

Слово «убыток» для проекта или контракта не должно быть чем-то пугающим. По крайней мере сразу. Минус возможен на первых этапах реализации проекта. Разобраться с перспективами помогает финансовая модель, внутри которой анализируются доходы и расходы, а также накопленный от проекта денежный доход (нарастающим итогом). И исходя из анализа финмодели делаются выводы, продумываются дальнейшие шаги и принимается решение о целесообразности старта проекта или его отмене.

 Директор по денюжкам был очень обеспокоенным. Оно и понятно, в случае прихода акционеров, очень много вопросиков будет и к нему. Кроме того, именно на директоре по денюжкам лежит задача по денежному потоку, а следовательно ответственность за предотвращение кассовых разрывов и наличие средств на счете для оплаты всех потребностей компании (аренда, заработные платы, премии, покупка железа, устрицы в честь великого праздника – пятницы и т.д.). Поэтому любой минусовый проект или проекты кроме самого убытка, угрожают нехваткой кэша, уменьшает чистую прибыль и как следствие негативно влияет на рентабельность бизнеса в целом. Поэтому все эти чрезмерно радостные возгласы кажутся немного излишними и необоснованно оптимистичными:

Читать далее

Как REST выродился в собственную противоположность

Reading time13 min
Views12K

Меня все сильнее раздражает, сколько людей готовы записывать в REST API любой интерфейс на основе HTTP. Сегодня приведу в качестве примера SocialSite REST API. Это же вызовы удаленных процедур (RPC). Он просто выкрикивает RPC. Связность между элементами на экране настолько сильная, что это творение заслуживает рейтинга X.

Читать далее

Как нанять программиста, если ты не программист

Reading time6 min
Views5.8K

Найм разработчика без понимания IT-сферы - страшный сон любого эйчара-гуманитария. Как профессионально оценить специалиста? Может быть, подучить пару языков? Закончить экстремально быстрый интенсив по специализации фулстека?

Читать далее

Как подмочить себе репутацию на фрилансе

Reading time8 min
Views13K

Это глава из «Книги нормального фрилансера», в которой я делюсь накопившимся опытом проектировщика интерфейсов, работающего на себя.

Разговор ведя с клиентом, стань ему ближайшим другом,
Поделись чужим секретом, обсуди своих коллег.
Объясни, что срочно надо, чтоб проект пошёл в работу,
Скоро взнос за ипотеку и голодный дома кот.

Мы уже почти добрались до того этапа, когда нужно будет впервые пообщаться с потенциальным клиентом голосом. И я бы хотел заранее уберечь читателя от ряда ошибок. Многие из начинающих фрилансеров будут, сами того не понимая, вести себя определённым образом, с первых же слов теряя репутационные очки и серьёзность отношения к себе.

«У меня тяжёлая жизненная ситуация»

Не стоит рассказывать будущим клиентам о том, как всё плохо, и как фрилансеру нужна работа. Какими бы ни были финансовые обстоятельства и как бы на самом деле ни хотелось заполучить заказ, клиент этого не должен узнать.

Читать далее

Ужасы японского языка. Письменность

Reading time13 min
Views71K

Четыре года назад я совершил один из самых безрассудных поступков в своей жизни: начал учить японский язык. Разумеется, прежде чем решиться на такое приключение, я тщательно все продумал и провел подробное исследование на тему. Т.е. погуглил, что другие люди думают об этом экзотическом языке. Отзывы меня весьма приободрили. В них говорилось, что нужны годы и годы тяжелого учения. Люди писали, что, если тебе кажется, что язык очень тяжелый, то ты все еще недооцениваешь опасность раз в десять. Интернет пестрит предупреждениями, что тебе это не нужно; что это тяжело; что "не лезь оно тебя сожрет".

Но меня было не остановить. У меня был положительной опыт изучения английского, немецкого и испанского. Я был окрылен уверенностью и не думал, что японский так ужасен, как его малюют. Так вот. Я был не прав. Японский - страшно тяжелый язык, требующий в разы больше времени, чем любой романский или германский язык. Собственно, об этом и хочу вам сегодня рассказать: что именно в японском представляет наибольшую сложность.

В этой статье начну с самого очевидного препятствия на пути изучающего: письменности. Если вам интересно, как в японском соотносится написанное с произношением и значением, сколько требуется выучить иероглифов для понимания японских книг и какие совершенно неожиданные подводные камни есть в этом языке, то прошу пожаловать под кат!

Читать далее

Holy C++

Reading time5 min
Views33K

В этой статье постараюсь затронуть все вещи, которые можно без зазрения совести выкинуть из С++ не потеряв ничего(кроме боли), уменьшить стандарт, нагрузку на создателей компиляторов, студентов изучающих язык и мемосоздавательный потенциал громадности С++

В первую очередь хочется убрать из языка то, что приводит к частым ошибкам и мешает развитию языка, тут идеальным кандидатом можно назвать

1 - union - сумм тип из 70х, в С идея хранения одного типа из нескольких в одном участке памяти выглядит неплохо и сейчас, ведь там все типы это набор байт с заданным размером.

В С++ же использование union это автоматическое undefined behavior, например:

Читать далее!

Монетизация игр: какие компании продолжают выплачивать доходы разработчикам в РФ

Reading time8 min
Views37K


Я потратила 50 часов, чтобы понять, как работает монетизация игр. Хотела найти информацию в формате «вот есть у меня игра, и что дальше делать», но узнала, что в последние месяцы многие нероссийские сервисы монетизации в РФ не платят. Решила проверить, кто точно платит.

40 разработчиков игр с живыми проектами рассказали мне, какие рекламные сервисы и магазины игр продолжают платить в РФ и какими обходными путями ребята пользуются в последние пару месяцев.

Кто точно выплачивает:

  • Appodeal
  • Google Play
  • App Store
  • Admob
  • MyTarget
  • Epic Games
  • Steam
  • Game Distribution


Под катом подробнее про эти сервисы.

Если у вас есть более актуальная информация, или дополнения — буду очень благодарна.

Еще я веду канал в Telegram GameDEVils и блог на Substack , делюсь там клевыми материалами (про геймдизайн, разработку и историю игр).
Читать дальше →

Принципы домашнего танкостроения

Level of difficultyEasy
Reading time33 min
Views38K

Хотели бы свой дистанционно управляемый танк? В этой статье я расскажу про общие принципы танкостроения из доступных материалов.

Читать далее

Отношения с IT. Часть четырнадцатая. Точки входа

Reading time10 min
Views2.7K

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

- Как продать то, что стоит дорого и непонятно почему?

- Нужно найти точки входа и дальше использовать скрипт. 

В продажах важно не только знать скрипт и то, как он работает, но и понимать свою целевую аудиторию и точки входа (по сути, боль или проблемы ЦА), через которые может быть решена проблема, получено благо и, следовательно, осуществлена продажа. Скрипт первой встречи как правило состоит из шести блоков:

1) Рапорт;

2) Уточнение формулировки;

3) Квалификация;

4) Презентация продукта/услуги;

5) Отработка возражений;

Закрытие сделки.

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

Читать далее

Лёха смог: уйти из Мака в 35 и стать программистом

Reading time5 min
Views41K

Статью заказал сам Лёха. Он – отличный парень, но пока немного не уверен в своём умении доходчиво выражать мысли. Однако, мне понравилась цель его заказа, поэтому я решил поучаствовать – написать текст от его имени.

Итак, Лёха смог войти в айти. В 35 лет, ни дня до того не проработав программистом. Зато оттрубив 10+ лет в Маке. Магия цифр: приходя в АйТи, Лёха зарабатывал 35 тыщ. Спустя полтора года – сотку. Дальнейший рост предвидится – Лёха идёт по известной шкале, конец которой ещё далеко. Пока обозримая цифра – две сотки.

Да, цель-то, которую Лёха сформулировал… «Парни, всё получится!».

Читать далее

Ищем аномалии: доход, отношения и 10х-программисты

Reading time21 min
Views11K

Вскоре после того как я, в сентябре 2013, начал вести блог (мне, студенту, тогда больше нечем было заняться), я поставил перед собой цель — писать по статье в неделю. В результате — со дня рождения моего блога и до того момента, когда я начал работать в Wave (тогда мне уже было чем заняться, в результате посты я выкладывал гораздо реже), я опубликовал примерно 150 материалов.

Результаты публикации этих 150 статей оказались очень и очень разными:

— Два поста оказались крайне успешными, добрались до главной страницы Hacker News (первый — о том, что произошло со всеми непрограммистами, второй — о читабельности, хакабельности и абстрагировании кода).

Дэн Луу, после того, как увидел второй из вышеупомянутых постов, подписался на мой блог и начал слать на Hacker News многие мои материалы. В результате ещё штук 5 статей стали довольно-таки популярными. Это привело к приходу в мой блог первой волны подписчиков, с которыми я не знаком лично. Плюс — это дало мне серьёзную мотивацию писать дальше. Я и Дэн, в итоге, стали хорошими друзьями.

— Примерно 95% оставшихся постов получились совершенно непримечательными.

Это — очень типичный разброс результатов публикаций, на который могут рассчитывать блогеры: несколько «хитов» и куча «хлама». Через восемь лет я развил достаточно хорошее чутьё на то, какой пост найдёт отклик у читателей. В результате я смог почти полностью уйти от написания совершенного «хлама». Но, даже учитывая это, несколько моих лучших недавних постов (этот и этот) оказались гораздо успешнее других. Речь идёт о том, что многие делились с другими ссылками на них, и о комментариях к ним, вроде «то, что я узнал, сильно на меня повлияло».

Читать далее

Отношения с IT. Часть тринадцатая. Иди и продавай

Reading time7 min
Views4.1K

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

- Поздравляю! Вы только что познакомились с нашим IT-продуктом. Надеюсь, проведенное демо было полезно. Если возникнут вопросы – обращайтесь. – Сказали команде продажников ребята из QA. 

- Идите и продавайте! – Благословил своих менеджеров господин сюзерен, потирая руки в ожидании миллионных контрактов. 

Интересно, что большая часть персонала в коммерческом отделе либо никогда раньше не занимались продажами, либо не были знакомы с IT-отраслью. Для знакомства новых сотрудников со сложным интеллектуальным продуктом и погружением в его специфику, предполагается проведение одного полуторачасового демо и предоставление нескольких презентаций в повер поинте, которые визуально выглядят так, будто вернулось прямиком из двухтысячных. Дальнейшие расспросы новоприбывших и их попытки отыскать ответы столь же неэффективны, как процесс адаптации и знакомство с IT-продуктом. 

- Почему заказчики выбирают именно нас?

- Мы а**енчик!

- Есть ли у нас калькулятор стоимости?

- Нет, он нам не нужен, потому что мы ах**нчик!

- Как мы позиционируем продукт?

- Никак, мы ж ах**енчик!

- В чем наше уникальное торговое преимущество перед конкурентами?

- Пффф, у нас нет конкурентов, потому что мы - ах**нчик.

- Для кого предназначен продукт, который делает компания сюзерена?

- Нас хотят все, ведь мы кто? Да, Сашуля, мы – ах**енчик.

Услышав такой ответ невольно проникаешься верой и начинаешь нести эту мысль в переговоры. Однако практически сразу происходит столкновение с дополнительными вопросами со стороны заказчика, потому что он отчего-то не удовлетворяется столь развернутым ответом и задает кучу дополнительных вопросов, будто требуя за свои миллионы хоть каких-то пояснений.

Читать далее

Information

Rating
2,983-rd
Location
Бишкек, Кыргызстан, Кыргызстан
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Game Developer
Lead
From 550,000 ₽