Pull to refresh
2
0.1
Артем Целовальников @SlazZy

ruby developer

Send message

Приемы при проектировании архитектуры игр

Reading time11 min
Views146K
К сожалению, нигде нет более менее полной публикации на тему проектирования архитектуры в играх. Есть отдельные статьи на конкретные темы, но нигде все это вместе не собрано. Каждому разработчику приходится самостоятельно по крупицам собирать подобную информацию, набивать шишки. Поэтому решил попробовать собрать часть из этого воедино в данной статье.

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

В публикации рассматриваются следующие темы:
  • Наследование VS компоненты
  • Сложные иерархии классов юнитов, предметов и прочего
  • Машины состояний, деревья поведений
  • Абстракции игровых объектов
  • Упрощение доступа к другим компонентам в объекте, сцене
  • Сложные составные игровые объекты
  • Характеристики объектов в игре
  • Модификаторы (баффы/дебаффы)
  • Сериализация данных

Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments30

Задачи реального мира: как на практике считают надежность систем (reliability, MTTF, failure rate)?

Reading time3 min
Views16K
В предыдущей статье мы рассмотрели терминологию и математическую основу расчетов отказоустойчивости различных систем и выяснили, что на практике, когда речь идет об оценках MTTF (Mean Time To Failure — среднего времени до отказа) и других характеристик надежности, в большинстве случаев предполагается, что отказы подчиняются пуассоновской модели. Соответственно, их вероятностное описание основано на экспоненциальном распределении вероятностей.

Этот материал будет посвящен практическим аспектам применения этой модели, причем стоит сразу оговориться, что он широко используется, как в электронике, так и в самых разных областях: например, при оценке рисков в авиационной и атомной отрасли, прогнозирования в автопроме, оценке надежности облачных сервисов в Интернете и т.п. Общим предположением, повторюсь, является гипотеза о постоянстве интенсивности отказов λ, которая, как мы увидели из предыдущей статьи, обратно пропорциональна среднему времени безотказной работы MTTF=1/λ.

Итак, давайте для начала рассмотрим совсем простой пример: устройство, состоящее из двух элементов, для каждого из которых известны интенсивности отказов λ1 и λ2. Отказ любого из элементов приводит к отказу устройства в целом. Например, компьютер (условно) можно представить, как систему, состоящую из процессора и материнской платы. Пусть для них среднее время до отказа (MTTF) равны 2 и 3 годам (соответственно, λ1=1/2 года-1 и λ2=1/3 года-1). Какова будет оценка MTTF для компьютера, в целом? И какова вероятность отказа компьютера через 1 год после начала эксплуатации?

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

OSSIM — разворачиваем комплексную open source систему управления безопасностью

Reading time12 min
Views144K


OSSIM (Open Source Security Information Management) — система управления, контроля и обеспечения информационной безопасности.
OSSIM «из коробки» включает в себя такой функционал как:
  • Сбор, анализ и корреляция событий — SIEM
  • Хостовая система обнаружения вторжений (HIDS) — OSSEC
  • Сетевая система обнаружения вторжений (NIDS) — Suricata
  • Беспроводная система обнаружения вторжений (WIDS) — Kismet
  • Мониторинг узлов сети- Nagios
  • Анализ сетевых аномалий – P0f, PADS, FProbe, Arpwatch и др.
  • Сканер уязвимостей – OpenVAS
  • Мощнейшая система обмена информацией об угрозах между пользователями OSSIM — OTX
  • Более 200 плагинов для парсинга и корреляции логов со всевозможных внешних устройств и служб

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

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть первая

Reading time29 min
Views826K

О чем данный учебник


Данный учебник представляет собой что-то типа «штампа моей памяти» по языку SQL (DDL, DML), т.е. это информация, которая накопилась по ходу профессиональной деятельности и постоянно хранится в моей голове. Это для меня достаточный минимум, который применяется при работе с базами данных наиболее часто. Если встает необходимость применять более полные конструкции SQL, то я обычно обращаюсь за помощью в библиотеку MSDN расположенную в интернет. На мой взгляд, удержать все в голове очень сложно, да и нет особой необходимости в этом. Но знать основные конструкции очень полезно, т.к. они применимы практически в таком же виде во многих реляционных базах данных, таких как Oracle, MySQL, Firebird. Отличия в основном состоят в типах данных, которые могут отличаться в деталях. Основных конструкций языка SQL не так много, и при постоянной практике они быстро запоминаются. Например, для создания объектов (таблиц, ограничений, индексов и т.п.) достаточно иметь под рукой текстовый редактор среды (IDE) для работы с базой данных, и нет надобности изучать визуальный инструментарий заточенный для работы с конкретным типом баз данных (MS SQL, Oracle, MySQL, Firebird, …). Это удобно и тем, что весь текст находится перед глазами, и не нужно бегать по многочисленным вкладкам для того чтобы создать, например, индекс или ограничение. При постоянной работе с базой данных, создать, изменить, а особенно пересоздать объект при помощи скриптов получается в разы быстрее, чем если это делать в визуальном режиме. Так же в скриптовом режиме (соответственно, при должной аккуратности), проще задавать и контролировать правила наименования объектов (мое субъективное мнение). К тому же скрипты удобно использовать в случае, когда изменения, делаемые в одной базе данных (например, тестовой), необходимо перенести в таком же виде в другую базу (продуктивную).
Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments18

Что останавливает вас путешествовать?

Reading time4 min
Views19K
Если ваша работа связана с интернет-технологиями, скорее всего вы уже слышали на Твитере о так называемых цифровых кочевниках.

Возможно, вам попадались на глаза вдохновляющие истории из Surf Office, а может быть, вы уже не раз задумывались, почему такая небольшая платформа, как Nomadlist, вызывает столько шума. Если от всей этой информации вокруг цифровых кочевников у вас создается впечатление, что в веб-сфере модель трудоустройства как такового начала куда-то неуклонно смещаться – вы недалеки от истины. Происходит это каждый день – сообщество цифровых-кочевников растет, набирает обороты и помогает все большему количеству фрилансеров, предпринимателей и стартапов выполнять работу и создавать успешные онлайн-продукты удаленно, зачастую во время путешествий по миру.

Если, наблюдая за этим явлением, вы думаете, что это не про вас – вы заблуждаетесь. Мысли о том, что «им хорошо, им повезло!» — не самое удачное объясниние.

По словам Кави Гупты (автор Форбса, кочевник), «ни одно другое поколение не обладало такой свободой в создании и формировании своего собственного образа жизни». Это не «им хорошо, им повезло!», это – «нам всем повезло!»
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments59

ТОП-10 гик сериалов и тв-шоу по мнению команды организаторов фестиваля Make It Show

Reading time4 min
Views39K
image

Организаторы фестиваля Make It Show решили собрать подборку самых классных сериалов и тв-шоу, которые должны оценить все, кто с трепетом и восторгом относятся к науке, технике и современным технологиям, и может отличить качественное тв-шоу от Дома-2.

Рейтинг исключительно субъективен и является коллективным мнением команды организаторов фестиваля Make It Show. Будем рады, если вы подскажете нам, какой сериал или тв-шоу, по-вашему, мы пропустили и он обязан быть в этом списке.
Читать дальше →
Total votes 33: ↑26 and ↓7+19
Comments69

Frame object в Python. Что с ним можно, а что нельзя (в production и другом приличном месте) делать

Reading time6 min
Views27K
О Python на Хабре было много хороших статей. Как об особенностях реализации, так и о прикладных фичах, отсутствующих в других мейнстримных языках. Однако я с удивлением обнаружил (поправьте, если не прав), что есть одна важная тема, не раскрытая ни на Хабре, ни в русскоязычном интернете вообще. Эта статья будет посвящена такой штуке, как stack frame. Скорее всего она не скажет ничего, ну или может с учетом последнего пункта почти ничего нового опытным python-разработчикам, однако будет полезна новичкам (а может и вредна, но все примеры ниже).

Я постарался написать статью так, чтобы её было удобно читать, открыв параллельно repl и бездумно копировать туда код эксперементируя. Поэтому по возможности большая часть примеров имеет вид «однострочники в интерпретаторе».

Начнем мы немного издалека, с того что заметим, что Traceback это тоже объект, а потом найдем где там стековый кадр и уже перейдем к делу.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments4

«Работа инженеров – предъявлять претензии» — Интервью с Сергеем Куксенко из Java Performance Team

Reading time28 min
Views19K
Представьте, что вы пришли на встречу JUG.ru или CodeFreeze, или например на джавовскую конференцию, на которой только что выступил Сергей Walrus Куксенко, разработчик из Java Performance Team. И вот, по какой-то причине, все остальные слушатели разбежались, а вы с Сергеем остались один на один. И внезапно, он никуда не торопится, и у него есть свободный час, чтобы ответить на ваши вопросы, коих накопилось великое множество…



Встречайте: сегодня у нас абсолютный эксклюзив — большое интервью с Сергеем Куксенко! Из интервью вы узнаете:
  • как устроена команда Java Performance
  • в каких направлениях Java сейчас ведется активная performance-работа
  • зачем нужен хардкор на джугах и конференциях
  • что должен знать performance-инженер
  • что такое хайлоад, и где проходит граница
  • что прямо сейчас происходит с джавовыми строками
  • в какую сторону эволюционируют тюнинг рантаймов




Читать текстовую версию
Total votes 43: ↑37 and ↓6+31
Comments33

Что такое Business Intelligence

Reading time4 min
Views131K
Существует огромное количество терминов: аналитика, data mining, анализ данных, business intelligence и разница между ними не всегда столь очевидна даже для людей, которые с этим связаны. Сегодня мы расскажем о том, что же такое Business Intelligence (BI) доступным и понятным языком. Тема безусловна огромна и её не покрыть лишь одной короткой статьей, но наша задача — помочь сделать первый шаг и заинтересовать читателя темой. Заинтересованный же читатель также найдет исчерпывающий список для дальнейших шагов.

Структура статьи
  1. Зачем всё это нужно: из жизни аналитика
  2. В чем задача: проблема на уровне компании
  3. Обобщаем задачу: всё это звенья одной цепи
  4. Большая инфографика
  5. С чем можно поэкспериментировать
  6. Что почитать? Must read по Business Intelligence


Зачем всё это нужно: из жизни аналитика

(кликабельно)
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments8

Класс дедлоков про дедлок классов

Reading time5 min
Views38K


Знаете ли вы, как избежать дедлоков в своей программе? Да, этому учат, про это спрашивают на собеседованиях… И тем не менее, взаимные блокировки встречаются даже в популярных проектах серьёзных компаний вроде Google. А в Java есть особый класс дедлоков, связанный с инициализацией классов, простите за каламбур. Такие ошибки легко допустить, но трудно поймать, тем более, что сама виртуальная машина вводит программиста в заблуждение.

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

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

Разработка ММО РПГ – практическое руководство. Эпизод 1

Reading time8 min
Views52K
image
  • Вам интересно, сколько стоит разработка онлайн-игры?
  • Вы хотите узнать, как организовать разработку ММО от идеи до релиза?
  • Задумывались ли вы о технических трудностях создания онлайн-игр?


        В цикле статей «Разработка ММО РПГ – практическое руководство» вы получите ответы на эти и многие другие вопросы. Все цифры реальны. Все схемы, таблицы, исходный код, диаграммы БД и прочее взяты из реально существующего и успешно работающего проекта.
        В тексте будет много отсылок к геймплею и внешнему виду нашей игры «Звездные Призраки». Я постараюсь излагать материал так, чтобы вам не было нужды вникать (и играть) в наш продукт, но для лучшего понимания материала желательно потратить пару минут и посмотреть, как это все выглядит.
        Готовы? Тогда в путь!
Подробности
Total votes 37: ↑27 and ↓10+17
Comments50

С сегодняшнего дня компания Intel управляется компьютером

Reading time3 min
Views48K


Компания Intel сообщает о завершении подготовительного этапа масштабного эксперимента, начатого более 3 лет назад. Суть эксперимента заключается во внедрении элементов искусственного разума в процедуры управления компанией. С сегодняшнего дня одним из топ-менеджеров Intel является компьютер, точнее, целый дата-центр, специально созданный для этих нужд. Вот уж, воистину, слава роботам! Именно этот дата-центр, который сейчас заполняется серверами, вы видите на КДПВ. Предполагается, что система выйдет на полную мощность к началу следующего года.
Читать дальше →
Total votes 82: ↑65 and ↓17+48
Comments27

Все о коллекциях в Oracle

Reading time12 min
Views272K
Статья имеет довольно таки тезисный стиль. Более подробное содержание можно найти в приложенном внизу статьи видео с записью лекции по коллекциям Oracle.

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

Таким же образом коллекции используются и в Oracle.

Содержание статьи



Шокирующие детали про коллекции в Oracle
Total votes 19: ↑17 and ↓2+15
Comments9

Классификация знаний в области программирования

Reading time7 min
Views189K
2 года назад я написал статью о классификации знаний в области программирования. Это было на волне интереса и моей активной деятельности по самообразованию в компьютерных науках. Написал статью и забыл о ней. Публиковать на Хабре не собирался. В конце концов, она базируется на моем личном опыте и знаних, которые могут оказаться весьма субъективны.

Недавно, на фоне постоянно поступающих вопросов «как научиться программированию?», я вспомнил про этот материал и перечитал его. Прошло уже 2 года, пополнился опыт, добавились знания, изменились взгляды. Но эта статья для меня не утратила актуальности, и я не нашел почти ничего, что хотел бы в ней изменить. Мне показалось, что она все же достойна публикации. И, возможно, кому-то она поможет в собственном профессиональном развитии.

Но прежде, чем «запустить» материал, еще небольшое отступление. О том, почему вообще я все это писал. Дело в том, что у нас в странах бывшего СССР с образованием в области IT очень туго. С одной стороны нет программ обучения, которые подготовят специалистов на должном уровне (наверное, за очень редкими исключениями, которые можно отнести к погрешности). С другой стороны, из-за широких возможностей самообразования, программисты и не спешат учиться в ВУЗах — все стремятся начать практиковать как можно раньше. Часто изучается только одно направление (например PHP+Mysql — самое популярное) и в бой. Причем, на этом все заканчивается. В итоге у нас огромное количество программистов, которые и базовых вещей не знают. Отсюда вытекают проблемы с качеством кода, и с эффекивностью алгоритмов, с велосипедированием.

Но программирование — это полноценная область знаний, которая требует в том числе и инженерной подготовки. Точно так же, как строительство или телекоммуникации. Да, построить дом (особняк) можно своими руками и без образования. А поднять большинство сайтов можно прочитав пару книг по PHP и HTML. Но многоэтажку без специальной подготовки не построишь, как и Гугл не напишешь, не зная основ.

Возможности для самообразования в компьютерных науках сейчас огромны. Единственное, чего не хватает, — это системности подготовки. Как разобраться, что и в какой последовательности изучать? Мне кажется, что этот материал поможет разложить по полочкам области знаний в компьютерных науках и составить для себя программу изучения по книгам. Выбор книг — тема отдельная, в рамки статьи не входит, но это можно обсудить в комментариях.

Поехали.
Читать дальше →
Total votes 78: ↑57 and ↓21+36
Comments52

Задачи по алгоритмам

Reading time4 min
Views45K
Добрый день. На первом курсе бакалавриата Академического университета читается годовой курс алгоритмов. Каждая лекция сопровождается семинаром, на котором мы разбираем алгоритмические задачи. Практические семинары проходят в небольших группах. В этом семестре я читаю лекции и веду практику у одной из групп.

Сегодня хочу поделиться с Вами двумя задачами с этих семинаров.

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

Задача 2. На окружности даны n дуг (отрезков), нужно выбрать максимальное по размеру подмножество непересекающихся.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments36

И ещё раз про уникальные константы

Reading time3 min
Views12K
Прочитав статью «Вычислите длину окружности», которая, в общем-то, крайне позабавила меня своим стилем, и узнав для себя кое-что новое, я стал несколько сомневаться в достаточной подробности предложенной информации. Всё-таки компиляторов довольно много, систем тоже немало, а в статье как-то навеяно Windows и Visual Studio (на правах ИМХО).
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments8

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

Reading time13 min
Views53K
Представьте себе высокоуровневый язык, в котором не нужно указывать КАК получить результат, вместо этого нужно просто указать ЧТО вы хотите получить. При этом область применения языка не ограничена и язык способен решать те же задачи, что и любой другой высокоуровневый язык, наподобие JAVA. Кажется фантастикой, не правда ли? Однако такой язык есть и называется он PROLOG. Посмотрим как PROLOG справляется с этой задачей на примере загадывания прологу некоторых загадок и попросим PROLOG выдать доказательство теоремы.

image

Читать дальше →
Total votes 59: ↑49 and ↓10+39
Comments105
12 ...
12

Information

Rating
3,539-th
Location
Тула, Тульская обл., Россия
Date of birth
Registered
Activity