Pull to refresh
7
0
Alex F @gcc

Инженер-программист, геймдев энтузиаст

Send message

Создание прокси-dll для запуска DirectDraw игр в окне

Reading time5 min
Views20K
В продолжение темы расширения функциональности готовых программ хотелось бы рассказать об ещё одном способе изменения логики работы уже скомпилированной программы, который не требует делать изменений в самом исполняемом файле. Это может пригодиться при распространении вашей модификации в США, где прямое вмешательство в исполняемый файл строго осуждается. Речь пойдёт о создании крошечной прокси-dll (всего ≈4 килобайта) для подмены используемой приложением библиотеки на примере ddraw.dll.
Читать дальше →

Я не знаю Си

Reading time4 min
Views51K
Цель этой статьи — заставить всех, особенно программистов на Си, сказать «я не знаю Си».
Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.
Читать дальше →

Как вставить печать в документ, чтобы боги не убили котёнка

Reading time6 min
Views137K
Была у пользователей Эльбы мечта — вставлять изображения печатей и подписей в счета, акты, накладные и прочие серьезные документы. Отчего бы не порадовать мечтателей, подумали мы. Оглядевшись по сторонам, мы поняли, что обычно в таких случаях всю грязную работу сваливают на пользователя (ну, вы знаете: «картинка должна быть 300 на 400 пикселей, с высоким контрастом, хорошим разрешением и идеально белым фоном»). Но судя по опыту нашей команды, которая бывает в колл-центре, даже простая загрузка изображения с фотоаппарата повергает пользователей в глубокую депрессию, и вызволять их приходится богопротивными способами, а-ля «вставьте картинку в Ворд». Конечно, не может быть и речи о том, чтобы заставлять пользователей чистить печати в фотошопах — пусть фотографируют как умеют, а Эльба выполнит за них все остальное!



Если вам интересно узнать, что нужно сделать с фотографией, снятой телефоном или мыльницей, чтобы получить чёткую печать и подпись с прозрачным фоном — читайте дальше.
Читать дальше →

Как сделать промо-ролик игры малыми силами

Reading time4 min
Views14K


В статье «Игра за 2 дня» я на примере проекта Папа Пингвин рассказал о том, как сделать игру для iOS, используя Unity, за двое суток.

В продолжение этой темы — статья о том, каким образом можно малыми силами сделать небольшой мультфильм в поддержку игры. Текст статьи подготовил Алексей Лунин (type_2), наш художественный директор. Данная статья может пригодится маленьким студиям-разработчикам и просто энтузиастам, делающим небольшие игрушки для мобильных (и не только) платформ.

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

10 фактов про леммингов, о которых вы даже не подозревали

Reading time3 min
Views18K
Жизнь — дерьмовая штука. По крайней мере, так считают многие «взрослые» люди, с которыми мне довелось общаться. Они постоянно жалуются на свою работу, неудовлетворительные отношения и раздолбаев-детей, которые никак не хотят становиться такими, какими хотят их видеть родители. Жизнь для этих людей — это бесконечная карусель разочарований, неприятностей и несбывшихся надежд. Они встают рано утром с больной головой, заливают в рот пару литров кофе и едут на работу в состоянии, которому позавидовали бы самые отъявленные зомби. Они ненавидят свою работу и считают, что их занятия бессмысленны и никому не нужны. Но, не смотря на это, они с упорством леммингов продолжают делать эту работу, день за днём, год за годом. Они продираются сквозь собственную жизнь, надеясь, что всласть поживут потом, когда отработают 10-20-30 лет. Так вот, это всё херня. Когда вам будет пятьдесят, вы настолько устанете от такой жизни, что единственным вашим желанием будет лечь и сдохнуть. Да и здоровье будет уже не то, потому что вы слили его, занимаясь всякой ерундой, до которой вам даже не было дела. Так что, когда вы выйдете на пенсию, вы не поедете в Африку охотиться на львов, потому что солнце плохо сказывается на вашем давлении. Вы также не поедете на Северный полюс, потому что у вас артрит и холод — не лучшее для него лекарство. Южный полюс отпадает ещё и потому, что вы недолюбливаете пингвинов, что неудивительно, учитывая ваш 30-летний стаж работы сисадмином. Так что же вам остаётся? Поездки на дачу и вечера в уютной компании телевизора, вот что. Прожив 30 лет в постоянной борьбе с самим собой, у вас просто не останется сил на то, чтобы оторвать задницу от дивана.
Читать дальше →

