Pull to refresh
35
0
Роман Шувалов @romanshuvalov

Разработчик

Send message

Простейшие клеточные автоматы и их практическое применение

Reading time6 min
Views105K
Этот мир просто охренеть какой сложный, каждый день поражаюсь.

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

И знаете, что удивительно? Этот подход замечательно работает. Ну, почти всегда. По крайней мере, ничего лучше мы до сих пор не придумали.

Но вообще-то я не об этом. Я хочу рассказать об одной чрезвычайно интересной как с эстетической, так и с математической точки зрения категории этих самых моделей.

image

Да, я о клеточных автоматах, а именно — об их подмножестве, простейших клеточных автоматах (Elementary cellular automaton). В этой статье я поведаю, что это такое, какие они бывают, какими свойствами обладают, а также отвечу на главный, на мой взгляд, и совершенно правильный вопрос, который часто несправедливо игнорируется в подобных статьях. Звучит он так: А это всё вообще зачем?

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

Я искренне надеюсь, что после прочтения статьи вы сами захотите поиграться с ними, и на этот случай у меня припасен собранный из JS и палок генератор.
Хватит воды, давай к сути
Total votes 89: ↑88 and ↓1+87
Comments15

Ваше проектирование – отстой

Reading time5 min
Views33K
… но это нормально. Любое проектирование отстой. И всегда будет отстоем.

Если вы мне не верите, давайте объясню…

Ни один проект не переживает встречи с реализацией


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

Данные, которые вы ожидали как обязательные в ответе внешнего сервиса, могут отсутствовать (или быть невалидными). Ожидаемая уникальность может оказаться совсем не уникальной на практике (даже в sha1 когда-нибудь случаются коллизии). Процессы, которые предполагались надежными, будут падать гораздо чаще, чем вы ожидали.

Это нормально.

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

Недостающие данные могут быть сделаны опциональными или заменены умолчальными.

Некорректные данные можно рассматривать как отсутствующие, либо записывать их «как есть» и добавить дополнительную провалидированную версию, которая присутствует только если оригинал валидный.

Ограничение уникальности можно
Читать дальше →
Total votes 50: ↑35 and ↓15+20
Comments29

Создание игровых уровней: советы и хитрости (часть 2)

Reading time11 min
Views87K
Это вторая часть моей статьи с левел-дизайнерскими Tips and Tricks, которые разработчик может использовать, чтобы повысить общее качество своей игры. Это ни в коем случае не пошаговое руководство, а только сборник идей и полезных советов, основанных на моём личном опыте. Первая часть статьи была больше ориентирована на визуальную составляющую дизайна уровней, в этот же раз мы поговорим о ещё более фундаментальных вещах, начиная с прототипирования и заканчивая плэйтестингом с аналитикой.

Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments22

Создание игровых уровней: советы и хитрости (часть 1)

Reading time8 min
Views108K
На Хабрахабре достаточно много инди-разработчиков, некоторым из них приходится в той или иной степени заниматься левел-дизайном. В течение последних нескольких месяцев я безвылазно работал над примерно полусотней различных игровых уровней, и хотел бы поделиться своим опытом. Эта статья содержит эффективные Tips and Tricks, которые вы можете использовать, чтобы повысить общее качество вашей игры. Это ни в коем случае не пошаговое руководство, а только сборник идей и полезных советов. Первая часть статьи направлена больше на работу с визуальной составляющей игры, вторая же часть, доступная по ссылке, содержит более фундаментальные вещи, такие как прототипирование, определение размера героя и окружения, плэйтестинг и аналитику.

Читать дальше →
Total votes 59: ↑59 and ↓0+59
Comments16

Как происходит рендеринг кадра в GTA V

Reading time16 min
Views119K
Серия игр Grand Theft Auto прошла долгий путь с момента своего первого релиза в 1997 году. Примерно 2 года назад Rockstar выпустила GTA V. Просто невероятный успех: за 24 часа игру купило 11 миллионов пользователей, побито 7 мировых рекордов подряд. Опробовав новинку на PS3, я был весьма впечатлен как общей картинкой, так и, собственно, техническими характеристиками игры.

Ничто так не портит впечатление от процесса, как экран загрузки, но в GTA V вы можете играть часами, преодолевая бескрайние сотни километров без перебоев. Учитывая передачу солидного потока информации и свойства PS3 (256 Mb оперативной памяти и видеокарта на 256 Mb), я и вовсе удивился, как меня не выбросило из игры на 20-ой минуте. Вот где чудеса техники.

В этой статье я расскажу о проведенном анализе кадра в версии для ПК в среде DirectX 11, которая съедает пару гигов как оперативки, так и графического процессора. Несмотря на то, что мой обзор идет со ссылкой на ПК, я уверен, что большинство пунктов применимо к PS4 и в определенной степени к PS3.

Анализ кадра


Итак, рассмотрим следующий кадр: Майкл на фоне любимого Rapid GT, на заднем плане прекрасный Лос-Сантос.

image

Осторожно! Трафик!
Читать дальше →
Total votes 164: ↑158 and ↓6+152
Comments65

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

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

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

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

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

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

Налоговый суслик. Особенности упрощенной системы налогообложения при работе по договорам с Apple, Google и другими

Reading time46 min
Views54K
В данной статье я постараюсь провести краткий юридический ликбез для разработчиков по некоторым положениям Гражданского кодекса, имеющим значение в контексте деятельности индивидуальных предпринимателей и организаций, применяющих упрощенную систему налогообложения, в работе по договорам с Apple, Google и другими компаниями, а также обратить внимание на некоторые не всегда очевидные налоговые нюансы, которые, как показал личный опыт изучения данной темы, довольно часто ускользают от внимания разработчиков или вызывают множество вопрос и споров.

Прочтите внимательно эту статью, если вы применяете упрощенную систему налогообложения с объектом налогообложения «доход» по ставке 6 процентов и продаете игры или приложения в Google Play, Apple App Store, а также прочий цифровой контент — например, 3D-модели — в Steam, Unity Asset Store или на других площадках, в условиях договоров с которыми фигурируют комиссии, агентские вознаграждения и прочие формы разделения выручки между сторонами.

Из материала вы узнаете:

  • Почему разработчику желательно обладать хотя бы базовой юридической грамотностью
  • Чем с точки зрения Гражданского кодекса являются игры и приложения и какие права на них есть у разработчиков помимо авторского права
  • Что такое агентский договор и почему все это важно при работе по договору с Apple или Google
  • Кто такой налоговый суслик и почему он может превратиться в пушного зверя
  • Какой «подвох» существует для применяющих «упрощенку» в части определения налоговой базы
  • Почему налог на добавленную стоимость (НДС) продолжает преследовать нас, даже когда мы не являемся его плательщиками
  • Как, с точки зрения Федеральной налоговой службы, облагаются НДС внутриигровые покупки (InApp Purchases)
Покажите мне суслика!
Total votes 40: ↑36 and ↓4+32
Comments84

50+ лучших дополнений к Bootstrap

Reading time5 min
Views202K


Благодаря популярности CSS фреймворка Bootstrap, для него разработали массу различных дополнений. Даже сейчас вы можете использовать Bootstrap практически для любой задачи при разработке и оформлении вебсайта.

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →
Total votes 123: ↑111 and ↓12+99
Comments25

Анимация персонажей в Blender 3D — это просто

Reading time3 min
Views181K


Мир open source не стоит на месте и постоянно развивается. Про Blender 3D написано уже много статей, но помимо Blender, существует еще много полезных и бесплатных программ. Одна из них, это MakeHuman. На Хабре упоминания о ней имеются, но какой либо информации по ней нет. Предлагаю вам заглянуть под кат и посмотреть, что анимация персонажей в связке MakeHuman+Blender3D, это действительно просто. Осторожно, много картинок.
Посмотрим...
Total votes 65: ↑64 and ↓1+63
Comments11

Ошибки новичка в сфере разработки игр

Reading time15 min
Views98K

Оригинал изображения

Полгода назад я рассказывал про свой опыт работы фрилансером на oDesk. После этого я решил оставить разработку Android приложений на заказ и заняться своей давней мечтой — созданием игр. Мы с друзьями объединились, и работа закипела…

Для начала хочу рассказать о текущем состоянии проекта:
Время от разработки до публикации: 2 месяца
Время нахождения в магазинах приложений: 3 месяца
Загрузки iOS: > 15000 (93 % русскоязычные пользователи)
Загрузки Android: > 35000 (63 % русскоязычные пользователи)

Данный проект не является финансово успешным на данный момент, поэтому я хочу рассказать о наших ошибках.
Статья в первую очередь предназначена для новичков в сфере разработки игр.
Читать дальше →
Total votes 55: ↑50 and ↓5+45
Comments22

Конкурс игр KolibriOS — играем и выбираем победителей

Reading time7 min
Views23K
С середины ноября по 31 декабря 2014 года мы в проекте KolibriOS проводили конкурс разработчиков игр. За полтора месяца нужно было написать новую игру для Колибри (или портировать свою собственную существующую). «Исходники» игры (включая все «ресурсы» — картинки, спрайты, звуки, музыку, если таковые имеются) должны были быть выложены на SVN проекта под одной из open-source лицензий. Игра должна была компилироваться из исходников с помощью системы авто-сборки Tup на сервере КолибриОС.

Всего на наш призыв откликнулись 7 человек, которые создали для конкурса в сумме 10 игр (один участник написал целых 3 игры, ещё один — 2 игры; остальные участники написали по одной игре каждый). Сегодня мы выносим эти игры на суд читателей Хабра, и просим вас проголосовать за наиболее понравившиеся. Чтобы поиграть в конкурсные игры, нужно скачать с сайта KolibriOS последнюю ночную сборку дистрибутива («Универсальный образ Flash/HDD» либо «Загрузочный компакт-диск LiveCD»). Игры находятся в папке /KolibriOS/games. Качать нужно русскую сборку, так как некоторые игры (имеющие исключительно русскоязычный интерфейс) присутствуют только в ней.

TL;DR: Если нет времени, возможности или желания читать все описания игр и играть в них самим, но всё равно очень хочется проголосовать, то можно посмотреть ролик с обзором игр от независимого блоггера Кирилла Лейфера, и оценить игры на основании ролика:

Под катом - список конкурсных игр
Total votes 33: ↑33 and ↓0+33
Comments38

10 языков, на которые стоит перевести вашу мобильную игру

Reading time3 min
Views36K
Каждый третий заказчик, приходящий к нам в Alconost за локализацией, задает один и тот же вопрос: “а на какие еще языки посоветуете сделать перевод моей игры/приложения/сайта?”.

Чтобы ответить на этот вопрос хотя бы для разработчиков мобильных игр, мы изучили объемы продаж мобильных игр в Google Play и App Store в разных странах. Результат нас так удивил, что вместо обычной статьи мы захотели сделать видеоролик:



Чуть больше информации про топ-10 языков для локализации мобильных игр — под катом.
Читать дальше →
Total votes 37: ↑29 and ↓8+21
Comments16

«Напиши свою игру!» — Новогодний конкурс от KolibriOS

Reading time3 min
Views21K
Новый Год уже не за горами, а какой же Новый Год — без новогодних конкурсов с подарками? Мы в проекте KolibriOS решили не отходить от традиции, и провести наш собственный конкурс, с денежными призами.

Поскольку находимся мы на Хабре, простой случайный розыгрыш призов вроде конкурса от Mail.Ru мы считаем здесь неуместным, и призы нужно будет заработать. Поскольку KolibriOS — хобби-проект, конкурс будет связан с развлечениями. Ну, а поскольку мы не такие богатые, как Mail.Ru, то и призы будут поменьше :-)

Задачей конкурса является написание своей собственной игры для Колибри. Сделать это нужно до наступления Нового 2015-го года по московскому времени, т.е. до 31 декабря 2014г. 24:00 MSK.

Принять участие в конкурсе может любой желающий, вне зависимости от возраста и места проживания. Участвовать можно как в одиночку, так и командой (при участии командой, в случае выигрыша, один приз будет выдан на всю команду).

Для игры можно использовать любой язык программирования — хоть FASM (предпочтительно), хоть JAVA, хоть Brainfuck. Однако, если компилятор выбранного вами языка в данный момент отсутствует под Колибри, вам придётся сначала научить этот компилятор собирать программы под Колибри. Поэтому мы рекомендуем выбрать такой язык, для которого уже есть компилятор (для Brainfuck, кстати, есть).

Исходный код игры (включая все «ресурсы» — картинки, спрайты, звуки, музыку, если таковые имеются) должен быть выложен на SVN проекта под одной из утверждённых open-source лицензий. Игра должна компилироваться из исходников с помощью системы авто-сборки Tup на сервере КолибриОС. Для облегчения добавления игры в авто-сборку (а также принимая во внимание предыдущий параграф), лучше всего писать игру на языке, для которого уже есть пример авто-сборки (FASM, NASM, C--, GCC, MSVC). Но мы же не ищем лёгких путей, правда?

Игры всех участников, успешно выполнивших задание, будут выставлены на голосование на Хабре в январе 2015 г. По результатам голосования, будут присуждены призы:

  • 1 место — $1,000 США
  • 2 место — $500 США
  • 3 место — $250 США

Читать дальше →
Total votes 40: ↑34 and ↓6+28
Comments75

Гикпорн 5 или для чего вскрывают микросхемы

Reading time5 min
Views125K
Угадал автора по названию? А вот и нет, в отличии от BarsMonster мы будем вскрывать микросхему не из спортивного интереса и даже не для того, чтобы посмотреть, как она работает. Мы будем искать почему она не работает. Иногда такое случается, особенно если технология изготовления кристаллов находится в стадии разработки и запускаемые проекты могут быть только экспериментальными. И подобная неприятность случилась у нас. В нашем случае полученные образцы оказались неработоспособными (выход годных близок к нулю). Исследование функционирования и электрических параметров указывали на технологические проблемы изготовления кристаллов, которые нам и предстоит обнаружить.
Как мы это делали
Total votes 126: ↑121 and ↓5+116
Comments47

Google Play — работаем легально!

Reading time4 min
Views179K
Привет, Хабр!



Сегодня, я хочу рассказать о том как сделать свое хобби по разработке Android-приложений пусть небольшим, но официальным бизнесом. О том, как легально получать деньги, заработанные на Google Play, о «страшном» валютном контроле и «таинственном» паспорте сделки.
Читать дальше →
Total votes 92: ↑88 and ↓4+84
Comments115

Caesar III: game loop

Reading time27 min
Views69K
Если бы меня спросили, какая часть технической реализации игры «Цезарь» мне интересна больше других, я бы вспомнил о расчете одного «дня» городской жизни. Отдельные компоненты математической модели города тоже интересны в реализации, но эти «шестеренки» будут крутиться только в сборе. Большая часть игры проходит внутри «игрового цикла», в котором проводятся вычисления параметров компонентов, выполняются перемещения игровых объектов, создаются новые события и объекты. Если вам интересно узнать, как была устроена симуляция города в одной из лучших игр 1998 года — добро пожаловать под кат. Описания, псевдокод и схемы помогут вам лучше узнать об используемых алгоритмах.


Читать дальше →
Total votes 151: ↑150 and ↓1+149
Comments26

Maxima — Tips&Tricks, или собираем по крохам инфо, как на ней работать

Reading time13 min
Views28K
Человеческая память для меня загадка. Являясь обладателем слабой памяти с детства, вечно забываю о некоторых нюансах окружающего меня мира. Тем не менее, эти данные должны быть под рукой. И когда не хватает блокнота, на помощь приходят текстовые файлы. Один из таких файлов содержит небольшую сборку повседневных и обыденных команд Maximа.

Я думаю, всем из нас известна данная система компьютерной алгебры. Она не является конкурентом Wolfram Mathematica, но она обладает именно тем функционалом, который я требую от математического софта. Если говорить проще и доступнее — считать можно на всём, от палочек до суперкомпьютеров, и далеко не всегда задачи инженерной практики целиком переносятся с бумаги в программный код. Одним из примеров, который я честно говоря, еле-еле застал, является сегодня забытая поделка нашего конверсионного производства — цельнометаллический бытовой вакуумный гражданский термос, который выпускался ранее ещё в СССР на Урале. Чтобы наладить его производство институт, в котором я учусь, де-факто вручную на счётных машинках высчитал все необходимые параметры рабочего оборудования. Поэтому лицензия на Mathematica — не показатель и не ценз пригодности к практике. Считать, повторюсь, можно на всём.

От слов к делу. Ниже разбиты на категории те моменты в документации Maxima, которые желательно знать для начинающего пользователя данной СКА.
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments14

Как создать интересный игровой сеттинг? Уровень второй: графика

Reading time5 min
Views50K
Дискуссии на тему, важен ли «графон», продолжаются со времен появления первой игры. В этой статье мы рассмотрим не качество графики, а, скорее, ее влияние на мироощущение игрока.


Читать и смотреть
Total votes 67: ↑55 and ↓12+43
Comments48

Хронометраж для любительских автогонок, гибкий и беспроводной

Reading time8 min
Views49K
Здравствуйте.
С некоторого времени я увлекся любительским автоспортом, — нет, не ночной стрит-рейсинг, а вполне легальные соревнования, проводимые в дневное время и согласованные с соответствующими структурами. Как многие догадываются, цель таких соревнований — проехать дистанцию быстрее соперника. Для чего надо измерить время прохождения дистанции.
Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments35
1

Information

Rating
Does not participate
Location
Тольятти, Самарская обл., Россия
Registered
Activity