Добрый день, уважаемые хабровчане. Представляю вашему вниманию свой небольшой проект – сетевой 2D-шутер на C#. Несмотря на то, что визуальная составляющая весьма простая – в наш век уже никого не заинтересуешь 2D-играми, некоторые архитектурные решения могут заинтересовать людей, собирающихся написать свою игру. В статье я расскажу о вариантах реализации ключевых моментов игры.
Владимир @Lertmind
Пользователь
Автоматический контроль архитектуры в Visual Studio
5 min
9.6KTutorial

Как вы не знаю, но я себя на этой картинке узнал. Ведь, согласитесь, когда проектируется архитектура приложения, все красиво, логично и соответствует лучшим мировым практикам. Но в процессе работы, сталкиваясь с ограничениями предъявляемыми архитектурой, мы зачастую думаем: «Вот здесь немножко нарушу, это ведь сэкономит мне час времени разработки. Ну а потом, как будет время, поправлю». Но, почему-то, это время так никогда и не наступает. На мой взгляд, единственным способом заставить себя, как программиста, следовать разработанной архитектуре, это научить среду разработки все отклонения и костыли показывать как ошибки компиляции. В этом случае, если код плох, он сразу будет исправлен, ну а если архитектура устарела, то будет исправлена она. Т.е. в хранилище кода всегда будет код соответствующей запланированной архитектуре.
Пара слов, о том, что будет подкатом:
1. Небольшая преамбула.
2. Восстановление архитектуры по имеющемуся проекту.
3. Настройка Visual Studio и TFS для автоматического контроля архитектуры.
Под катом много картинок и желание все описанное попробовать.
+26
Пишем эмулятор приставки ч2, или немного о CHIP16
12 min
6.3KВ предыдущей своей небольшой заметке я описывал принцип построения эмулятора старой игровой платформы CHIP-8 из далеких 70-х. Здесь же речь пойдет о своего рода наследнице – CHIP16. Итак, что же такое CHIP16?
CHIP16 – “вымышленная” игровая приставка, которой никогда не существовало в “железе”. Всю спецификацию на нее разрабатывали (-ют) энтузиасты с одного англоязычного форума. Смысл в том, чтобы максимально упростить написание эмулятора, иметь хорошую документацию и поддержку комьюнити. Тем самым позволяя даже новичкам в программировании создать полностью рабочий эмулятор с нуля на фактически любом языке программирования. Сразу оговорюсь, что здесь я не буду приводить примеры кода эмулятора, цель – просто рассказать об этой платформе. И да, конечно все Just for fun!

+54
Минимакс на примере игры в зайца и волков
11 min
91K
+73
Рандомизированные деревья поиска
8 min
58KTutorial

Не знаю, как вы, уважаемый читатель, а я всегда поражался контрасту между изяществом базовой идеи, заложенной в концепцию двоичных деревьев поиска, и сложностью реализации сбалансированных двоичных деревьев поиска (красно-черные деревья, АВЛ-деревья, декартовы деревья). Недавно, перелистывая в очередной раз Седжвика [1], нашел описание рандомизированных деревьев поиска (нашлась и оригинальная работа [2]) — настолько простое, что занимает оно всего треть страницы (вставка узлов, еще страница — удаление узлов). Кроме того, при ближайшем рассмотрении обнаружился дополнительный бонус в виде очень красивой реализации операции удаления узлов из дерева поиска. Далее вы найдете описание (с цветными картинками) рандомизированных деревьев поиска, реализация на С++, а также результаты небольшого авторского исследования сбалансированности описываемых деревьев.
+82
Бесплатного супа больше не будет
23 min
17KTranslation
Фундаментальный поворот к параллелизму в программировании
Автор: Герб Саттер
Перевод: Александр Качанов
The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
(By Herb Sutter)
Ссылка на оригинал статьи: www.gotw.ca/publications/concurrency-ddj.htm
Примечание переводчика: В данной статье дается обзор современных тенденций развития процессоров, а также, что именно эти тенденции значат для нас — программистов. Автор считает, что тенденции эти имеют фундаментальное значение, и что каждому современному программисту придется кое в чем переучиваться, чтобы не отстать от жизни.
Данная статья достаточно старая. Ей уже 7 лет, если считать с момента ее первой публикации в начале 2005 года. Помните об этом, когда будете читать перевод, так как многие вещи, которые для вас уже стали привычными, для автора статьи в 2005 году были в новинку и только-только появлялись.
Автор: Герб Саттер
Перевод: Александр Качанов
The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
(By Herb Sutter)
Ссылка на оригинал статьи: www.gotw.ca/publications/concurrency-ddj.htm
Примечание переводчика: В данной статье дается обзор современных тенденций развития процессоров, а также, что именно эти тенденции значат для нас — программистов. Автор считает, что тенденции эти имеют фундаментальное значение, и что каждому современному программисту придется кое в чем переучиваться, чтобы не отстать от жизни.
Данная статья достаточно старая. Ей уже 7 лет, если считать с момента ее первой публикации в начале 2005 года. Помните об этом, когда будете читать перевод, так как многие вещи, которые для вас уже стали привычными, для автора статьи в 2005 году были в новинку и только-только появлялись.
+104
Наш процесс разработки: 50 месяцев эволюции
9 min
44KНашей компании уже 6 лет. Она была основана на принципах agile и росла на них. Мы использовали Extreme Programming с самого первого дня, добавили немного Scrum позже и в конце концов переключились на Kanban. Хочется поделиться бесценным опытом и рассказать об изменениях нашего процесса разработки за последние 4 года.


+98
Опенсорс-фотореализм на GPU: Cycles Render
8 min
62KС развитием технологии GPGPU, на рынке появилось немало рендеров на GPU, среди них iRay, V-ray RT, Octane, Arion. Но, сообщество opensource не дремлет, и появились по-крайней мере два известных мне свободных рендера на GPU: SmallLuxGPU и Cycles Render. Хочу поделиться впечатлениями о последнем.
Cycles Render — unbiased рендер, с возможностью рендеринга на GPU (CUDA и OpenCL для ATI). Лежит в коробке с Blender, который работает на Windows, Linux, OSX.

Cycles Render, авто с процедурной текстурой, FullHD готовилось 2 мин на GTX580.
Блендер меня мало интересовал, даже не смотря на некоторые известные мне достоинства: открытость, легкость инсталлятора, скорость работы. Пересесть консерватору с 3д макс на Блендер крайне сложно: другое управление, «все не так!». Но, будучи повернутым на теме анбиас рендеров, тем более на GPU, решил таки опробовать Cycles, за одно и Блендер подучить (на момент опубликования статьи версия 2.63).
Cycles Render — unbiased рендер, с возможностью рендеринга на GPU (CUDA и OpenCL для ATI). Лежит в коробке с Blender, который работает на Windows, Linux, OSX.

Cycles Render, авто с процедурной текстурой, FullHD готовилось 2 мин на GTX580.
Блендер меня мало интересовал, даже не смотря на некоторые известные мне достоинства: открытость, легкость инсталлятора, скорость работы. Пересесть консерватору с 3д макс на Блендер крайне сложно: другое управление, «все не так!». Но, будучи повернутым на теме анбиас рендеров, тем более на GPU, решил таки опробовать Cycles, за одно и Блендер подучить (на момент опубликования статьи версия 2.63).
+107
Монетизация и продвижение игры от независимых разработчиков
6 min
31KЯ заканчиваю раскрывать внутреннюю кухню создания игры с точки зрения независимых разработчиков. В этой статье речь пойдёт о монетизации и продвижении игры. А также раскрою наши цифры по итогам первых двух недель после запуска и затраты на разработку.
Предыдущие статьи:
Предыдущие статьи:
- Путь независимых разработчиков на примере игры, которую они не пиарят в статье со сложным и отвлечённым названием про путь независимых…
- Техническая препарация одной игры, созданной независимыми разработчиками.
+22
История одного автора
4 min
2.2KНедавно вышла в свет первая серьёзная книжка (GPU Pro-3), где я был соавтором. Тем временем в печати находится ещё одна (OpenGL Insights), в которой будут уже две мои статьи по компьютерной графике. Настало время обобщить опыт и поделиться им.

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