Пути к файлам

Reading time4 min
Views69K
Казалось бы — что может быть проще, чем работа с файлами в C++. Но отдельные личности поражают своей находчивостью в поиске наихудшего подхода.
Не стоит делать так:

std::string filepath("C:\\тест");
std::ofstream file(filepath.c_str());


Почему?

Статический анализ Си++ кода и новый стандарт языка C++0x

Reading time18 min
Views6K
Аннотация
Введение
1. auto
2. decltype
3. Ссылка на временный объект (R-value reference)
4. Правые угловые скобки
5. Лямбда-функции (Lambdas)
6. Suffix return type syntax
7. static_assert
8. nullptr
9. Новые стандартные классы
10. Новые направления в развитии статических анализаторов кода
Заключение
Библиографический список

Аннотация


В статье рассмотрены новые возможности языка Си++, описанные в стандарте C++0x и поддержанные в Visual Studio 2010. На примере PVS-Studio рассмотрено, как изменения языка отразятся на инструментах статического анализа кода.
Читать дальше →

Ogre 3D. Серия обучающих статей. Выпуск 1

Reading time3 min
Views22K
В топике прозвучала просьба написать какие-нибудь статьи про Ogre 3D.
В первой статье я расскажу о установке Ogre и создании простейшего приложения использующего Ogre.
Читать дальше →

Эффект бабочки

Reading time2 min
Views7.4K
Как я уже однажды писал, кто хочет — тот ищет возможности, кто не хочет — ищет причины. Раньше я считал, что это утверждение действует в 99.9% случаях, но в последнее время мое мнение слегка поменялось.

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

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

Эффективность C++ на современных ПК

Reading time2 min
Views3.8K
В виду ограничения на размер, публикую заметку в виде статьи, а не как ссылку с аннотацией.

Со времён, когда проектировался С++, относительная (к скорости оперативной памяти) скорость процессора выросла в 400 раз. Плюс к тому, у процессора появились большие кэши и предсказание ветвлений в коде. Всё это вместе самым серьёзным образом сказывается на эффективности С++ на современных платформах. Ниже даю аннотацию и пару ссылок, где предлагается использовать эти факты для повышения эффективности кода.
Читать дальше →

Javascript Pseudo-3d Game. Stage 2

Reading time3 min
Views5.7K

(Большая картинка)

Здравствуйте, хабрасообщество. Постараюсь быть максимально кратким. Эта статья — продолжение ранее высказанной идеи о псевдо-3d игре на JavaScript. У меня были чуть другие планы, но я учёл пожелания и рекомендации из предыдущего топика и реализовал Stage 2 лучше, чем мог представить этот этап до первой статьи.

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

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

Паттерн проектирования «Адаптер» / «Adapter»

Reading time6 min
Views103K
Почитать описание других паттернов.

Пожалуй, начнем.
Для начала, поясню несколько организационных вопросов.
  • Описание того или иного паттерна, является моей сугубо личной интерпретацией теоретического и практического материала, собранного из книг и интернет-статей;
  • При построении UML-диаграмм, я буду использовать свободный редактор от компании astah, ввиду его простоты и независимости от конкретного языка или среды. При этом, диаграммы не будут отличатся изобилием картинок и цветов, но будут ясно отображать суть паттерна;
  • При реализации практических примеров, язык программирования будет выбираться совершенно случайно. Однако, я буду стараться подбирать те языковые средства, на которых данный паттерн реализуется не тривиально;
  • Каждый мой пост, будет содержать как минимум 5 секций — Проблема, Описание патерна, Практическая задача, Диаграмма классов и Реализация;
  • Если Вы, с чем-то не согласны или у Вас есть дополнения к материалу, изложенному мной — я буду рад их почитать в комментариях. Однако, помните — я тоже изучаю паттерны вместе с Вами :)

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

Этот загадочный while…

Reading time3 min
Views6.8K
«Все потребности в нем заложены, какие только бывают на свете. И все эти потребности он может удовлетворить. С помощью нашей науки, разумеется.»
А. и Б. Стругацкие


Я думаю, многим из Perl-программистов знакома следующая конструкция построчного чтения содержимого файла:
while (<FILE>) {
    # do something
}
Этот код стал настолько привычным, что многие даже не задумываются, а как же он, собственно, работает. В данной статейке я опишу одну особенность, о которой весьма полезно помнить.
Читать дальше →

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity