Pull to refresh
20
0
Николай Попов @nhekfqn

User

Send message

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

Reading time7 min
Views404K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Постановка задачи


Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
Читать дальше →
Total votes 198: ↑196 and ↓2+194
Comments120

Рационализируй это: новая платформа Intel и экономия на неочевидном

Reading time5 min
Views18K
Привет, GT! Тема злободневная, так что даже пришлось сместить остальные публикации в графике. Не так давно в продаже появилось новое поколение процессоров от Intel (с новыми материнками, само собой): консьюмерский сегмент пополнился сокетом 1151. Многие покупатели совершают очень странный выбор связки «материнская плата + процессор + память», из-за чего мы и решили выпустить этот мини-гайд.


Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments44

Психотипы Бартла и балансировка аудитории

Reading time16 min
Views131K
Несколько десятилетий назад профессор Университета Эссекса Ричард Алан Бартл придумал модель сегментации игроков по психологическим типам. Сегодня её используют разработчики игр во всем мире, в том числе и в Mail.Ru Group. Например, психотипы Бартла применяются в социальных сетях для оптимизации каталога игр под каждого пользователя. Так что же придумал этот замечательный человек?

30 лет назад Бартл написал одну из первых многопользовательских игр — MUD (Multi-User Dungeon), по имени которой теперь называют целый жанр. Фактически, это прародитель всех современных ММО. Вот такая замечательная консольная текстовая игра:



То, на что опирается Бартл, — это программный код игры, распечатанный для защиты научной работы.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments27

Модели заточки в современных играх

Reading time9 min
Views41K
Каждого гейм-дизайнера волнуют два вопроса: как удерживать игроков и как получать прибыль от своих игр? Обе темы очень большие, им посвящено множество статей, и, не побоюсь этого слова, трудов. Здесь же мы коснёмся одного практического инструмента, нацеленного как на поддержания интереса у пользователей, так и на монетизацию игры. Сегодня мы рассмотрим популярные механики заточки в современных и минувших играх.


Читать дальше →
Total votes 41: ↑29 and ↓12+17
Comments26

Как написать диздок

Reading time6 min
Views126K


Запрос «как написать диздок», заданный в любой поисковик, даёт немало ответов, представляющих собой как перевод западных статей, так и авторские размышления на эту тему из России, или даже дизайн проекта «Курочка Ряба». В воображении читателя предстает большой единый документ, описывающий идею и геймплей игры с перечислением всех ее фич. Возможно, читатель однажды приходит с такими идеями работать геймдизайнером в крупную российскую или западную компанию, на крупный проект… И обнаруживает, что таких документов больше не существует.
Читать дальше →
Total votes 47: ↑43 and ↓4+39
Comments11

Грокаем* RxJava, часть первая: основы

Reading time7 min
Views179K
* от переводчика: я долго думал над тем, как перевести на русский язык глагол «to grok». С одной стороны, это слово переводится как «понять» или «осознать», а с другой стороны, при переводе романа Роберта Хайнлайна «Чужак в чужой стране» (в котором это слово впервые и появилось на свет), переводчики сделали из него русское «грокать». Роман я не читал, поэтому счёл, что есть у этого слова какие-то смысловые оттенки, которые русскими аналогами не передавались, а посему в своём переводе использовал ту же самую кальку с английского.

RxJava — это, сейчас, одна из самых горячих тем для обсуждения у Android-программистов. Единственная проблема состоит в том, что понять самые её основы, если вы не сталкивались ни с чем подобным, может быть довольно затруднительно. Функциональное реактивное программирование довольно сложно понять, если вы пришли из императивного мира, но, как только вы разберётесь с ним, вы поймёте, насколько же это круто!
Я постараюсь дать вам некое общее представление об RxJava. Задача этого цикла статей состоит не в том, чтобы объяснить всё вплоть до последней запятой (вряд ли я смог бы это сделать), но, скорее в том, чтобы заинтересовать вас RxJava, и тем, как она работает.
Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments28

Защита от накруток в онлайн играх

Reading time11 min
Views31K
Это статья о том, как мы делали систему защиты браузерной HTML5 игры от взлома и подделки результатов, с какими трудностями мы при этом столкнулись, как их решали и что получили в итоге. Основной и всем знакомой проблемой таких игр является возможность написания бота, который эту игру автоматически пройдет. Разработку подобного бота облегчает тот факт, что код игры находится в публичном доступе. Ситуация осложнялась тем, что были объявлены реальные призы, среди которых iPad, билеты на концерт, USB флеш накопители и т.п.



Статья будет полезна в основном тем, кто делает HTML5 / Flash игры и заботится об их безопасности; тем, кто платит за разработку этих игр; и немного тем, кто призван бороться с ботами. Ну и, конечно, тем, кто написал эту статью. Потому что мы надеемся, что она станет началом продуктивной дискуссии о том, как разработчики браузерных игр могут противостоять кибер-мошенникам.
Читать дальше →
Total votes 45: ↑43 and ↓2+41
Comments71

Забудьте САР теорему как более не актуальную

Reading time12 min
Views67K
или «Прекратите характеризовать хранилища данных как CP или AP»

capДжеф Ходжес в своем прекрасном посте «Заметки о распределенных системах для новичков» рекомендует использовать САР теорему для критики найденных решений. Многие, похоже, восприняли этот совет слишком близко к сердцу, описывая свои системы как «СР» (согласованность данных, но без постоянной доступности при сетевой распределенности), «АР» (доступность без согласованного состояния при сетевой распределенности), или иногда «СА» (означает «Я всё ещё не читал статью Коды (Coda Hale) почти 5-летней давности»).

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

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

САР использует слишком узкое определение


Если вы хотите ссылаться на САР как на теорему (а не на расплывчатый концепт в маркетинговых материалах к вашей базе данных), вы должны быть точны. Математика требует точности. Доказательство сохраняется только если вы вкладывается в слова, то же самое значение, что было использовано при доказательстве. И оно опирается на очень точные определения:
Еще 3000 слов увлекательного чтива
Total votes 70: ↑66 and ↓4+62
Comments23

Лекции Технопарка. Геймдизайн от идеи до релиза

Reading time32 min
Views68K


Этот пост, как нетрудно догадаться, посвящен геймдизайну и разработке игр. Раньше я делал клиентские и браузерные игры, в том числе экшн Panzar. В Mail.Ru Group занимаюсь разработкой мобильных игр. Эта публикация задумана мной как некий мастер-класс по мотивам выступления в Технопарке, на котором я поделился своим опытом организации процесса построения геймдизайна. Несмотря на то, что часть материала в этой статье более актуальна для крупных компаний, я постарался учесть особенности проработки игрового дизайна в небольших студиях и начинающих командах разработки.
Читать дальше →
Total votes 52: ↑43 and ↓9+34
Comments25

Самые надежные SSD: результаты эксперимента продолжительностью в полтора года

Reading time3 min
Views134K


Современные SSD-накопители достаточно надежные, а с учетом того, что цена за 1 ГБ (в долларах) постепенно падает, то использовать SSD во многих случаях даже более рационально, чем работа с HDD. Но какой SSD выбрать?

Полтора года назад журналист Tech Report решил провести эксперимент по выявлению наиболее надежных SSD. Он взял шесть моделей накопителей: Corsair Neutron GTX, Intel 335 Series, Kingston HyperX 3K, Samsung 840, Samsung 840 Pro, и поставил все шесть на цикличный процесс чтения/записи. Объем памяти каждого накопителя составлял 240-256 ГБ, в зависимости от модели.
Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments72

Разработка «браузерки» — год жизни и три года мучений

Reading time19 min
Views41K
Фактически прошел год с момента последней статьи — весь год молчание было связано больше с отсутствием масштабных интересных моментов, кои, по большей части, были освещены в первых статьях [1, 2, 3, 4]. Однако новый рассказ как минимум может осветить итоги годовой работы проекта с момента старта в публичный доступ.

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

Пернатск :: Лабиринт мрачного леса
Читать дальше →
Total votes 47: ↑42 and ↓5+37
Comments30

Средства, которые позволили нам ускорить разработку игры

Reading time7 min
Views35K
Вид на Котиков из редактора Unity

Раньше я работал над созданием мобильных игр как гейм-дизайнер или продюсер, но сам еще никогда профессионально не писал код. Несколько месяцев назад мне захотелось это исправить и сделать игру своими руками. Так, спустя два месяца работы, силами трех человек в App Store и Google Play появились «Котики». В своей истории я хочу поделиться приобретенным опытом и рассказать о средствах разработки, которые позволили нам быстро сделать эту игру.
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments30

16 месяцев функционального программирования

Reading time16 min
Views67K
Предлагаю читателям «Хабрахабра» перевод статьи «16 Months of Functional Programming». Все мои замечания будут выделены курсивом.

В этой статье я хочу поделиться с вами моим опытом в функциональном программировании. Я чувствую, что в целом за прошедшие 16 месяцев стал лучше разбираться в информатике и компьютерах, чем за предыдущие 10 лет и всё это благодаря моему погружению в Scala и мир функционального программирования. Причина по которой функциональное программирование побуждает вас к постоянному развитию заключается в том, что каждую задачу необходимо переосмысливать заново. Порой невозможно поверить в то, что большинство стандартных задач могут быть решены иным путём и — бум! — функциональный подход предлагает лучшее решение и это шокирует.
Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments97

Cоветы начинающему фрилансеру: как продавать услуги на развитые рынки через открытые площадки

Reading time16 min
Views64K
Я занимаюсь разработкой программного обеспечения в роли ведущего программиста-проектировщика с конца 90х годов. Фриланс никогда не был основным источником моего дохода. Но в 2010 году я начал всерьез заниматься фрилансом как побочным видом деятельности, приносящим существенный доход (за несколько месяцев я вышел на уровень продаж порядка $5k в месяц с фрилансерских контрактов с практически нулевыми расходами на исполнение контрактов, за исключением моего времени). Позднее я переехал в Северную Америку, но фриланс продолжает оставаться для меня важным побочным бизнесом. Кроме того, в своей работе я постоянно общаюсь с фрилансерами, в т.ч. профессиональными full-time фрилансерами из Северной Америки.

В этой статье я хотел бы поделиться своим опытом работы на площадках вроде elance.com с коллегами из экс-СССР и дать конкретные рекомендации по входу на рынок, позиционированию услуг, конкуренции с демпингом из Южной Азии, а также дать ликбез по общей профессиональной подготовке.
Много текста с конкретными примерами
Total votes 32: ↑31 and ↓1+30
Comments24

300 потрясающих бесплатных сервисов

Reading time11 min
Views1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Total votes 341: ↑325 and ↓16+309
Comments107

Приятная сборка frontend проекта

Reading time12 min
Views443K
В этой статье мы подробно разберем процесс сборки фронтенд проекта, который прижился в моей повседневной работе и очень облегчил рутину.

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

UPD (13 марта 2015): Заменил несколько плагинов на более актуальные + решил проблему с импортом CSS файлов внутрь SCSS

Читать дальше →
Total votes 61: ↑53 and ↓8+45
Comments119

8 сортов муды в твоей веб-студии

Reading time6 min
Views74K
Муда, что по-японски означает «потери» — это любая деятельность, которая потребляет ресурсы, но не создает ценности для клиента. (Источник).



Эта короткая заметка для тех, кто системно ищет, где его студия теряет деньги. Похвальное занятие в наше весёлое время.

Хорошо систематизировали виды потерь ребята из Toyota. Тойотовцы выделяют 7-8 видов муды, потерь на производстве. Посмотрим, есть ли аналоги между потерями в автомобилестроении и работе студии.
Читать дальше →
Total votes 86: ↑76 and ↓10+66
Comments45

Unity3D Editor: советы и трюки

Reading time4 min
Views32K
Решил вкратце в одном документе описать некоторые способы расширения редактора, позволяющие сделать работу с ним более удобной.

В публикации затронуты следующие моменты:

  1. Отображение иконки и текста над объектом в сцене;
  2. Отображение текста или иконки в окне Project;
  3. Шаблоны создаваемых скриптов;
  4. Открытие и создание проекта через контекстное меню проводника;
  5. Добавление подписчиков на событие в инспекторе.

Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments0

Ещё раз (надеюсь, последний) про double-checked locking

Reading time4 min
Views52K
Статей про double-checked locking на Хабре было столько, что казалось бы ещё одна — и Хабр лопнет. Вот только по Java неплохие публикации: Реализация Singleton в JAVA, Правильный Singleton в Java, А как же всё-таки работает многопоточность? Часть II: memory ordering или вот замечательный пост от TheShade (слава web-archive!). В наши дни, наверно, каждый Java-разработчик слышал, что если используешь DCL, будь добр объявить переменную volatile. Найти сегодня в коде известных опенсорсных проектов DCL без volatile довольно трудно, но оказалось, что проблемы ещё не полностью решены. Поэтому я добавлю небольшую заметку по теме с примерами из реальных проектов.

Иногда складывается ощущение, что программисты не включают мозги и не пытаются понять, как что работает, а просто следуют простым и понятным правилам вроде «объяви переменную volatile, используй DCL, и всё будет хорошо». К сожалению, такой подход в программировании не всегда работает.
Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments116

Дзен Ранних Пробуждений: 10 способов закрепления утреннего ритуала

Reading time8 min
Views58K
image

Мы продолжаем знакомить вас с переводами статей Chris Bailey, где он делится советами, которые извлек во время проекта «a Year of Productivity». Ранее мы публиковали статьи этого автора, они доступны в нашем блоге в разделе «личная продуктивность».

Итак, даем слово Крису!
Читать дальше →
Total votes 31: ↑25 and ↓6+19
Comments82

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity