Как стать автором
Обновить
0
0

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

Отправить сообщение

В этой статье слишком много воды

Время на прочтение 9 мин
Количество просмотров 40K
«Мы начинаем разработку новой игры, и нам нужна классная вода. Такую сможешь?»


, — cпросили меня. «Да не вопрос! Конечно, смогу», — ответил я, но голос предательски задрожал. «А, еще и на Unity?», — и мне стало понятно, что впереди очень много работы.
Читать дальше →
Всего голосов 175: ↑174 и ↓1 +173
Комментарии 36

12 принципов анимации в разработке видеоигр

Время на прочтение 12 мин
Количество просмотров 15K
image

В то время, когда видеоигры ещё находились в эпохе Pac-Man, аниматоры студии Disney Фрэнк Томас и Олли Джонсон перечислили в своей книге 1981 года «The Illusion of Life: Disney Animation» то, что сегодня считается базовыми правилами анимации — 12 основных принципов.

  1. Сжатие и растяжение (Squash & stretch)
  2. Сценичность (Staging)
  3. Подготовка, или упреждение (Anticipation)
  4. Использование компоновок и прямого фазованного движения (Straight ahead & pose to pose)
  5. Сквозное движение (или доводка) и захлест действия (Follow-through & overlapping action)
  6. Смягчение начала и завершения движения (Slow in & slow out)
  7. Дуги (Arcs)
  8. Дополнительное действие (Secondary action)
  9. Привлекательность (Appeal)
  10. Расчёт времени (Timing)
  11. Преувеличение, утрирование (Exaggeration)
  12. Профессиональный рисунок (Solid drawing)

Несмотря на то, что эти фундаментальные основы были придуманы ещё до распространения компьютерной графики и предназначались исключительно для рисуемых от руки двухмерных анимаций, они идеально подошли и к 3D-графике. Хоть связь некоторых из них с интерактивной средой не совсем очевидна, небольшое переосмысление помогает раскрыть их непреходящую ценность.

Понимание этих основ анимации необходимо, поэтому нужно заново исследовать их через объектив видеоигровых анимаций.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 2

Туториал по Unreal Engine: C++

Время на прочтение 12 мин
Количество просмотров 160K
image

Blueprints — очень популярный способ создания геймплея в Unreal Engine 4. Однако если вы уже давно программируете и предпочитаете код, то вам идеально подойдёт C++. С помощью C++ можно даже вносить изменения в движок и создавать собственные плагины.

В этом туториале вы научитесь следующему:

  • Создавать классы C++
  • Добавлять компоненты и делать их видимыми для Blueprints
  • Создавать класс Blueprint на основе класса C++
  • Добавлять переменные и делать их изменяемыми из Blueprints
  • Связывать привязки осей и действий с функциями
  • Переопределять функции C++ в Blueprints
  • Связывать событие коллизии с функцией
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Комментарии 34

MMO с нуля. С помощью Netty и Unreal Engine. Часть 1

Время на прочтение 58 мин
Количество просмотров 51K
Всем привет! В нескольких статьях я хотел бы поделиться опытом создания подобия ММО игры используя Unreal Engine и Netty. Возможно архитектура и мой опыт кому-то пригодится и поможет начать создавать свой игровой сервер в противовес unreal dedicated server, который слегка прожорлив или заменить собой фреймворки для разработки многопользовательских игр такие как Photon.

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

Часть 1. Общая картина, сборка библиотек, подготовка клиента и сервера к обмену сообщениями
Часть 2. Наращивание игрового функционала + алгоритм Diamond Square


Всего голосов 17: ↑16 и ↓1 +15
Комментарии 9

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

Время на прочтение 11 мин
Количество просмотров 19K
image

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

Для того, чтобы проанализировать, когда началась конкуренция, приведшая к этим «консольным войнам», лучше всего начать с того, как вообще появились консоли.

Рождение домашней консоли


В начале эпохи видеоигр идея приобретения игровых консолей для дома была далека от потребностей американского общества. Более реалистичной идею домашней игровой консоли первыми сделали компьютерные игры. Изобретение таких игр, как OXO британского профессора А.С. Дугласа (1952 год), Tennis for Two Уильяма Хигинботэма (1958 год) и Spacewars! Стивена Расселла (1962 год) (первая игра, в которую можно было играть на нескольких компьютерах), стало катализатором создания игровых консолей и видеоигр в целом.

Все эти игры стали большими шагами видеоигр к домашнему потребителю, но ни одна из них не оказала такого влияния, как «Brown Box». Ральф Баер с его коллегами из Sanders Associates создали прототип первой в мире видеоигровой консоли, который изначально назывался «TV Game Unit #7». В Brown Box был широкий набор игр, в том числе шашки, стрельба по мишеням, множество спортивных игр, а самой популярной был пинг-понг.
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 16

Как рендерит кадр движок Unreal Engine

Время на прочтение 23 мин
Количество просмотров 56K


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

Поскольку у нас есть доступ к исходному коду, мы можем изучить исходники рендерера, чтобы понять, что он делает, однако это довольно объёмная часть движка, а пути рендеринга сильно зависят от контекста, поэтому проще будет исследовать чистый низкоуровневный API (иногда заглядывая в код, чтобы заполнить пробелы).
Читать дальше →
Всего голосов 64: ↑62 и ↓2 +60
Комментарии 14

Туториал по Unreal Engine. Часть 1: знакомство с движком

Время на прочтение 12 мин
Количество просмотров 662K
image

Unreal Engine 4 — это набор инструментов для разработки игр, имеющий широкие возможности: от создания двухмерных игр на мобильные до AAA-проектов для консолей. Этот движок использовался при разработке таких игр, как ARK: Survival Evolved, Tekken 7 и Kingdom Hearts III.

Разработка в Unreal Engine 4 очень проста для начинающих. С помощью системы визуального создания скриптов Blueprints Visual Scripting можно создавать готовые игры, не написав ни строчки кода! В сочетании с удобным интерфейсом это позволяет быстро изготавливать рабочие прототипы.

В этой части туториала по Unreal Engine 4 мы ознакомимся с основными возможностями программы. Вот основные темы, которые будут в нём рассмотрены:

  • Установка движка
  • Импорт ассетов
  • Создание материалов
  • Использование Blueprints для создания объектов с простейшими функциями
Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 10

Полное руководство по useEffect

Время на прочтение 45 мин
Количество просмотров 246K
Вы написали несколько компонентов с использованием хуков. Возможно — даже создали небольшое приложение. В целом результат вас вполне устраивает. Вы привыкли к API и в процессе работы обнаружили несколько неочевидных полезных приёмов. Вы даже создали несколько собственных хуков и сократили свой код на 300 строк, поместив в них то, что раньше было представлено повторяющимися фрагментами программы. То, что вы сделали, вы показали коллегам. «Отлично получилось», — сказали они о вашем проекте.


Но иногда, когда вы используете useEffect, составные части программных механизмов не особенно хорошо стыкуются друг с другом. Вам кажется, что вы что-то упускаете. Всё это похоже на работу с событиями жизненного цикла компонентов, основанных на классах… но так ли это на самом деле?
Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 6

Как создать игру, если ты ни разу не художник

Время на прочтение 127 мин
Количество просмотров 44K

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

И не надо…
Читать дальше →
Всего голосов 107: ↑106 и ↓1 +105
Комментарии 71

10 лучших VS Code-расширений 2018 года для фронтенд-разработчиков

Время на прочтение 4 мин
Количество просмотров 107K
Visual Studio Code, вероятно, можно назвать лучшим современным редактором кода. Если вы пока с ним не работаете — то вам, по крайней мере, стоит на него взглянуть. Для VS Code написано великое множество расширений, которые размещают в каталоге Marketplace, удобный доступ к которому организован из самого редактора.

Существуют расширения для отладки и форматирования кода, расширения, облегчающие работу с различными платформами (вроде Heroku, GitHub, Docker, Azure) и технологиями. В Marketplace можно найти темы для редактора, линтеры, средства, облегчающие ввод повторяющихся фрагментов кода, и многое другое.



Автор материала, перевод которого мы публикуем сегодня, отобрал 10 лучших VS Code-расширений, предназначенных преимущественно для тех, кто занимается фронтенд-разработкой, то есть, работает с HTML, CSS, JavaScript и с различными веб-фреймворками.
Читать дальше →
Всего голосов 31: ↑24 и ↓7 +17
Комментарии 16

Ленивая загрузка изображений с использованием IntersectionObserver

Время на прочтение 7 мин
Количество просмотров 22K
В наши дни главным камнем преткновения на пути к высокой скорости загрузки сайтов являются изображения. Это особенно характерно для проектов из сферы электронной коммерции. На них изображения, обычно довольно «тяжёлые», составляют основную часть содержимого страниц. Это, как правило, приводит к тому, что для того, чтобы показать пользователю страницу, его браузеру требуется загрузить несколько мегабайт графических данных. Как ускорить загрузку страниц в такой ситуации? Ответу на этот вопрос и посвящён материал, перевод которого мы сегодня публикуем.

image
Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 9

React и SEO: как их подружить?

Время на прочтение 6 мин
Количество просмотров 55K
Как известно, поисковая оптимизация одностраничных приложений задача непростая и решение ее может потребовать значительных затрат труда, особых умений от разработчиков и финансовых затрат от заказчика. Какие же решения предлагает сообщество, чтобы, по возможности быстро и с минимальными затратами, сделать React веб-сайт дружественным к поисковым серверам?
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 2

Руководство по Node.js, часть 2: JavaScript, V8, некоторые приёмы разработки

Время на прочтение 9 мин
Количество просмотров 78K
Публикуя первую часть перевода этого руководства по Node.js, мы решили узнать мнение аудитории о том, стоит ли нам продолжать работу над проектом, и провели небольшой опрос. Как оказалось, нашу инициативу поддержали примерно 94% проголосовавших. Поэтому встречайте вторую часть руководства по Node.js.



Сегодня мы поговорим о том, какими знаниями в области JS нужно обладать для того, чтобы продуктивно разрабатывать приложения для платформы Node.js, обсудим различия браузерного и серверного JavaScript-кода, поговорим о JS-движках и о некоторых приёмах Node.js-разработки.

Читать дальше →
Всего голосов 42: ↑38 и ↓4 +34
Комментарии 3

Руководство по Node.js, часть 1: общие сведения и начало работы

Время на прочтение 10 мин
Количество просмотров 324K
Мы начинаем публикацию серии материалов, которые представляют собой поэтапный перевод руководства по Node.js для начинающих. А именно, в данном случае «начинающий» — это тот, кто обладает некоторыми познаниями в области браузерного JavaScript. Он слышал о том, что существует серверная платформа, программы для которой тоже пишут на JS, и хотел бы эту платформу освоить. Возможно, вы найдёте здесь что-то полезное для себя и в том случае, если уже знакомы с Node.js.

Кстати, в прошлом году у нас был похожий по масштабам проект, посвящённый bash-скриптам. Тогда мы, после публикации всех запланированных материалов, собрали их в виде PDF-файла. Так же планируется поступить и в этот раз.



Сегодня мы обсудим особенности Node.js, начнём знакомство с экосистемой этой платформы и напишем серверный «Hello World».

Читать дальше →
Всего голосов 47: ↑39 и ↓8 +31
Комментарии 25

Иван Тулуп: асинхронщина в JS под капотом

Время на прочтение 24 мин
Количество просмотров 52K
А вы знакомы с Иваном Тулупом? Скорее всего да, просто вы еще не знаете, что это за человек, и что о состоянии его сердечно-сосудистой системы нужно очень заботиться.

Об этом и о том, как работает асинхронщина в JS под капотом, как Event Loop работает в браузерах и в Node.js, есть ли какие-то различия и, может быть, похожие вещи рассказал Михаил Башуров (SaitoNakamura) в своем докладе на РИТ++. С удовольствием делимся с вами расшифровкой этого познавательного выступления.



О спикере: Михаил Башуров — fullstack веб-разработчик на JS и .NET из Luxoft. Любит красивый UI, зеленые тесты, транспиляцию, компиляцию, технику compiler allowing и улучшать dev experience.

От редактора: Доклад Михаила сопровождался не просто слайдами, а демо-проектом, в котором можно понажимать на кнопочки и самостоятельно посмотреть за выполнением тасок. Оптимальным вариантом будет открыть презентацию в соседней вкладке и периодически к ней обращаться, но и по тексту будут даны отсылки на конкретные страницы. А теперь передаем слово спикеру, приятного чтения.

Всего голосов 40: ↑33 и ↓7 +26
Комментарии 4

Собеседование по TypeScript: 20 вопросов и ответов

Время на прочтение 12 мин
Количество просмотров 128K
Язык TypeScript основан на том же синтаксисе и семантике, которые хорошо знакомы миллионам JavaScript-разработчиков. TypeScript даёт возможность работать с самыми свежими и ещё только появляющимися возможностями JS, включая те, которые имеются в ECMAScript 2015, и те, которые пока существуют лишь в виде предложений. Среди таких возможностей, например, асинхронные функции и декораторы. Всё это направлено на то, чтобы помочь разработчику в создании надёжных и современных приложений.

TypeScript-программа компилируется в обычный JavaScript-код, который может выполняться в любом браузере или в среде Node.js. Этот код будет понятен любому JS-движку, который поддерживает стандарт ECMAScript 3 или более новый.



Материал, перевод которого мы сегодня публикуем, содержит разбор двадцати вопросов, которые вполне могут задать тому, кто собирается пройти собеседование, претендуя на позицию TypeScript-программиста.
Читать дальше →
Всего голосов 54: ↑46 и ↓8 +38
Комментарии 69

[в закладки] 23 рекомендации по защите Node.js-приложений

Время на прочтение 15 мин
Количество просмотров 22K
В наши дни веб-сервисы постоянно подвергаются самым разным атакам. Поэтому безопасность — это то, о чём стоит помнить на всех этапах жизненного цикла проектов. Авторы материала, перевод которого мы сегодня публикуем, поддерживают репозиторий на GitHub, содержащий около 80 рекомендаций по обеспечению безопасности приложений, работающих на платформе Node.js. В этом материале, базой для которого послужило множество публикаций, посвящённых безопасности, собрано более двух десятков рекомендаций, касающихся Node.js, и некоторые советы общего характера. При этом данный материал покрывает топ-10 уязвимостей из списка проекта OWASP.


Читать дальше →
Всего голосов 35: ↑34 и ↓1 +33
Комментарии 16

Цена JavaScript в 2018 году

Время на прочтение 27 мин
Количество просмотров 39K
Процесс работы пользователей с интерактивными веб-сайтами может включать в себя шаг отправки им JavaScript-кода. Часто — слишком большого объёма такого кода. Если на сайте используется очень много JavaScript, это особенно сильно сказывается на мобильных пользователях. Например, вам случалось бывать на мобильных веб-страницах, которые, вроде бы, выглядят как уже готовые к работе, но не реагируют на щелчки по ссылкам или на попытки прокрутить страницу?


JavaScript-код, который попадает в мобильные браузеры, всё ещё остаётся самым дорогостоящим ресурсом, так как он, многими способами, может задержать переход страниц в состояние, в котором с ними можно взаимодействовать. Какую нагрузку на системы создаёт JavaScript в наши дни? Как анализировать сайты? Как ускорить загрузку и обработку браузерами интерактивных веб-страниц? Эдди Османи, перевод материала которого мы сегодня публикуем, решил найти ответы на эти и на многие другие вопросы, встающие перед теми, кто пользуется JavaScript для разработки веб-сайтов в 2018 году.
Читать дальше →
Всего голосов 32: ↑31 и ↓1 +30
Комментарии 47

Основы прогрессивных веб-приложений

Время на прочтение 6 мин
Количество просмотров 22K
Видели когда-нибудь кнопку «Добавить на главный экран», которая появлялась на экране вашего Android-смартфона, когда вы просматривали какой-нибудь сайт? Если щёлкнуть по этой кнопке, то на телефон, в фоновом режиме, будет установлено некое приложение, значок для запуска которого попадёт на главный экран. Теперь это приложение можно запустить и работать с сайтом почти так же, как и раньше, но только в обычном телефонном интерфейсе.

То, о чём мы говорим, представляет собой мобильное приложение, которое было загружено из веб-приложения. Причём, как можно заметить, для установки такого приложения вам не приходится взаимодействовать с Play Market. В результате, установка таких приложений упрощается настолько, насколько это вообще возможно. Однако это — далеко не самое интересное. Запуская подобные программы, вы получаете возможность работать с теми данными, которые они выводят, даже без подключения к интернету. Они позволяют взаимодействовать с веб-страницами в оффлайне. Ну не замечательно ли это?

Автор материала, который мы сегодня публикуем, расскажет о таких вот приложениях, о том, зачем они нужны, и о том, как их создавать.


Читать дальше →
Всего голосов 39: ↑36 и ↓3 +33
Комментарии 5

Как работает JS: обзор движка, механизмов времени выполнения, стека вызовов

Время на прочтение 6 мин
Количество просмотров 203K
Популярность JavaScript растёт, его возможности используют на разных уровнях применяемых разработчиками стеков технологий и на множестве платформ. На JS делают фронтенд и бэкенд, пишут гибридные и встраиваемые приложения, а также многое другое.

Анализ статистики GitHub показывает, что по показателям активных репозиториев и push-запросов, JavaScript находится на первом месте, да и в других категориях он показывает довольно высокие позиции.


Статистические сведения по JavaScript с GitHub

С другой системой статистических сведений по GitHub можно ознакомиться здесь, она подтверждает то, что было сказано выше.

Если множество проектов плотно завязаны на JavaScript, значит, разработчикам необходимо как можно более эффективно использовать всё, что даёт им язык и его экосистема, стремясь, на пути разработки замечательных программ, к глубокому пониманию внутренних механизмов языка.

Как ни странно, существует множество разработчиков, которые регулярно пишут на JavaScript, но не знают, что происходит в его недрах. Пришло время это исправить: этот материал посвящён обзору JS-движка на примере V8, механизмов времени выполнения, и стека вызовов.
Читать дальше →
Всего голосов 41: ↑33 и ↓8 +25
Комментарии 29
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность