Pull to refresh
0
0
Антон @fregate

Пользователь

Send message

Динамическое освещение и неограниченное количество источников произвольной формы в 2D

Reading time6 min
Views40K
Продолжая тему велосипедостроения, хочу поделится тем, как я делал освещение в пиксель-арт игрушке.
Особенность этого метода заключается в том, что эти источники света не ограничиваются ни количеством ни формой.


Читать дальше →

Скриншоты без десктопа на HTML5

Reading time4 min
Views28K
Практически каждый день я пользуюсь почтой Gmail, но вот недавно заметил, что если сделать скриншот экрана (www.take-a-screenshot.org), то простым нажатием Ctrl + V этот скриншот можно скопировать прямо в текст письма Gmail. Это работает везде, но естественно кроме IE. Заинтересовавшись вопросом как это происходит нагуглил следующий пост на Stackoverflow. Под сильным впечатлением от возможностей HTML5 clipboardData решил сделать простенький портал, где без всяких Desktop приложений любой юзер может загрузить скриншот просто скопировав его.
Под катом исходники с объяснением и примерами

Motion planning: граф видимости, дорожные карты

Reading time10 min
Views28K

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

Создаем платформер за 30 минут

Reading time15 min
Views168K
Здравствуйте! Сегодня мы будем писать платформер, используя C++, Box2D и SFML, а также редактор 2D карт для игр Tiled Map Editor.

image

Вот результат (карта создавалась 5 минут + во время сьемки игра тормозила + экран не так растянут — дефект Bandicam):



Исходники и exe — внизу статьи.
Читать дальше →

Свен Винке о том, что же важней всего в RPG

Reading time6 min
Views14K
Если вам это имя ни о чём не говорит, то вы, скорей всего, не знакомы с компанией Larian, которая делает замечательные RPG. Я сам поклонник многих их игр, к тому же порой переписываюсь с людьми из их дружелюбной команды (больше на их официальном форуме, правда). Сейчас парни работают над Divinity: Original Sin, и Свен, в свете этого видимо, довольно интересную статью написал в своём блоге о том, что же на самом деле важно в RPG. Поклонников этого жанра прошу под кат.

Читать дальше →

Как выбрать фичи для вашего приложения: используем модель Кано

Reading time5 min
Views25K
Итак, вы задумали делать продукт. Не проект, а именно продукт, который через Х месяцев должен появиться в сторах и начать свое движение к звездам. Вы уверены в своих силах и знаниях, а количество новых идей, которые могут превратиться в настоящие киллер-фичи, просто зашкаливает. Самое время сказать себе “стоп!” и разобраться в том, что должно войти в комплект вашей самой первой релизной версии.

После того как вы расписали все характеристики будущего продукта, необходимо определить приоритеты в разработке. Первое желание – ранжировать по сложности реализации. Логично, тем более если ресурс ограничен – нет смысла строить “Титаник”, когда для первого преодоления Рубикона нужна просто шустрая и устойчивая лодка. Следуя заветам customer development, вы в будущем будете только наращивать функционал: главное – в архитектуре не промахнуться.

Итак, делаем шуструю лодку. Но выбор все еще непрост – даже из относительно простых деталей нужно определить тот набор, который и станет вашим release candidate. И здесь вам на помощь придет модель, которую придумал в 70-е годы прошлого века японский ученый Нориаки Кано. На “Хабре” уже был текст об использовании его модели для решения задач UX. Этот подход вполне применим и к продуктовым функциям – ведь они тоже отвечают за эмоциональные реакции потребителей. Кано предположил, что таких реакций бывает пять типов: от полной неприязни до прямо-таки восхищения. Эти типы японец изложил на одном графике, где по вертикальной оси отобразил эмоциональную реакцию пользователя (неприязнь – восхищение), а по горизонтальной – “количественное” значение характеристики (нет – много).



Читать дальше →

Пишем HTML5-игру за 20 минут, или введение в Phaser framework

Reading time9 min
Views197K
Эта статья посвящена разработке стильных, модных и молодежных HTML5 приложений с помощью нового фреймворка Phaser. В ней описан процесс установки библиотеки и создание классической игры Pong.

Введение


Phaser — это движок для разработки мобильных и десктопных HTML5 игр, базирующийся на библиотеке PIXI.js. Поддерживает рендеринг в Canvas и WebGL, анимированные спрайты, частицы, аудио, разные способы ввода и физику объектов. Исходники доступны как для просмотра, так и для свободной модификации. Он создан Ричардом Дейви (Richard Davey), известному благодаря активному участию в сообществе программистов, использующих Flixel framework. Ричард не скрывает, что вдохновлялся Фликселем, поэтому некоторые вещи в Фазере будут знакомы опытным флешерам. Первая версия нового движка вышла 13 сентября этого года, сейчас ведется не только активное развитие библиотеки, но и написание документации, поэтому в данный момент уроков по ней, мягко говоря, немного. Что, по моему скромному мнению, следует исправлять, и прямо сейчас.
Читать дальше →

Пишем игры на C++, Часть 1/3 — Написание мини-фреймворка

Reading time6 min
Views425K
Пишем игры на C++, Часть 2/3 — State-based программирование
Пишем игры на C++, Часть 3/3 — Классика жанра

Здравствуй, Хабрахабр!

На хабре не очень много уроков по созданию игр, почему бы не поддержать отечественных девелоперов?
Представляю вам свои уроки, которые учат создавать игры на C++ с использованием SDL!

Что нужно знать


  • Хотя бы начальные знания C++ (использовать будем Visual Studio)
  • Терпение


О чем эта часть?


  • Мы создадим каркас для всех игр, в качестве отрисовщика будем использовать SDL. Это библиотека для графики.


В следующих постах будет больше экшена, это лишь подготовка :)

Читать дальше →

Собираем по немножко от сервисов Google и Redmine на своем сервере

Reading time4 min
Views19K
Последнее время во всех коллективах где мне доводилось работать я так или иначе продвигал систему управления проектами, так как без нее начинался полный бардак, который мне терпеть ни будучи исполнителем, ни будучи руководителем мне не хотелось. Основным кандидатом для наведения порядка почти всегда становился Redmine, но чем дольше я им пользовался (как со стороны пользователя, так и со стороны администратора), тем больше хотелось перейти на что-то другое. Да, как багтрекер она работает замечательно, но как только хочешь получить что-то большее, например, хотя бы личные/общие календари — начинается возня. А если уж надо переехать на другой сервер… Даже и вспоминать не хочется — каждый раз какие-то «танцы».

В то же время я довольно плотно привязался к сервисам компании Google, таким как Docs, Calendar, Gmail… И если с последним более менее все понятно, то, например, аналог первого хотелось иметь локально: когда корпоративная почта не в Google Apps, который к тому же теперь всегда платный, пользоваться уже не так удобно, да и доступ к локальным ресурсам защищеннее и быстрее.

И тут после довольно активных поисков мне попадается Feng Office, который на хабре, к сожалению, почти обделен вниманием: упоминания встречаются лишь в нескольких вопросах и без особых подробностей. Подумалось — сделалось: под катом то что из этого получилось (включая пару десятков скриншотов, правда не очень тяжелых)
Читать дальше →

Кружок электроники: программа занятий

Reading time11 min
Views144K
На прошлой неделе был пост про организацию занятий по электронике в школе. В этом посте, как и обещал, постараюсь изложить свои соображения насчет программы и методики ведения таких занятий.

На данный момент мы успели провести уже три занятия и даже съездили на чемпионат по робо-сумо (пока, конечно, в качестве зрителей). Поэтому хочу поделиться своими первыми впечатлениям.

Читать дальше →

Примитивный игровой дизайн. Пошаговая разработка карточной игры

Reading time9 min
Views48K


Мотивированный прочтением тематической литературы и нескольких статей на хабре о гейм-дизайне в целом и о том, как наконец-то встать с четверенек и попробовать сделать первые шаги, я решил, что все, что от меня требуется — это сесть и начать работать.
Пусть это будет не ААА проект, подкрепленный миллионными вложениями, а нечто более тривиальное и простое.
Карточная игра. Затягивающая, интересная, не слишком сложная. А там уже посмотрим.

Под катом — вводная, начало процесса и много размышлений на тему.

Заглянуть

Про автоматизацию подбора аккордов

Reading time17 min
Views59K
Меня давно занимал вопрос: «а что, если попробовать прогнать цифровую запись песни через преобразование Фурье, посмотреть зависимость спектра от времени и попытаться вытащить из полученной информации аккорды песни?». Вот, наконец, нашел время попробовать…
Читать дальше →

Создание видео редактора — полезные рецепты avconv (ffmpeg)

Reading time8 min
Views27K


Недавно потребовалось написать небольшой видеоредактор с веб-интерфейсом.
До этого изредка доводилось пользоваться командами типа
ffmpeg -i file.avi file.mp3

в основном для конвертации из одного формата в другой. Все всегда было более менее гладко и сложно было представить, сколько на самом деле существует всяких нюансов для работы с видео и аудио.
Но начнем с начала. С некоторых пор моя ubuntu начала выдавать:
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

В целом, пока это использовалось по-мелочам, это было не особо важно, но закладывать уже устаревающую фичу в проект как-то «не оно». Пришлось гуглить что к чему и выяснилось, что проект ffmpeg некоторое время назад раскололся и часть разработчиков занялась созданием библиотеки libav, которая и включена в настоящее время в ubuntu по-умолчанию. Разумеется, совместимость передовых фич была принесена в жертву первой. Заодно и с переименованием проекта исполняемый файл ffmpeg был переименован в avconv, о чём и было вышеупомянутое предупреждение.

Под катом небольшая выжимка основных фич, которые пригодились.
Читать дальше →

Сравнение эффективности минимизаторов CSS- и JavaScript-кода (Сентябрь 2013)

Reading time8 min
Views23K
Логотипы модулей-минимизаторов из Bundle Transformer

За прошедшие, с момента публикации предыдущего обзора, 3 месяца уже успели обновиться почти все рассмотренные алгоритмы минимизации (кроме, Packer`а). Кроме того в Bundle Transformer появился новый модуль-минимизатор на базе Clean-css — BundleTransformer.CleanCss.

При подготовке данного сравнительного обзора были учтены следующие пожелания читателей:
  1. В предыдущем обзоре в качестве исходных файлов использовались: bootstrap.css и bootstrap.js из Twitter Bootstrap 2.3.2, из-за чего достоверность результатов была низкой. В новом же обзоре размер выборки был увеличен: для сравнения были отобраны 7 JS-файлов и 5 CSS-файлов из 10 популярных Open Source-проектов.
  2. Теперь в сравнении минимизаторов CSS-кода также участвуют встроенные средства минимизации препроцессоров LESS и Sass.
  3. Как известно, Bundle Transformer минимизирует каждый файл по отдельности и затем производит объединение минимизированного кода в один файл. Данный механизм сделан для того, чтобы предотвратить повторную минимизацию предварительно минимизированных файлов. Другие аналогичные библиотеки сначала объединяют код файлов, а затем минимизируют этот объединенный файл. Поэтому для полноты картины мы произведем 2 сравнения: сначала сравним эффективность минимизаторов на файлах, полученных путем объединения минимизированного кода, а затем на файлах, полученных путем минимизации объединенного кода файлов.

Как и в предыдущем обзоре, для минимизации файлов мы будем использовать модули Bundle Transformer, а для измерения размеров полученных файлов – расширение YSlow.
Читать дальше →

Процедурная генерация планов помещений

Reading time7 min
Views73K

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

По процедурной генерации планов помещений есть много, очень много статей. Вот ещё пяток ссылок на статьи. Только исходников ни к одной из них нет.

В этой статье я расскажу о том, как я реализовал на Unity3d один простой метод генерации, который приводит к хорошим результатам и легко модифицируется. С картинками и исходниками.
Читать дальше →

Как работает транзистор? Ну очень доступное видео-объяснение

Reading time1 min
Views173K


Думаю, практически все представители хабрасообщества понимают, как работает транзистор (да и не только он). Тем не менее, я предлагаю оценить объяснение работы транзистора (а также полупроводников и прочего), представленное пользователем YouTube 1vertiasium. Видео — англоязычное, но объяснение настолько красочное, что и так все понятно.

Мне кажется, если бы такое видео показывали бы в школе, даже самые далекие от учебы, нерадивые ученики, понимали бы что к чему.

Воксельная графика своими руками — первые шаги

Reading time5 min
Views25K

Знакомство с воксельной графикой


В процессе поиска алгоритмов расчета коллизий на сайте GameDev, я наткнулся на маленькую статью про движок idTech 6 и заинтересовался воксельной графикой, которую противопоставляют полигональной графике, на которой сейчас основана почти вся компьютерная графика.
Вообще, воксел расшифровывается как "объемный пиксель", однако сейчас под вокселом в основном понимается некий примитив, чаще всего куб или прямоугольный параллелепипед, который имеет определенный размер и цвет. В idTech 6 и в движке Кена Сильвермана Voxlap они хранятся в разреженном октодереве (SVO — sparse voxel octree), что позволяет экономить память и делает возможным простую реализацию "уровня детализации".


Снеговик из вокселей

Иными словами, вокселы — это такой конструктор LEGO, где из одинаковых деталек разного размера (а также, соеденяя маленькие детальки в большие) можно реализовать самые разнообразные модели, фигуры и т.д.
Одно из самых больших преимуществ вокселей относительно полигонов, то, что их можно разрушать — программа точно знает, что если воксел частично разрушен, то его можно поделить на более мелкие вокселы, которые будут из того же материала, что и их родитель.
Разрушения в тестовой игре на движке Voxlap


Читать дальше →

Алгоритм Эллера для генерации лабиринтов

Reading time5 min
Views155K
Это топик-перевод статьи Eller's Algorithm. В ней рассказывается о способе программной генерации лабиринтов. Дальнейшее повествование идет от лица автора.

 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  
|__   |__       __ __|__   |   __|  |  |  |  |
|__   |__   |__|   __ __|   __ __      |     |
|        |  |  |     |  |__      |__|  |  |  |
|__|__|  |  |   __|   __|__   |   __|__|  |__|
|   __|  |     |__ __ __|  |  |__|  |     |  |
|  |  |  |  |__|  |__   |  |   __|__ __|  |  |
|  |__    __    __ __    __|  |   __   |  |  |
|  |  |  |  |      __|  |   __|  |  |__|  |  |
|  |     |     |__   |  |  |  |  |  |__    __|
|  |  |__|__|__ __|  |     |  |  |      __|  |
|__ __|  |  |  |__   |__|   __|     |   __ __|
|   __|  |   __|__      |__   |__|  |__    __|
|  |  |     |  |     |__|  |   __    __|   __|
|   __|  |__ __|__|      __|  |  |     |  |  |
|   __ __   |      __|__|  |__   |  |  |__|  |
|__ __ __|__ __|__ __ __ __ __|__|__|__ __ __|


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

Читать дальше →

Светодиодная лента в качестве освещения комнаты

Reading time15 min
Views1.3M
Изначально для основного освещения одной из комнат, где шёл капитальный ремонт, планировалась обычная люстра. Но недавно мне на глаза попалась суперяркая светодиодная лента Ultra 5000 со светодиодами smd 5630 торговой марки Arlight. Решение было принято быстро, окончательно и бесповоротно — хочу такую ленту в качестве основного света в комнате.



О реализации светодиодного периметра освещения далее

Книги для тимлидов и руководителей проектов. Часть 2

Reading time3 min
Views81K
Предыдущая статья очень хорошо была воспринята читателями, поэтому, как и обещал, сегодня подготовил статью-бонус.

Итак, я просил ответить на вопрос какие книги из статьи вы читали?

Результаты опроса:
Название книги
Количество голосов
Процент
Том ДеМарко. Deadline. Роман
об управлении проектами
247
54%
Фредерик Брукс. Мифический человеко-месяц, или Как создаются
программные системы
174
38%
Джоэл Спольски. Джоэл о программировании
165
36%
Том Демарко и Тимоти Листер. Человеческий фактор. Успешные
проекты и команды
148
32%
Джейсон Фрайд, Дэвид Хайнемайер Хенссон. Rework.
Бизнес без предрассудков
108
24%
Джеффри Янг и Уильям Саймон. iКона. Стив
Джобс
94
21%
Том ДеМарко, Тимоти Листер. Вальсируя с Медведями: управление
рисками в проектах по разработке программного обеспечения
70
15%
Том Демарко, Тимоти Листер. Балдеющие от адреналина и зомбированные
шаблонами. Паттерны поведения проектных команд
51
11%
Кармин Галло. iПрезентация. Уроки
убеждения от лидера Apple Стива Джобса
48
11%
Патрик Ленсиони. Смерть от совещаний
21
5%
Патрик Ленсиони. Пять пороков команды. Притчи о
лидерстве
19
4%
Патрик Ленсиони. Пять искушений руководителя: притчи о лидерстве
16
4%
Патрик Ленсиони. Три признака унылой работы. История со смыслом
для менеджеров (и их подчиненных)
11
2%

А теперь еще один бонус — список книг по заданной тематике, которые прислали нам читатели:
Читать дальше →

Information

Rating
Does not participate
Location
Новосибирская обл., Россия
Registered
Activity