Началось всё, как и полагается, с Хабра. Была у меня в движке реализована одна сложная и интересная затея по переносу и обсчёту шерсти из Blender, а также отображению сей динамики в окошке реального времени. Думал я, куда податься с идеей, чтобы славы добыть да мир завоевать, и набрёл на Хабр.
+63
Постсмысловая невротическая цивилизация
6 min
18K
+135
Как Булгаков помогает изучать расстановку запятых – сайт для повышения грамотности
4 min
23KБольшинство из нас проходили русский язык. Но, так как это происходило в переходном возрасте, мы проходили его мимо. Кто-то в это время работал, кто-то занимал первые места на спортивных соревнованиях, кто-то играл на приставках, а большинство вкладывали всё своё доступное время в общение с компьютером.

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

Именно поэтому мы не всегда грамотно пишем, показывая себя не с лучшей стороны. Несмотря на то, что я умею программировать, мне с трудом удаётся понять алгоритм расстановки запятых (такое ощущение, что эти правила специально запутали).
Недавно я решил изучить все правила и набить руку на практике. Для этого я сделал сайт, на котором можно поупражняться определять места расстановки запятых.
Суть сайта проста. Вам представляется текст без единой запятой. Вы можете расставлять запятые по своему желанию, а сайт будет подсказывать правильные ответы. Правила русского языка в части «запятой» прилагаются.
+85
Unity3d. Уроки от Unity 3D Student (B04-B08)
7 min
137KДобрый день.
Предыдущие уроки вы можете найти в соответствующем топике.
Теперь в каждом посте в скобках (в конце) будут указываться номера уроков. Буква в начале номера обозначает раздел (B-Beginner, I — Intermediate).
PS: Если вы не проходили предыдущие уроки, очень рекомендую их пройти, т.к. последующие изредка на них ссылаются.
Предыдущие уроки вы можете найти в соответствующем топике.
Теперь в каждом посте в скобках (в конце) будут указываться номера уроков. Буква в начале номера обозначает раздел (B-Beginner, I — Intermediate).
PS: Если вы не проходили предыдущие уроки, очень рекомендую их пройти, т.к. последующие изредка на них ссылаются.
+20
Расставим точки над структурами C/C++
4 min
282KНедавно познакомился со структурами C/C++ — struct. Господи, да «что же с ними знакомиться» скажете вы? Тем самым вы допустите сразу 2 ошибки: во-первых я не Господи, а во вторых я тоже думал что структуры — они и в Африке структуры. А вот как оказалось и — нет. Я расскажу о нескольких жизненно-важных подробностях, которые кого-нибудь из читателей избавят от часовой отладки…


+55
Настоящие нечестные конкурентные преимущества
11 min
36KTranslation

Что, если кто-нибудь скопирует вашу гениальную бизнес-идею?
Около двадцати человек на Answers OnStartups задали этот вопрос в той или иной форме:
Когда я встречаюсь с инвестором-ангелом, он может спросить: «Что, если большая компания скопирует твою идею и разработает такой же сайт, как у тебя после того, как твой сайт увидит мир?»
Как я могу ответить на этот вопрос?
Нет, вопрос звучит иначе: что вы сейчас делаете, зная, что большая компания будет копировать вашу идею?
+79
Сжатие информации без потерь. Часть вторая
10 min
26KПервая часть.
Во второй части будут рассмотрены арифметическое кодирование и преобразование Барроуза-Уилера (последнее часто незаслуженно забывают во многих статьях). Я не буду рассматривать семейство алгоритмов LZ, так как про них на хабре уже были неплохие статьи.
Итак, начнем с арифметического кодирования — на мой взгляд, одного из самых изящных (с точки зрения идеи) методов сжатия.
Во второй части будут рассмотрены арифметическое кодирование и преобразование Барроуза-Уилера (последнее часто незаслуженно забывают во многих статьях). Я не буду рассматривать семейство алгоритмов LZ, так как про них на хабре уже были неплохие статьи.
Итак, начнем с арифметического кодирования — на мой взгляд, одного из самых изящных (с точки зрения идеи) методов сжатия.
+26
Болee 40 онлайн-курсов от Coursera и Udacity
4 min
35KСегодня проект Coursera, о котором на хабре уже неоднократно писали, наконец перешел из статуса беты в полностью рабочий. И переход этот можно назвать, мягко говоря, успешным — к уже заявленным и частично идущим 16 курсам от Stanford и Berkley и 1 курсу от Michigan добавились 12 курсов от Penn (Философия, Литература, Экономика, Медицина), 6 от Michigan (Литература, Экономика, Право) и 8 от Princeton (История, Математика, Computer Science).
Похоже, то, что обещали в прошлом году, наконец происходит на наших глазах — университетское образование всех областей становится доступно всем и каждому. Теперь любой может в свободное время изучить под руководством виднейших профессоров области узнать то, что давно собирался, но не хватало самодисциплины, знаний или просто самих материалов — принципы работы вакцин, теорию игр или особенности социальных сетей. Будущее всеобщего образования наступает, и оно прекрасно.
Ну и после такого оптимистичного вступления — собственно сами курсы. Для большинства известны продолжительность и дата начала, так что можно уже заранее спланировать время. Поехали:
Похоже, то, что обещали в прошлом году, наконец происходит на наших глазах — университетское образование всех областей становится доступно всем и каждому. Теперь любой может в свободное время изучить под руководством виднейших профессоров области узнать то, что давно собирался, но не хватало самодисциплины, знаний или просто самих материалов — принципы работы вакцин, теорию игр или особенности социальных сетей. Будущее всеобщего образования наступает, и оно прекрасно.
Ну и после такого оптимистичного вступления — собственно сами курсы. Для большинства известны продолжительность и дата начала, так что можно уже заранее спланировать время. Поехали:
+72
Почему весёлым быть выгоднее, чем умным: исследования EQ в IT-среде
4 min
51KИсследователь Дэвид Карузо и пара его коллег – это как раз те парни, из-за которых технические навыки и интеллект при приёме на работу в крупные IT-компании часто оцениваются заметно ниже, чем эмоциональный интеллект. То есть тот факты, что вы умный, означает гораздо меньше, чем то, что вы узнаёте вот этого парня с картинки:

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

Он пристально наблюдает за постом
Эмоции влияют на наше сознание, нашу активность и восприятие окружающих вещей. Это очевидный факт, который, тем не менее, был детально исследован Дэвидом Карузо. Он утверждает, например, что если вы сейчас в хорошем настроении и энергичны, то найдёте много позитивных и вдохновляющих мыслей и идей в топике, а если устали или с настроением не очень – захотите покритиковать и, статистически, не сможете придумать ничего волнующего нового.
+46
Unbiased rendering (рендеринг без допущений)
7 min
54KВ компьютерной графике, рендеринг без допущений относится к технике рендеринга, которая не вносит в расчет систематических ошибок, предположений или погрешностей. Изображение получается таким, каким должно быть в природе, а рендер не имеет настроек качества поверхностей либо источников света.

Изображение отрендерено с помощью Maxwell Render.

Изображение отрендерено с помощью Maxwell Render.
+157
Простейшие алгоритмы сжатия: RLE и LZ77
9 min
148K
Поэтому целью данной статьи является дать представление о простейших алгоритмах сжатия тем, кому знания и опыт пока ещё не позволяют сходу понимать более профессиональную литературу, или же чей профиль и вовсе далёк от подобной тематики. Т.е. я «на пальцах» расскажу об одних из простейших алгоритмах и приведу примеры их реализации без километровых листингов кода.
+88
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity