Pull to refresh
202
0
Леонид @ForhaxeD

Graphics/Rendering engineer

Send message

Пишем настоящий шум Перлина

Reading time7 min
Views69K
По поисковому запросу шум перлина сразу попадается этот перевод на Хабре. Как справедливо заметили в комментариях к публикации, речь идёт вовсе не о шуме Перлина. Возможно, автор перевода и сам был не в курсе.

Чем выгодно отличается шум Перлина, легко можно заметить, если сравнить картинки.

Обычный шум (из той самой статьи):
image

Шум Перлина:
image

И увеличением количества октав первую картинку ко второй никак не приблизишь. Я не буду описывать достоинства шума Перлина и область его применения (потому что статья о программировании, а не о применении), а постараюсь объяснить как он реализован. Думаю, это будет полезно многим программистам, ведь хакерские исходники Кена Перлина мало объясняют даже при наличии комментариев.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments18

Семь итераций наивности или как я полтора года свою дебютную игру писал

Reading time32 min
Views78K
imagination С появлением у меня в первом классе Dendy вопрос кем я стану отпал сам собой буквально через пару недель — программистом конечно же. Я долго и упорно шел к этому, невзирая на отсутствие информатики в школе, работал в техподдержке известного всем регистратора параллельно с учебой в институте, но полноценная жизнь началась лишь в тот момент, когда меня наконец-то взяли хоть куда-то писать код.

Очень скоро я понял, что мало быть программистом, работающим от звонка до звонка и получающим за это деньги на карточку — всё самое интересное начинается, когда решаешь сам без всяких архитекторов, тестировщиков и тимлидов что-нибудь этакое написать и заставить работать. Желательно что-нибудь веселое и захватывающее. Игру, например.

Под катом лежат семеро очевиднейших (как мне сейчас кажется) граблей, неожиданно вставших у меня на пути, а потому способных с отличной от нуля вероятностью встать на пути любого, идущего дорогой разработки игр.
Семь не слишком оригинальных мишеней для лба, разбавленных повествованием
Total votes 100: ↑96 and ↓4+92
Comments137

Основы многопоточности в .NET Framework

Reading time15 min
Views122K


Многопоточность — одна из самых сложных тем в программировании, с ней постоянно возникает масса проблем. Без четкого понимания внутренних механизмов будет очень трудно предсказать результат работы приложения, использующего несколько потоков. Мы не будем здесь дублировать массу теоретической информации, которой очень много в сети и умных книгах. Вместо этого сконцентрируемся на конкретных и наиболее важных проблемах, на которые нужно обращать особое внимание и обязательно помнить о них в процессе разработки.
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments15

Skyforge: технологии рендеринга

Reading time16 min
Views103K


Всем привет! Меня зовут Сергей Макеев, и я технический директор в проекте Skyforge в команде Allods Team, игровой студии Mail.Ru Group. Мне хотелось бы рассказать про технологии рендеринга, которые мы используем для создания графики в Skyforge. Расскажу немного о задачах, которые стояли перед нами при разработке Skyforge с точки зрения программиста. У нас свой собственный движок. Разрабатывать свою технологию дорого и сложно, но дело в том, что на момент запуска игры (три года назад) не было технологии, которая могла бы удовлетворить всем нашим запросам. И нам пришлось самим создать движок с нуля.
Читать дальше →
Total votes 139: ↑132 and ↓7+125
Comments51

Превращаем Arduino в полноценный AVRISP программатор

Reading time5 min
Views285K
image

Приветствую всех пользователей хабра, в частности тех, кто страдает темой Arduino, как и я.

Меня уже давно спрашивают — можно ли прошивать hex файлы при помощи Arduino? Изменять фьюзы? Считывать прошивку? И всякое такое… Ответ — можно, и я сегодня вам расскажу, как я это делаю.


(Данное видео дублирует представленную ниже информацию)
Интересненько...
Total votes 24: ↑19 and ↓5+14
Comments8

Ачивка как инструмент манипуляции игроком в GameDev

Reading time5 min
Views83K

Ачивка, которая даётся вам за то, что вы посмотрели свои ачивки (Galaxy Trucker)

Принято думать, что ачивменты, «награды» или «достижения» — это своего рода медальки, которые даются за упорное прохождение игры. На практике же они нужны совершенно для другого: это и обучение, и дополнительные квесты, и формирование нужного поведения, и многое другое.

Посмотрите на эту ачивку, например:


Она не только позволяет быстрее распознавать профиль пользователя, но и содержит важную опорную информацию. По ней мы узнаём, что рейтинг топика больше 50 — это хорошо, а 30 постов с таким рейтингом — крутое достижение. То есть здесь решается и задача ускорения передачи информации о юзере, и задаётся цель (что правильно для сообщества), и обозначаются критерии достижения этой цели.
Читать дальше →
Total votes 110: ↑106 and ↓4+102
Comments122

Подготовительная работа, которая поможет вам покорить Кикстартер [несколько прописных истин, о которых забывают]

Reading time7 min
Views32K
Вы придумали крутую идею, записали потрясающее промо-видео, потратили несколько месяцев на подготовку, неделю оформляли страницу, запустили кампанию в ожидании головокружительного успеха и…

image

ничего не произошло…

В этом посте я постараюсь поделиться с вами некоторыми общеизвестными (и не очень) моментами, которыми часто пренебрегают отечественные разработчики, хотя они могут оказать существенное влияние на судьбу вашего проекта.
Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments16

Готовимся к ядерной войне

Reading time3 min
Views11K
image

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

Вырыть бункер, установить туда системы очистки воздуха, запастись едой и водой…
Но дьявол, как известно, в мелочах.
Читать дальше →
Total votes 172: ↑149 and ↓23+126
Comments104

Подготовка и публикация приложений в Marketplace

Reading time7 min
Views11K
Недавно мне невероятно повезло участвовать в вебинаре Microsoft Стаса Павлова и Юлии Щегловой "Windows Phone для стартапов. Ответы на ваши вопросы" (запись доступна на techdays).

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

Читать дальше →
Total votes 37: ↑30 and ↓7+23
Comments8

Свой проект на Кикстартере: практическое руководство

Reading time11 min
Views139K


Мы – российская студия, более двенадцати лет занимающаяся разработкой компьютерных игр. Нами были созданы «Мор. Утопия» (Pathologic), «Тургор» (Tension), «Тургор. Голос цвета» (The Void), «Эврика!» (Cargo! The Quest for Gravity) и «Тук-тук-тук» (Knock-Knock).

Несколько лет назад – по совету нашего опережающего время друга – мы решили опробовать краудфандинговую площадку Kickstarter в качестве источника финансирования небольшого игрового проекта.

Несмотря на сомнения, первая кампания успешно завершилась в середине сентября 2012 года. Мы собрали сорок одну тысячу долларов при заявленных тридцати. На полученные деньги была разработана и доставлена вкладчикам игра «Тук-тук-тук» (Knock-knock).

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

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

Не так давно сборы достигли заявленной суммы в двести пятьдесят тысяч долларов. Это один из крупнейших результатов в постсоветском пространстве, и нам бы хотелось поделиться своими наблюдениями за течением двух кампаний, которые, возможно, будут полезны другим командам, решившимся выйти на Кикстартер или другую краудфандинговую площадку.
Читать дальше →
Total votes 103: ↑100 and ↓3+97
Comments38

XNA 3D: введение в custom shader и чуть-чуть прототипа

Reading time11 min
Views29K


Привет, Хабрахабр! К сожалению, очень давно не писал на хабр. Личные дела совершенно были против того, чтобы сесть и написать пару статей по геймдеву. Может оно и к лучшему, за эти два года я набрался очень много опыта и всегда рад им поделиться. Стоит отметить, что я совершенно отказался от создания 2D игр: я не против их, но разрабатывать игры в 3D куда интереснее и веселее! По традиции — в качестве инструмента будет XNA 4.0, почему XNA 4.0 дорогой слушатель? А все потому, что, он до сих пор остается актуальной для инди-разработчиков. У нас есть язык с очень низким вхождением — C#. Есть тот самый фреймворк XNA с необходимыми начальными классами/структурами и алгоритмами. И есть DirectX с поддержкой шейдеров, вплоть до Shader Model 3.0. Если ты, %username%, читаешь меня впервые, то можешь прочитать заодно и мои статьи датированными 2012 годом. Не сказать, что они актуальны на все 100%, что в них нет ошибок, но определенную базу они могут дать. Как, наверное, понятно — я буду писать только о 3D: со списком тем я определился не до конца, но думаю, что сформирую их довольно быстро.

Пока точно задумал две статьи:
  • “XNA 3D: введение в custom shader и чуть-чуть прототипа”
  • “XNA 3D: HDR vs LDR, реализация HDR"


Сейчас сделаю введение в custom shader и реализуем простой прототип игры FEZ.
Читать дальше →
Total votes 60: ↑58 and ↓2+56
Comments11

Мой путь инди-разработчика, итоги нескольких лет

Reading time5 min
Views57K
Вот уже несколько лет я занимаюсь созданием игр. Иногда в свободное от работы время, иногда в перерывах между работой, а иногда и вместо нее. За это время мною выпущено несколько игр, пара из которых может оказаться достойными внимания. В этой публикации я хочу рассказать о пройденном мною пути, от дизайнера, который хотел делать игры, до дизайнера который делает игры.

image
Читать дальше →
Total votes 91: ↑77 and ↓14+63
Comments37

Эффект параллакса (3D) с помощью Lens Blur в Google Camera

Reading time1 min
Views59K
В то время как Lytro и прочие выпускают камеры светового поля, компания Google делает магию программными способами. Например, в режиме Lens Blur программа Google Camera использует Z-буферизацию и сохраняет карту глубины (depth map), то есть информацию о расстоянии до объектов.


Depth map в режиме Lens Blur

Несколько дней назад на Github опубликована программка LensBlurDepthExtractor.js, которая извлекает depth map из фотографий, сделанных в Google Camera.
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments68

Как я искал сотрудников или Как не надо проходить собеседования

Reading time5 min
Views170K
image

Сразу оговорюсь, что меня на написание этого поста навел пост хабровчанина voff Как я искал работу или Как не надо проводить собеседования. Пишу не с целью разведения холиваров, а просто потому, что в комментариях не уместить все то, что хочется высказать.

Читать дальше →
Total votes 247: ↑161 and ↓86+75
Comments504

Tronsmart MK908 — новое поколение мини-компьютеров на 4-х ядерном чипе Rockchip RK3188

Reading time11 min
Views214K
image
После мини-компьютеров с чипом RK3066 на рынок выходит новое поколение на 4-х ядерном чипе Rockchip RK3188. Чип выполнен по 28нм техпроцессу и состоит из 4-х ядерного процессора архитектуры Cortex-A9 с частотой работы до 1.8 ГГц и видеоускорителем Mali 400MP. Видеоускоритель остался прежним от RK3066, но разогнан до частоты 600МГц. Объём оперативной памяти по сравнению с прошлым поколением увеличился вдвое и составляет 2ГБ DDR3 памяти (хотя надо заметить, что на RK3066 тоже есть одно устройство с 2Гб RAM — это CX-803-II).
Сегодня мы рассмотрим одно из первых устройств на обновлённой платформе — Tronsmart MK908. А также узнаем насколько удобно пользоваться беспроводной мышью-клавиатурой iPazzport для управления системой Android.
Читать дальше →
Total votes 86: ↑79 and ↓7+72
Comments72

Spatial hashing для самых маленьких

Reading time5 min
Views40K


Spatial hashing это простая техника, которая используется в базах данных, физических и графических движках, симуляциях частиц и вообще везде, где нужно быстро что-то найти. Если в кратце, то суть в том, что мы разбиваем пространство с объектами на ячейки и складываем в них объекты. Затем вместо поиска по значению очень быстро ищем по хэшу.

Предположим, что у вас есть несколько объектов и вам нужно узнать нет ли между ними столкновений. Простейшим решением будет посчитать расстояние от каждого объекта до всех остальных объектов. Однако, при таком подходе количество необходимых вычислений растёт слишком быстро. Если на десятке объектов приходится делать сотню проверок, то на сотне объектов выходит уже десяток тысяч проверок. Это и есть печально известная квадратичная сложность алгоритма.
Можно улучшить ситуацию, если...
Total votes 88: ↑82 and ↓6+76
Comments21

События .NET в деталях

Reading time9 min
Views149K
Если вы .NET программист, то вы наверняка объявляли и использовали события в своем коде. Несмотря на это, не все знают, как события работают внутри и какие особенности связаны с их применением. В этой статье я попытался описать работу событий как можно более подробно, включая некоторые частные случаи, с которыми редко приходится иметь дело, но про которые важно и\или интересно знать.
Читать дальше →
Total votes 59: ↑57 and ↓2+55
Comments16

Распространение игр

Reading time4 min
Views36K
logoЗдравствуйте!

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

Кого заинтересовала данная тема — прошу под кат.
Читать дальше →
Total votes 45: ↑38 and ↓7+31
Comments23

Вызов Lua скриптов из Java и наоборот

Reading time6 min
Views15K
image
Недавно столкнулся с такой проблемой и был крайне удивлен, что в сети материалов по ней очень мало, учитывая популярность Lua. Как выяснилось, существует довольно много библиотек для работы с Lua-скриптами из java, но все они имеют свои нюансы. Лучше всего, как выяснилось, использовать библиотеку LuaJava от тех же разработчиков, что написали Lua.
Читать дальше →
Total votes 2: ↑1 and ↓10
Comments5

Об ИИ в интеллектуальных играх

Reading time7 min
Views33K
Не так давно я увлёкся игрой в сёги. К сожалению, эта чудесная игра практически не известна в России, поэтому пока я не научил играть друзей, мне приходилось играть с программой. Конечно, мне было интересно, как эта программа работает.
Ниже представлен небольшой рассказ о компьютерных алгоритмах, используемых в интеллектуальных играх.
Читать дальше →
Total votes 68: ↑66 and ↓2+64
Comments71
1

Information

Rating
Does not participate
Location
Россия
Registered
Activity